1、一种基于单片机的多功能定时器的设计摘要与关键词:定时器、目录:1.设计任务2.方案设计与论证3.硬件电路设计3.1 STC 单片机的最小系统3.2 LED 显示与单片机接口3.3 发光二极管、按键、继电器与单片机接口4.软件设计4.1 发光二极管指示程序4.2 键扫描程序4.3 数码管的显示程序5.系统调试6电路原理图7.源程序8主要参考文献前言正文结论致谢附录参考文献1.1.设计任务设计一个基于单片机控制的专用定时器。要求定时器可以实现三个时间的显示,而且每个时间的初值都可以改变,独立完成系统的分析、设计和程序编写,记录开发过程中的问题及解决方法,要有设计过程和原理图,并自行设计满足设计任务
2、的稳压电源。设计主要指标参数:(1) 定时时间 1。 1S99S,可调。(2) 定时时间 2。 1S99S,可调。(3) 定时时间 3。 1min99min,可调。(4) 所有时间数字均可调。(5) 用 LED 数码管显示剩余时间。1.2 设计意义近年来随着科技的飞速发展,单片机的应用正不断地走向深入,同时带动传统控制检测的日新月异地更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,根据具体硬件结构以及具体应用对象的特点,与软件相结合,加以完善。单片机之所以在工业控制中有大量的应用,就在于它有独特的定时、计数功能。在工业检测、控制中,许多场合都要用到计数或定时的
3、功能。例如,对外部脉冲进行计数、产生精确的定时时间等。人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。“定时器”总的来说有两种类型。一种是基于模拟技术的传统产品,这种定时器的功能简单,尽管曾经被广泛应用过,但已列入淘汰之列。另一种是基于数字技术的新一代产品,这种产品功能强,是前者的代换之物。本设计开发了一种基于单片机的多用途定时器。它造价低,功能全,整体功能价格比较高,配以小键盘和 LED 显示器,可适应各种场合的定时预警之用。13 整体设计方案基于单片机系统的定时器电路包含了如下的功能模块: 基本的单片机系
4、统 单片机的定时中断 单片机的外围电路 外部按键输入装置 数码管 LED 显示装置设计要求输出如图 1.1 所示的时间定时输出,并显示每个时间的剩余时间。其中三个时间有各自的调节范围:T1, 1S99S; T2, 1S99S; T3, 1min99min.1.31方案一:利用单片机的定时器完成定时要求。利用单片机定时输出 Y1,Y2,Y3,并用发光二极管表示其时间的长短,用 LED显示定时的剩余时间。时间长短通过按键调节。继电器是定时后的具体应用器件。串口用来对单片机在线编程。方案一的原理图见 6.2STC89S52单片机发光二极管显示和指示按键的调节、选择串口LED 显示ULN2803 驱动
5、继电器应用方案二:高频脉冲信号作为定时器的时间基准,计时器实现定时。该系统的工作原理是:震荡器产生的稳定的高频脉冲信号,作为定时器的时间基准,经分配器输出标准脉冲。T1 减计数器即使时间通过 T1 预置数显示器显示 T1 的剩余时间,同时使 T1 的时间输出器和指示灯工作,当 T1 计数满之后,T2 计数器开始工作,并对 T2 预置数。T2 减计数器工作方式同 T1。当 T2 计数满之后 T3 减数开始工作。工作方式同 T1,T2, 如此循环,便能实现该设计的功能。原理图T3时间输出和指示T2时间输出和显示T1时间输出和显示T3 显示 T2 显示译码器T1 显示译码器译码器T3 减计数器T2
6、减计数器T1 减计数器T1 预置数T2 预置数T3 预置数振荡器 分频器1.32 方案选择对以上两个方案进行论证,并加以选择,确定该设计的总体方案框图以便进一步设计。方案一:有点是利用单片机的定时器定时,时间精度、稳定、可爱,并可以利用单片机的功能很好的进行时间的显示、指示、输出。原理简单,使用的原件少,相对来说在实物调试时出现的问题就少。该方案还有一个好处是成本低。此外,经过无数人证明,用单片机完全可以实现定时功能,失败风险小。缺点是使用单片机要求写程序。对于不熟悉软件的人来要单独完成该设计有一定的难度。方案二:优点是该方案应用稳定的高脉冲信号作为定时器的时间基准,可以说也有同单片机一样的精
7、确、稳定、可靠的输出时间,且对软件编写要求不高,能很好地实现设计要求的功能。缺点是该方案复杂,一般不容易弄明白它的原理,而且应用的元器件较多,在实物调试时出现的问题可能比较多。由于元器件比较多,所以相对来说实物的成本也比较高,而且在 PCB 布线时更加麻烦,由于原理复杂,所以成功完成该设计的概率较低。通过以上设计的方案比较,该设计选用方案一进行设计。1.4 硬件电路设计该设计选用 STC 单片机,STC 单片机的内部框图如图 4)STC89S52 微处理器低功耗,高速(090MHZ,高可靠掉电模式;1280B SRAM8/16/32/64KB内存内置系统ISP 监控程序看门狗E*EPROMDa
8、taFlash专业复位电路集成MAX810URT(串口)3个定时器双数据指针A/D四个 8 位并行端口和 P4.0P4.3 四个附属 I/O 端口A/D(高速)可做按键扫描电池电压检测 掉电检测音量和频谱检测等P0 口地址 OE8HINT2/P4.3INT3/P4.2P4 口均可位寻址STC89S52 系列单片机是兼容 8051 内核的单片机,是高速、低功耗的新一代 8051单片机,12 时钟/机器周期和 6 时钟/ 机器周期可反复设置,最新的 D 版内集成MAX810 专用复位电路。用 STC 提供的 STCISP.exe 工具将原有的代码下载进 STC 相关的单片机即可,或是通用编程器编程
9、。RC/RD+D 系列为真正的看门狗,默认为关闭(冷启动) ,启动后无法关闭,可放心省去外部看门狗。内部 Flash 擦写次数为 100000次以上,STC89S52RC/RD+系列单片机出出厂时就已完全加密,无法加密。用户程序是用 ISP/IAP 机制写入,一边校验一边写,无读出命令,彻底无法解密。选用 STC89S52 单片机的理由:加密性强,无法解答;超强抗干扰,轻松过 4KV快速脉冲干扰 EFT;高抗静电 (ESD),6KV 静电可直接承受在芯片管脚上;超低功耗,Power Down0.1Ua,可外部中断优先级可设置成 4 级;PLCC-44、PQFP-44 封装,有 P4口(可位寻址
10、) ;并增加两个外部中断,Int2/P4.3、Intl/P4.2; 6 时钟/机器周期或 12 时钟/机器周期可任意设置;可在系统可编程,无需编程器,可远程升级;可供应内部集成MAX810 专业复位电路,原复位电路可以保留,也可以不用,不用时 RESET 引脚直接短接到地。STC89 系列单片机大部分具有在系统可编程(ISP)特性, ISP 的好处是省去了购买通用编程器的开销,单片机在用户系统上即可下载/烧录用户程序,无需将单片机从生产好的产品上拆下,再通用编程器将程序代码烧录进的单片机内部。由于可以将程序直接下载进单片机查看运行结果,故也可以不用仿真器。1.4.1 STC 单片机的最小系统(
11、1)复位电路从原理上,一般采用上电复位电路。这种复位电路工作原理是:通电时,电容两端相当于短路,于是 RST 引脚上为高电平,然后电源通过电阻对电容充电, RST 端电压慢慢下降到一定程度,即为低电平,单片机开始正常工作。该设计中复位电路选用由 10UF 的电容和 10K 的电阻及 IN4148 二极管组成。在满足单片机可靠复位的电路前提下该复位电路的优点在于降低复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。二极管可以实现快速释放电容电量功能,满足短时间复位的要求。具体如图 5(2)晶振电路单片机的晶振电路是一种典型的电路,分析内部时钟和外部时钟两种方式。内部时钟方式如图 6内部
12、时钟电路的晶振频率一般选择在 4MHZ12MHZ 之间(该设计选用 12MHZ) ,外接两个谐振电容。该电容的典型为 30PF,该设计选用 22PF。1.4.2LED 显示器有 7 段(或 8 段,8 段比 7 段多了一个小数点“dp”段)这种显示器有共阳极和共阴极两种。该设计中选用的是共阴极。图 7共阴极 LED 显示器的发光二极管的阴极连接在一起,通常该共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。使用 LED 显示器时,为了显示数字或符号,要为 LED 显示提供代码,因为这些代码是通过段的亮与灭来显示不同字形,因此称之为段码。7 段发光二极管,再加上一个小
13、数点位,共计 8 段,因此提供给 LED 显示器的段码正好一个字节。各段字节中各位的对应关系如图显示数 dp G f e d c b a 断码0 0 0 1 1 1 1 1 1 3FH1 0 0 0 0 0 1 1 0 06H20 1 0 1 1 0 1 1 5BH30 1 0 0 1 1 1 1 4FH4 0 1 1 0 0 1 1 0 66H5 0 1 1 0 1 1 0 1 6DH6 0 1 1 1 1 1 0 1 7DH7 0 0 0 0 0 1 1 1 07H8 0 1 1 1 1 1 1 1 7FH9 0 1 1 0 1 1 1 1 6FH由于单片机 I/O 的电气特性决定了单片机
14、的端口的驱动能力有限,一般的,单片机的端口只是驱动 TTL 电平,不提供或者提供很小的驱动电流,所以在带负载时,单片机应当在 I/O 口加上驱动芯片。该设计中使用 ULN2803 驱动芯片。发光二极管工作电流在 10mA 左右,而一般 I/O 接口不能提供这么大的电流,需要使用驱动电路,常使用的有 ULN2003A,7 段驱动;ULN2803,8 段驱动。LED 与单片机的接线如图 8使用 ULN2803 驱动芯片对 LED 进行驱动,ULN2803 相当于一个反向驱动器,其内部具体结构如图 9ULN2803 的特点: 最大驱动电流可达到 500MA; 反向驱动; 需要限流电阻,数码管越多,限
15、流电阻的阻值越小。ULN2803 的额定值如表 额定值 符号 值 单位输出电压 V0 50V输入电压 Vi 30V集电极电流连续 Ic 500 mA基极电流连续 Ib 25 mA工作环境温度范围 Ta 0+7保存温度 Tstg -55+150结温 Ti 1251.4.3 发光二极管、按键、继电器与单片机接线发光二极管、按键、继电器与单片机接线如图 10 所示。1 发光二极管发光二极管在两端的电压差超过其导通压降时开始工作,发光二极管的导通压降一般为 1.71.9V。此外,工作电流要满足该二极管的工作电流,满足电流和电压的要求,发光二极管就可以发光了。单片机系统中往往是数字信号,其电源不是 5V
16、 就是 0V,所以只要将二极管的正负极和电源对应上就行了。发光二极管前面接一个电阻,这个电阻的作用在于限制二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制。一般二极管的点亮电流为 5MA10MA,在 5V 电源驱动时,厂家多采用 470欧。限流电阻,在该设计中选用 510 欧,这样既不会超出单片机的 I/O 口最大限流,二极管也比较明亮。2.按键按键使用上拉电阻方式接入单片机。未按下时对单片机输入一个高电平,按下后输入一个低电平。它在这个设计中的作用是用来调节 T1、T2 和 T3 的大小。键的闭合与否,反映在行线输出电压上就是呈现出高电平或低电平,如果高电平表示断开的话,那么低电平
17、则表示闭合,所以通过对行线电平的高低状态的检测,便可以确认按键按下与否。为了确保 CPU 对一次按键动作只确认一次按键,必须消除抖动的影响。3.继电器继电器在这个设计中作为输出设备,即是输出该定时时间的中转站。继电器是一个感性元件,感性件在使用过程中要加一个保护二极管,然而在上图中并没有这个二极管,不是该图设备不合理,而是在该设计中使用的驱动芯片 ULN2803 中已经带有这个起保护作用的二极管了。1.5 软件设计首先介绍程序中硬件功能,再进行发光二极管指示程序、键扫描程序和数码管的显示程序的设计。1511程序中硬件功能介绍 STC89S52:单片机,控制 LED 的数据显示。 LED:两个一
18、位的 7 断码 LED,用于显示单片机的数据。 74LS53:锁存器,74LS573 入的 D 端和输出 Q 端依次排列在芯片的两侧,为给印制电路板时的布线提供了方便。其功能与 74LS373 相同,可用来替代. ULN2803:驱动 LED,相当于一个反相器。 按键 S3:S3=1 时时间正常运行,S3=0 时开始控制三个时间中的一个,再次让 S3=0 时表示复位,时间又开始正常运行。 按键 S2:S2=0 时每按一次表示时间自减一,当 S2=1 时,时间不变。 按键 S1:S1=0 时每按一次表示时间自增一,当 S1=1 时,时间不变。D1D5:发光二极管,通过单片机的 P1.0P1.4
19、控制,用以观看三个时间的变化。2地址分配和连接 P2.7、P2.6:和 2803 驱动电路确定字位口的地址 0X80、0X40。 D0D7:单片机数据总线, LED 的现实内容通过数据线从单片机传送到LED。3.功能简介LED 显示模块与单片机的连接中,对 LED 显示模块读写和字位、字段通道的选择是通过单片机的 P2.7、P2.6 口完成的。按键 S1S3 完成按键的复位,定时时间的自增和自减功能。而发光二极管 D1D5 则反应了定时时间的不同亮灭就不同。4.程序要实现的功能 (1)199 S 的时间调整。(2)199min 的时间调整。(3)时间的数码显示。程序流程图如图 11开始定时器初始化设定初值R e l o a d ( )K E Y - S T = 1 ?键扫描结束L E D 显示二极管显示