基于单片机的多功能定时器设计与实现 - 图文(4)

2019-08-29 22:14

杭州电子科技大学本科毕业论文

图4-6 P89V51RD2FN信号引脚图

4.3.2 P89V51RD2的时钟电路

时钟电路是用于产生供单片机各部分同步工作的时钟信号。具体的产生有两种方法,如下图4-7,一是用单片机内部的石英晶体振荡器外接电容构成振荡电路;二是从外部输入时钟信号。本设计时钟电路采用的是第一种方法。

P89V51RD2的一个显著的特点是它有两种时钟模式(X1模式和X2模式)。X1模式下一个机器周期时间为12个时钟周期(即晶振频率fosc的倒数),而在X2模式下一个机器周期时间为6个时钟周期,从而可以加速器件的运行速度。时钟加倍模式只可用于加倍内部系统时钟和内部Flash存储器(即EA=1)。在访问外部存储器和外围器件时要特别小心,还要注意晶振的输出(XTAL2)是不能加倍的。且时钟加倍模式可通过外部编程器或IAP来实现。当该模式被选择时,FST寄存器的EDC位用来指示6时钟模式。此时FST-Flash状态寄存器的位分配(地址:B6H),不可位寻址;复位值:xxxxx0xxB。如下图4-8。

15

杭州电子科技大学本科毕业论文

图4-7 时钟电路的两种实现

(时钟电路的参数:频率范围0-40MHZ;C1,C2 20-30pF)

图4-8 X2模式下的位分配

4.4显示电路

用单片机驱动LED数码管[11]有很多方法,按显示方式分,有静态显示和 动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间;动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊:静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD码即可,硬件接线有一定标准;软件译码是用软件来完成硬件的功能,硬件简单,接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。本设计就采用软件译码来实现,且单片机驱动数码管的显示采用动态扫描显示的方式。

16

杭州电子科技大学本科毕业论文

5 软件设计

5.1总体方案

硬件电路一旦决定,可根据电路的结构编制软件,并且决定它所应达到的功能。本设计用了4位数码管及4个按键,根据既定的目标具有定时及时钟的功能。程序应在定时器工作的同时也要启动时钟的时钟工作。

该系统显示电路部分的控制信号检测与数据传送部分,涉及的软件部分较多,主要是P89V51RD2FN单片机[12]数据串接口通信及通信协议的程序设计。本设计中用定时芯片制作定时器的关键是从P89V51芯片P1.7端口引出控制信号,随着P1.7高低电平的变化,通过键盘键入程序控制实现继电器的吸合和上扬,来控制电源插座通断以实现定时控制目的。即当继电器接脚3和接脚5之间加来自P1.7端口的5V电平信号时,接脚4和接脚2导通,电源插座开关可正常工作;当键入定时程序控制定时后,接脚3和接脚5之间电平信号为0时,接脚4和接脚1导通,电源插座开关关闭。此外如要扩展功能,采用单片机C语言编程可实现时间显示、时间校准、温度显示和温度上限报警、定时(闹钟)功能、跑表等各模块。

对于P89V51的程序设计,由于所需实现的功能较简单,采用C语言编译形式。编译器采用Keil uVision2

[13]

。Keil uVision2标准C编译器为8051微控制器的

软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。Keil 编译器可为人们提供单一而灵活的开发环境,C51已被完全集成到Keil的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器,Keil uVision2 可为它们提供单一而灵活的开发环境。

5.2 主程序流图

本系统的主程序工作过程是首先循环进行四个数码管的扫描显示

[14]

(DISPLY段),然后比较所有预置时间(COMP段)是否与当前时间相等,如相等则转向相应处理程序。比较完成(或处理完成)后,再判断有无按键(PP2段)按下,没有则返回继续显示、比较、判断;有按键按下则转向相应的处理程序。按键转移采用偏移量加表格跳转转移法(KEY段)。预置时间比较则采用逐一比较法,即对每一个预设的值都进行比较,如果相等,则进行相应的处理。在具体比较时(COMP1段),首先比较TH值,如不相等,则直接转出并置“时间到”标志CCB为0,而如果TH、TM、TS全部对应相等,则置该标志为1,其软件流程见下图5-1所示。

