单片机课程设计报告-电信081-裴颖-08808019(4)

2019-02-21 00:10

图1.9 复位引脚RST内部电路

在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。否则,在断电后C还没有充分放电的情况下,如果很快又加电,那么RC支路就失去了它应有的延迟功能。因此,在图1.8(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图1.8(c)所示的改进电路。也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。二极管D只有在单片机断电的瞬间(即VCC趋近于0 V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。

手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。

本设计采用上电且开关复位电路,如图1.10所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=10~30μF,R=1K,本设计采用的电容值为22μF的电容和电阻为1K的电阻。

图1.10 单片机复位电路

2.7 系统总电路的设计

系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将

单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图如图1.11所示。

AT89C52单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作并提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。

图1.11 系统总电路图

复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。 按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键

分别接单片机的P1.1和P2.5,均设为低电平有效。而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口P3.3和P3.2,这两个I/O口的第二功能分别为单片机的外部中断1端口和外部中断0端口。同样设置为位低电平有效。

显示电路由五位数码管组成,采用动态显示方式,因此有8位段控制端和5位位控制端,八位段控制接P0口,P0.0~P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,AT89C52的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。五位位控制则由低位到高位分别接到P2.0~P2.4口,NPN三极管9013做为位控制端的开关,当P2.0~P2.4端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。

通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。

3 软件设计

3.1 程序设计思想

本次设计,既可以用汇编语言编程也可以用C语言编程,该设计采用的是C语言编程,C语言是一种面向过程的程序设计语言,C语言简洁、紧凑,使用方便、灵活; 本设计采用了C语言编写,C语言由于采用了二进制代码来编写程序,比用汇编语言采用助记符编程要容易理解些,在一定程度上简化了编程过程且用二进制代码代替了汇编语言的助记符。 C语言的特点是: 1)C是中级语言

它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇 编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2)C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信 息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调 试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循 环、条件语句控制程序流向,从而使程序完全结构化。 3) C语言功能齐全

C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C

语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判 断功能也比较强大,可以实现决策目的。 4)C语言适用范围大

C语言还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多 种机型。 3.2程序流程图

手动开

初始化程序 对定时器/计数器初始化开中断并 启动定时器 定时器溢出中断 对定时器重新赋值 进行加一操作后重新计算时间 往P2口送显示时间 数码管显示 判断P2^5口是否有低电平信号 否 否 判断P2^7口是否有低电平信号 是 开始、 是 计数置零

中断返回主函数

3.3 定时器

一、AT89C52单片机内部设有两个16位可编程的定时器/计数器,简称定时器0和定时器1,分别用T0和T1表示。TMOD为模式控制寄存器,主要用于控制T0和T1的工作模式以及工作方式,其各位的定义如下: D7 D6 D5 D4 D3 D2 D1 D0 GATE C//T M1 M0 GATE C//T M1 M0 工作方式1是以16位计数器参加计数。TL0计满后想TH0进位,而TH0溢出后对中断标志位TF0置1,并申请中断。T0是否溢出可用软件查询TF0是否为1来判断

在图中,C/T=0时控制开关接通内部振荡器,T0对机器周期加1计数

当C/T=0时,多路开关连续震荡器的12分频输出,T0对机器周期记数,这就是定时工作方式。其定时时间为:

t=(65536-T0初值)×时钟周期×12

当GATE=0时,INT0被封锁仅由TR0便可控制T0开启和关闭。

当GATE=1时,T0的开启和关闭取决于INT0和TR0相与的结果,即只有当INT0=1和TR0=1是,T0才被开启。

程序中令T0位定时工作方式1。机器周期为1μs,通过公式和定时时间t可计算出TO中TH、TL初始值。

#include

#define uchar unsigned char {

sbit P20=P2^0;

sbit P21=P2^1;sbit KS=P2^5; sbit KP=P2^6; sbit KC=P2^7; int ge,shi;

uchar code tab[ ]={0xC0,0xF9,0xA4,0xB0,0x99,


单片机课程设计报告-电信081-裴颖-08808019(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011届高考化学精品练习:1-1-1化学实验的安全常识实验基本操作

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: