计时器.docx
- 文档编号:8944722
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:32
- 大小:139.71KB
计时器.docx
《计时器.docx》由会员分享,可在线阅读,更多相关《计时器.docx(32页珍藏版)》请在冰豆网上搜索。
计时器
中文摘要
摘要:
基于单片机的计时和控制装置在许多行业有着广泛的应用,而数显计时器是其中最基本,也是最具有代表性的一个例子。
在基于单片机的数显计时器电路中,除了基本的单片机系统和外围电路外,还需要外部的控制和显示装置。
本数显计时器电路采用AT89C51单片机作为主控MCU,通过单片机的定时中断方式对时间进行控制,实现秒表和时钟两种计时方式。
通过使用3个按键开关分别实现计时调整、秒表/时钟计时功能转换、计时器启动/停止/清零功能。
通过使用六位LED数码管显示时、分、秒,时钟计时最大计时值为23时59分59秒,秒表计时最大计时值为99分59.99秒,LED数码管采用动态扫描方式。
本数显计时器具有体积小、耗电省、控制灵活、精确度高、运行可靠、维护方便等特点,可满足各种场合的应用需要。
关键词:
单片机;计时器;LED;AT89C51
Abstract
Abstract:
Thecontrolsettingandtimersettingofmicro-controllerunithavetheextensiveapplicationinmanyprofessionsanddigitaltimeristhemostbasicandrepresentativeone.Asidefromthesinglechipmicrocomputersystemandoutsidecircuits,thereareexteriorcontrolanddisplaydevicesanddigitaltimercircuitswhichbaseonthesinglechipmicrocomputersystem.ApplyingamaincontrolsystemMCUwhichismainlycomposedofsinglemicrocomputerAT89C51,twotimingmethodsincludingthestopwatchandclock,canberealizedthroughtimecontrollingofMCUinthewayofinterruption.Inordertorealizethefunctiontransformbetweenstopwatchandclock,aswellastimerstart/stop/clearfunctionsandtimerrespectivelyadjusting,threeswitchesareutilized.ThisdigitaltimerusesmicrocomputertogivepowertosixLEDdigitalnumericalpipes,whichdisplayshours,minutesandseconds,andtheclockofthetimercounters24hours,andthestopwatchdisplayis99minutes59seconds99milliseconds.Thepredominanceoftheproductisflexiblecontrolling,highprecisionandreliableoperationandsoon,whichcanmeettheapplicationdemandinvariousoccasions.
Keywords:
MicroControllerUnit;Timer;LED;AT89C51
目录
中文摘要i
Abstractii
1引言1
2设计要求1
3设计方案1
4硬件系统总体设计方案2
4.1单片机的选择3
4.2LED显示电路的设计与选择3
4.2.1LED显示器的选择4
4.2.2LED显示的驱动电路4
4.3时钟与复位电路的设计5
4.3.1时钟电路的设计5
4.3.2复位电路的设计6
4.4按键电路设计与器件选择7
4.4.1键盘结构的选择7
4.4.2键盘与单片机的接口电路设计7
4.5电源电路的设计8
5系统软件的总体设计9
5.1程序模块的设计9
5.2LED动态显示程序模块的设计10
5.3定时/计数器中断服务程序模块的设计10
5.4数显计时器计时程序模块的设计11
5.5时钟调整程序模块的设计12
5.6时钟/秒表功能转化程序模块的设计12
总结13
参考文献14
附录A15
附录B16
1引言
计时器的电路结构简单,功能齐全,计时准确,显示直观,具有最小单片机系统的基本构成。
因此,通过本课题计时器的设计,可以明白构成一个最简单,同时也具备实用性的单片机系统需要外围的设备的基本电路。
计时器电路中使用了单片机系统中最为常用的输入输出设备:
按键开关和数码管。
通过对本设计的说明,可以更加明确单片机系统的最简单的用途和控制方法。
计时器程序最能反映单片机系统中定时器和中断的用法。
单片机系统中的定时和中断是单片机最重要的资源,也是应用最广泛的功能。
计时器程序主要就是利用定时器和中断实现计时和显示功能。
所以,通过该设计可以了解单片机定时器和中断编程的基本方法。
2设计要求
1.以MCS-51系列单片机为核心器件,组成一个计时器系统。
2.系统显示器由6位数字型数码管组成,分别显示时间值的时、分和秒。
3.能够随时对当前时间进行调整。
4.能够随时实现秒表/时钟功能转换、省电(关闭显示)等功能。
3设计方案
单片机应用系统是以单片机为核心,配以相应的外围电路和软件,能实现某种功能的应用系统,它由硬件部分和软件部分组成。
硬件是系统的基础,软件则是在硬件的基础上对其合理的调配和使用,从而完成应用系统所要求完成的任务。
单片机应用系统的研制过程主要包括总体设计、硬件设计、软件设计、仿真调试误差分析等几个阶段,图1为系统总体设计框图。
图1系统总体设计框图
总体方案设计对于一个待开发的单片机应用系统,应收集相关的技术资料,查看过去是否有类似项目、产品。
如果有,则可分析这些项目、产品有什么优点、缺点,有什么值得借鉴。
如果没有,则应首先从理论上分析、探讨实现的可能方案,根据客观条件如环境、测试手段、仪器设备、资金成本等,选择一种最佳方案。
4硬件系统总体设计方案
为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。
由于静态显示法需要数据锁存器等硬件,接口复杂一些。
考虑时钟显示只有六位,且系统没有其它复杂的处理任务,所以,为了使硬件显示电路简单,采用单片机直接驱动LED数码管,用动态扫描法实现LED的显示。
单片机采用经济的AT89C51系列,这样单片机可具有足够的空余硬件资源实现其它的扩充功能。
根据设计要求与设计思路,确定出了该系统的硬件设计方案,图2所示为该系统设计方案的硬件电路设计框图。
硬件电路由5个部分组成,即单片机按键控制电路、单片机时钟复位电路、LED显示电路、列驱动电路、电源电路。
图2硬件系统总体设计框图
4.1单片机的选择
根据初步设计方案的分析,设计这样一个的应用系统,可以选择带有FlashROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。
可以选用与MCS-51系列相兼容的芯片,如ATMEL公司生产的AT89C系列单片机,见表1。
AT89C系列与MCS-51系列单片机相比最大的特点就是片内程序存储器采用闪速存储器,可以十分容易地进行程序的修改。
为了便于设计,对本例我们可选用AT89C51单片机。
该芯片的功能与MCS-51系列单片机完全兼容,并且还具有程序加密等功能,物美价廉,经济实用。
4.2LED显示电路的设计与选择
单片机应用系统中,通常都需要人机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。
显示器、键盘电路就是用来完成人机对话活动的人机通道。
本设计采用AT89C51的P0.0~P0.8口作为段码选通端口,用P2.0~P2.5作为列扫描端口。
LED显示电路的原理图如3所示。
图3LED显示电路原理图
4.2.1LED显示器的选择
在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。
LED发光器件一般常用的有两类:
笔段字符式和点阵字符式。
从连接方式上分有两类:
共阳极和共阴极。
共阳极的有效输入应为低电平,共阴极的有效输入应为高电平。
在我们的设计中,根据设计要求,选择了笔段字符式LED显示器,采用共阳极接法。
为此选择2位一体的时钟型LED显示器,简称“2-LED”,如图4所示。
分别用2位中的高位显示“时”、“分”、“秒”的十位,用低位显示“时”、“分”、“秒”的个位。
图42-LED显示器管脚
4.2.2LED显示的驱动电路
LED驱动问题是显示器设计中一个非常重要的环节。
因为如果驱动能力差,显示器亮度就低;且驱动器长期超负荷下运行很容易损坏。
动态显示由于一位数据的显示是由段选信号和位选信号共同配合完成的,因此必须同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。
1.LED的段驱动选择
本设计中选用了P0端口作为段码输出端,R为上拉电阻,作用是保证LED可靠导通与截止,可以选择阻值为430Ω的电阻。
AT89C51单条引脚可以允许10~20mA电流流入,所有I/O引脚总的灌入电流不得超过71~80mA。
对于扫描式7段LED显示器可以直接驱动。
当7段都处于亮的显示状态时,P0.1到P0.7流过的电流为IOL。
2.LED的位驱动选择
本设计中需使用6位LED数码管显示,采用共阳极接法,由P2口作为与LED的输出接口,用P2口的低6位作为LED的位码输出信号,为了提供共阳极LED数码的驱动电压,采用三极管9012作为电源驱动输出。
4.3时钟与复位电路的设计
4.3.1时钟电路的设计
单片机时钟电路通常有两种形式:
1.内部振荡方式AT89C51单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲(如图5所示)。
2.外部振荡方式:
外部振荡方式就是把外部已有的时钟信号引入单片机内(如图6所示)。
在组成一个单片机应用系统时,多数采用图6所示的内部振荡方式,这种方式的结构紧凑、成本低廉、可靠性高。
电路中,电容器C1和C2对振荡频率有微调作用,通常的取值范围为(30±10)pF。
为了提高秒计时的精确性,石英晶体选择12MHz.。
图5内部振荡方式图6外部振荡方式
4.3.2复位电路的设计
AT89C51单片机与其他微处理器一样,在启动时都需要复位,使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
AT89C51单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如RST引脚上有一个高电平并维持2个机器周期(24个振荡周期),则CPU就可以响应并将系统复位。
单片机的复位方式有上电自动复位和手动复位两种,如图7所示。
上电复位电路是在供电的瞬间RST输入高电平进行复位,上电时,只要Vcc上升时间不超过1ms,振荡器建立时间不超过10ms,它们都能很好地工作。
复位以后,单片机内部各部件恢复到初始状态。
按键电平复位电路是按键后自动复位。
按键脉冲电路是键按下后有脉冲输入时才会复位。
根据设计方案,本设计中复位电路选择了按键电平复位电路,电阻电容器的选择,即R2=200Ω,R3=8.2KΩ,C3=10μF。
按键可以选择专门的复位按键,也可以选择轻触开关。
图7(a)上电复位电路(b)按键电平复位电路(c)按键脉冲复位电路
4.4按键电路设计与器件选择
数显计时器应用系统工作时应具备两项基本功能:
一是随时实现秒表/时钟计时功能转换;二是随时对当前时间进行调整。
要实现这一功能,可以接入键盘输入电路。
4.4.1键盘结构的选择
常用的键盘接口分为独立式按键接口和矩阵式按键接口。
独立式按键就是各按键相互独立,每个按键接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。
因此,通过检测输入线上的电平状态可以很容易判断哪个按键被按下了。
此种按键适用于按键较少或操作速度较高的场合。
矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行列的交叉点上。
与独立式键盘相比,要节省很多的I/O线。
本设计只需3个按键,因此选择独立式键盘。
电路由按键和3个电阻组成,按键可以采用轻触开关,按键分别命名为S1、S2和S3。
为了实现按键功能,使P1口的电平触发灵敏可靠,接500Ω的上拉电阻。
4.4.2键盘与单片机的接口电路设计
电路如图8所示,将键盘直接与单片机的P1口连接,用P1.0、P1.1、P1.2口接三个按钮开关。
当按键未被按下时,P1.0、P1.1、P1.2均保持高电平,当某一按键被按下时,对应的接口变为低电平,执行相应功能。
三个按键功能如下:
图8键盘接口电路原理图
1.S1键功能:
设置当前时间,即当数显计时器的时间有误差时,需要随时对它进行调整,使用S1键与S2键配合来完成计时器的时分+1、-1调整这一功能。
操作说明如下:
按下S1按键,若按下时间短于1s,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。
当按下按钮时,若按下时间短于0.5s,则时间加1分;若按下时间长于0.5s,则进入小时调整状态。
在小时调整状态下,当按键按下的时间长于0.5s时,退出调整状态,时钟继续走动。
S2按键在调时状态下可实现减1功能。
2.S2键功能:
在正常计时状态下,若按下S2按键,则进行时钟/秒表计时功能转换,转换后计时从零开始。
S2按键在调时状态下可实现减1功能。
3.S3键功能:
当按下S3按键时,可实现计时器的启动、停止、清0功能。
4.5电源电路的设计
直流电源是单片机系统中重要组成部分,它不仅为系统提供电源电压,还直接影响到系统的技术和抗干扰性能。
比较经济实用的方法是由电网提供的交流电经过整流、滤波和稳压以后得到的。
直流电源的组成框图如图9所示。
电源电路原理图如图10所示。
将市电通过变压器降压,桥式整流,电容滤波后用稳压器7805稳压为5V直流电,供AT89C51单片机使用。
图9直流电源的组成
图10电源电路原理图
5系统软件的总体设计
软件设计的任务是在总体设计和硬件设计的基础上确定程序结构,分配单片机内部RAM资源,然后进行主程序和各模块程序的设计,最后连接起来成为一个完整的应用程序。
本设计将程序划分成6个模块。
如图11所示。
图11系统软件模块划分框图
5.1程序模块的设计
主程序的内容一般包括:
主程序的起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。
本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。
主程序执行流程图如图12所示。
图12主程序流程图
5.2LED动态显示程序模块的设计
为了将一个4位二进制数(可能为一个十六进制数,也可能为是一个BCD码)在LED上显示出来,就需要将4位二进制数译为LED的7位显示代码。
LED动态显示程序执行流程图如图13所示。
图13LED动态显示程序执行流程图
5.3定时/计数器中断服务程序模块的设计
在单片机中,定时功能既可以由硬件(定时/计数器)实现,也可以通过软件定时程序实现。
软件延时程序占用CPU的时间,降低了CPU的利用率;硬件定时是利用单片机片内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU的时间,使CPU有较高的工作效率。
本设计中,我们采用硬件定时和软件定时并用的方式。
由于MCS-51的定时/计数器是可编程的,因此,在进行定时或计数之前先要用程序进行初始化。
中断服务程序执行流程如图14所示。
图14T0中断服务程序
5.4数显计时器计时程序模块的设计
电子时钟系统的主要任务是:
采用单片机为核心器件产生24h时间,并用LED显示器将它显示出来。
因此,还要设计一个时钟程序以实现24h的定时功能。
本设计中单片机采用的时钟频率为12MHZ,则定时器最长的定时时间是65.536ms,在这种情况下24h这个值已经超过了定时器的最大定时值65.536ms。
因此要产生24h的时间值,可采用硬件定时和软件计数相结合的方法来实现。
累计24h的时间值,需要设置以下几个寄存器:
①R0:
时间计时单元指针寄存器。
先将R0指向秒计时单元(70H~71H)。
②R3:
累计60时间寄存器。
当R3大于或等于60s时,对秒计时单元清0,将R0指向分计时单元(76H~77H),并将分计时单元加1;或当R3大于或等于60时,对分计时单元清0,将R0指向小时计时单元(78H~79H),并将小时计时单元加1;或当R3大于或等于24h时,对小时单元清0,到此,中断退出。
中断退出时将分、时计时单元数据移入对应显示单元。
③R4:
累计1s时间寄存器。
T1每中断一次R4=R4-1,计数20次向R3进位,并将R4重装初值。
5.5时钟调整程序模块的设计
调时功能程序的设计方法是:
按下P1.0口(S0)按键,若按下时间短于1s,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。
当再按下按钮时,若按下时间短于0.5s,则时间加1分;若按下时间长于0.5s,则进入小时调整状态。
在小时调整状态下,当按键按下的时间长于0.5s时,退出调整状态,时钟继续走动。
此外,P1.1口(S1)按键在调时状态下可实现减1功能。
①根据按键电路设计可知,当S0键按下时,产生INT0中断请求,CPU响应中断请求时,便进入该中断服务程序。
②程序中,将时钟的各位分别进行调整。
采用24h时间表示,因此6位时间值要分别加以限制。
即小时十位,数的允许范围0~2;小时个位,数的范围有两种可能:
当小时十位为0、1时,小时个位的允许范围是0~9,当小时十位为2时,小时个位的允许范围是0~3;分十位,数的允许范围是0~5;分个位,数的允许范围是0~9;秒十位,数的允许范围是0~5;秒个位,数的允许范围是0~9。
5.6时钟/秒表功能转化程序模块的设计
图15时钟/秒表功能转化程序流程
在正常计时状态下,若按下P1.1口按键,则进行时钟/秒表功能的转换,转换后计时从零开始。
当按下P1.2口按键时,可实现清0、计时启动、暂停功能。
时钟/秒表功能转化程序流程如图15所示。
总结
本计时器按设计要求以AT89C51单片机为核心器件,配合外围电路,通过控制和显示装置来实现计时器系统。
控制中通过使用3个按键开关分别实现计时调整、秒表/时钟计时功能转换、计时器启动/停止/清零功能。
使用六位LED数码管显示时、分、秒,LED数码管采用动态扫描方式。
本计时器,能实现秒表和时钟两种计时功能。
具有体积小、耗电省、控制灵活、精确度高、运行可靠、维护方便等特点,只需单电源供电,适合使用于家庭、办公室、工业控制领域等场所。
经使用,该计时器计时准确,计时精度可达到分辨10ms,显示直观,时间可任意调整,使用方便。
在本此课程设计中,也遇到了一些问题,比如编程方面,对于应用单片机来完成计时器,则要求写程序的,在相关方面部分是借助资料和老师的指导。
参考文献
[1]董小红主编,《单片机原理及接口技术》,西安电子科技大学出版社,2004.8
[2]苏家健主编,《单片机原理及应用技术》,北京高等教育出版社,2004.11
[3]肖金球主编,《单片机原理与接口技术》,清华大学出版社,2004.12
[4]戴盛华主编,《单片机原理与应用》,清华大学出版社,2005.4
[5]陆子明主编,《单片机设计与应用基础教程》,国防工业出版社,2005.1
[6]张毅刚,彭喜元,姜守达,乔立岩编著,《新编MCS-51单片机应用设计》,哈尔滨工业
大学出版社,2005.1
[7]孙俊逸,盛秋林,张铮编著,《单片机原理及应用》,清华大学出版社,2006.3
[8]余永权.世界流行单片机技术手册(美国系列).北京航空航天大学出版社,2004
[9]赵建领.51系列单片机开发宝典.电子工业出版社,2007
附录A
图16计时器硬件电路原理图
附录B
;AT89C51控制源程序清单
;定时器T0、T1溢出周期为50ms(10ms),T0为秒计数用,T1为调整
;时闪烁用,P1.0、P1.1、P1.2为调整按钮,P0口为字符输出口,采用共
;阳显示管。
;中断入口程序
ORG0000H;程序执行开始地址
LJMPSTART;跳到标号START执行
ORG0003H;外中断0中断程序入口
RETI;外中断0中断返回
ORG000BH;定时器T0中断程序入口
LJMPINTT0;跳至INTT0执行
ORG0013H;外中断1中断程序入口
RETI;外中断1中断返回
ORG001BH;定时器T1中断程序入口
LJMPINTT1;跳至INTT1执行
ORG0023H;串行中断程序入口
RETI;串行中断程序返回
;主程序
START:
MOVR0,#70H;清70H~7AH共11个内存单元
MOVR7,#0BH
CLEAR:
MOV@R0,#00H
INCR0
DJNZR7,CLEAR;若R7=0,则继续执行
MOV7AH,#0AH;放入“熄灭符”数据
MOVTMOD,#11H;设T0、T1为16位定时器
MOVTL0,#0B0H;50ms定时器初值(T0计时用)
MOVTH0,#3CH;50ms定时器初值
MOVTL1,#0B0H;50ms定时器初值(T1计时用)
MOVTH1,#3CH;50ms定时器初值[11]
SETBEA;总中断开放
SETBET0;允许T0中断
SETBTR0;开启T0定时器
MOVR4,#14H;1S定时用初值(50ms×20)
START1:
LCALLDISPLAY;调用显示子程序
JNBP1.0,SETMM1;P1.0口为0时,转到时间调整程序
JNBP1.1,FUNSS;秒表功能,P1.1按键调时时作减1操作
JNBP1.2,FUNPT;RUN,STOP,CLR
SJMPSTART1;P1.0口为1时跳回START1
SETMM1:
LJMPSETMM;转到时间调整程序SETMM
FUNSS:
LCALLDS20MS;延时消抖动
JBP1.1,START1;干扰返回
WAIT11:
JNBP1.1,WAIT11;等待按键放开
CPL03H;03H标志取反
MOV70H,#00H;存储单元清0
MOV71H,#00H
MOV76H,#00H
MOV77H,#00H
MOV78H,#00H
MOV79H,#00H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计时器