17

杭州电子科技大学本科毕业论文

图5-1主程序流程图 图5-2 中断子程序流程图

程序用C语言编写,定时和时钟计时信号由单片机内部定时器T1产生的毫秒级信号,中断溢出后在RAM的40H单元中经多次累加输出1秒信号,作为计时的基本计数单元。待显示的数据放在以下RAM单元中,(1)时钟部分:46H→小时十位数,45H→小时个位数,44H→分钟十位数,43H→分钟个位数;(2)定时部分:4AH→分钟十位数,49H→分钟个位数,48H→秒十位数, 47H→秒个位数。通电后,程序初始化使4BH单元被置1,进入了同时打开定时器,时钟开始走时,显示→12: 00,秒信号在41H中累加60次,向48H单元作加1运算,这时数码管将显示→12:01,满60分将向小时进位而显示→1:00。如果按动“调时”、“调分”键即可调整时间。具体的主程序见附录3。

5.3中断模块说明

程序初始化后就进入了“定时中断”子程序,其程序流程图见上图5-2。一系列的运算是在中断产生后进行的[15],具体的中断服务程序见附录3。

在程序计数运算中,小时应作12进制或24进制运算、分钟要作60进制运算;而定时工作时应作99分钟倒计时及的60进制倒计时减运算。

18

杭州电子科技大学本科毕业论文

6 制作与调试

6.1硬件电路的布线与焊接

6.1.1总体特点

该系统所涉及的各部分硬件电路,总体的特点是: (1)电路原理简单,所用的器件均为常用器件;

(2)由于路数较多,电路的规模较大,因此在制作中只做了8路。 因此,应合理布线,以降低焊接难度,降低出错率,同时防止干扰。 6.1.2 电路划分与PCB的制作

主板的制作与调试主板的制作稍微复杂一点。首先是制作印刷板,利用Protel99按照本文所示器件位置图放置好元器件,然后手动布线(双面),线宽为0.8mm左右,太宽做出的板子太大,太窄无法进行自制。绘好印制板图后转成BMP格式利用电脑刻字机镂空(要用进口的即时贴纸,不然容易断开),贴在双面敷铜板上,就可以用FeCl3腐蚀了。具体的制作方法这里不再赘述,但最好在印制板布线时做个阻焊层,同时在即时贴上刻出来,当板子制好清洗干净后敷在上面,用浅绿色油漆或清漆喷上薄薄的一层,好看又防腐蚀。

PCB的制作关键是布局和布线的问题,而布局和布线不是截然分开的,布局是为布线服务,布线为的实现布局的目标。

显然,完成布局不是就不一定能布好线,布局只是布好线的第一步和最基础的一步。接下来的问题是跳线。跳线就要打乱原先画好的原理图。一个元件转个方向就可能导致布线发生的改变,两个或多个改变,就更麻烦了。布局过程中的应在每一次改变方案之前就有了种种考虑,不但包括改变面谈布局后的跳线问题,甚至还包括不行之后的其它考虑都会在其中。反复的尝试,得出一个合理的布局,尽量做到电路的走线最优先、最简捷、最有效。制板中注意事项如下:

1. 模拟与数字电路合理分开, 普通信号线容易能以很简练的方式完成走线。 2. 高速信号线、主信号线可以得到最优先、最简捷、最有效的走线。 3. 电源线在走向上容易形成合理的回路和分支。

4 . 热设计合理,有利于系统日后工作中散热纳凉,发热元件较合理地远离模拟电路且工作时不熏烤这些电路。

5. 印刷板的制作特别要注意的是在布线时对220V市电进入和输出(包括中线)的线宽设计要宽一点(根据工作电流大小来定为好),还要注意市电与直流电源的隔离,以免在使用中造成触电事故。

19


基于单片机的多功能定时器设计与实现 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:医院科室院感监控自查记录表

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

马上注册会员

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