基于单片机的定时器设计_第1页
基于单片机的定时器设计_第2页
基于单片机的定时器设计_第3页
基于单片机的定时器设计_第4页
基于单片机的定时器设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的定时器设计摘要:生活处处都有单片机,家里的所有电器只要是智能控制的都是单片机控制、现在智能手机中arm处理器也是一种高级单片机。 本文是对实时控制中的,实时显示这一功能进行进一步的研究。实时控制系统,相对于其他的控制系统,最重要的一点就是实时。文中的实时,指的是对时间的显示。时间的显示包括对时、分的显示。这些时间的显示,可以按照自己的需求进行进一步的设定。 这个实时系统,可以是通过串口接收的上位机,接收上位机中的信号,根据需求来进行时间的显示,帮助系统实现实时的效果。同时,它可进行时间的独立显示。 利用STC89C51RC单片机作为本系统的中控模块。上电后,按下功能键进入调时状态,

2、通过各单元电路将按键部分设定的时间通过定时时间显示部分中的LED数码管显示出来。中途可重新设置定时数值,复位部分除上电初实现复位外,也可人工复位。关键词:实时;单片机;数码管;按键复位。Based on single chip microcomputer timer design Abstract:Life is a single chip, all appliances at home as long as the intelligent control is now SCM control Intelligent mobile phone ARM processor is a kind o

3、f advanced single chip microcomputer. This article is in real-time control, real-time display this function for further studies. Real-time control system, relative to other control system, the most important thing is that in real time. In this paper, the real-time, refers to the display of time. The

4、 display includes pair, the display of the time. The display of the time, can according to your needs further. The real-time system, can be via a serial port to receive the upper machine, receiving signals in the PC, according to the demand for time display, help system to realize real time effect.

5、At the same time, it can be independent of time. Using 89C51 microcontroller as the system control module. After power on, press the function key to transfer state, through each unit circuit timing LED digital display part of the display through the key part of the set time. You may re set the timer

6、 values, reset parts in addition to power up reset, the buttons can be reset at any time. Key Words : microcontrolle;digital tube;The Key to return. 目 录1引言1 1.1课题的来源和意义1 1.2定时器的应用1 1.3电子定时器的发展前景1 1.4 确定设计方案22 51单片机内部结构及计数原理2 2.1 51单片机内部机构2 2.2计数原理23 系统硬件配件设计4 3.1 芯片的选择4 3.2 交流控制接口电路5 3.3显示电路5 3.4 继电

7、器5 3.5数码管64 硬件电路设计7 4.1 中继触发电路7 4.2继电器开关电路8 4.3时钟电路95 软件设计10 5.1 实现功能10 结论11 参考文献13 致谢14 附录1:程序15 附录2:系统仿真原理图211 引言我们在日常生活中,经常碰到一些需要定时的事情,例如:印相或放大照片,需要定在零点几秒的时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的时间,电风扇需要定在数十分钟的时间。完成这种定时的定时器有多种多样,在家用电器中采用机械定时器就是根据一般上弦钟表原理设计的,这种定时器虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大大的缩减了它的使用寿命,也不利于进

8、一步全自动化。在电子技术突飞猛进的今天,电子定时器一定会逐步取而代之,这是不言而喻的。本文就是基于51系列单片机设计的定时器的设计方案。1.1课题的来源和意义本课题是通过导师筛选提出的,电子设计课题不一定很大,只要通过亲手做一遍全过程,完成一个产品制作,收获是很大的。本课题的意义在于通过设计和制作本课题把在学校学习到的知识融会贯通并应用到实际当中。做到学有所成,学有所用。1.2定时器的应用定时器在家用电器中经常用于延时自动关机、定时。延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相定时曝光、定时闪光、定时放

9、大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如:空调中的定时器,在工作一段时间之后便能自动切断电源停止工作。夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机。方便节能。定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施,甚至军事等。1.3电子定时器的发展前景传统的定时器绝大多数都是发条驱动式、电机传动式或电钟式等机械定时器,部分电子器械中也有试用时间继电器的。相对于传统的定时器,电子定时器的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。所以电子定时器的发展必定大有前途。

10、同时随着现代电子技术的发展,电子定时器也在不断的进步,朝向着更多用途、更高精度、更小体积发展着。例如:一个可编程电子定时器,它可以设置20组开、关电源设置,可以当时钟使用,1还也可以按星期组合让它在一周内的任意一天或几天按设置程序工作。而且它只有长12.5cm×宽5.5cm×厚5cm大小。且它的功耗特别小只有3W。可以说是小巧玲珑,节能省电。1.4 确定设计方案综上所述,此次的设计方案选定为: 以单片机STC89C51RC为主控制器,采用单片机内部定时、键盘和动态LED显示数码管设计定时器。 2 51单片机内部结构及计数原理 2.1 51单片机内部机构51单片机内部有一个8

11、位的CPU,同时CPU内部包含了运算器,控制器及若干寄存器如图(图1)所示。 图1 CPU内部结构图2.2计数原理STC单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。 从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。

12、此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。 定时器/计数器方式寄存器TMOD: 定时器方式控制寄存器TMOD在特殊功能寄存器中,字节地址为89H,无位地址。TMOD的格式如下图(图2)所示。 图2 TMOD格式图由图可见,TMOD的高4位用于T1,低4使用于T0,4种符号的含义如下:GAT

13、E:门控制位。GATE和软件控制位TR、外部引脚信号INT的状态,共同控制定时器计数器的打开或关闭。TCON的作用是控制定时器的启、停,标志定时器溢出和中断情况。TCON的格式如下图(图3)所示。其中,TFl,TRl,TF0和TR0位用于定时器计数器;IEl,ITl,IE0和IT0位用于中断系统。 图3 TCON格式图各位定义如下:TF1:定时器1溢出标志位。当字时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。TR1:定时器1运行控制位。由软件清“0”关闭定时器1。当GATE=1,且INT1为高电平时,TR1置“1”启

14、动定时器1;当GATE=0,TR1置“1”启动定时器1。TF0:定时器0溢出标志。其功能及操作情况同TF1。TR0:定时器0运行控制位。其功能及操作情况同TR1。IE1:外部中断1请求标志。IT1:外部中断1触发方式选择位。IE0:外部中断0请求标志。IT0:外部中断0触发方式选择位。TCON中低4位与中断有关,我们将在下节课讲中断时再给予讲解。由于TCON是可以位寻址的,因而如果只清溢出或启动定时器工作,可以用位操作命令。例如:执行“CLR TF0”后则清定时器0的溢出;执行“SETB TR1”后可启动定时器1开始工作(当然前面还要设置方式定)。3 系统硬件配件设计3.1 芯片的选择硬件电路

15、要实现对交流大电流电源的控制、定时时间的设定显示和到点提醒等功能。若采用40脚的单片机有利于设计,但会增大电路板的体积。本设计采用的STC89C52RCC89系列单片机是深圳宏晶科技公司推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机。STC89系列单片机具有ISP(在系统中可编程)动能和IAP(在应用可编程)功能,无需购买专用编辑器,可以通过串行口直接下载用户程序,性价比比较高如下图(图4)所示。 图4 STC89C51RC单片机STC89C51RC是一个有40个引脚的芯片,引脚如下图(图5)所示。 图5 STC89C51RC引脚图3.2 交流控制接口电路交流

16、接口电路可以选择继电器控制,也可采用可控硅控制等。本设计采用的是前一种继电器控制。3.3显示电路显示电路采用4个共阳极LED数码管。为了在定时达到分(钟)的时候能显示出时钟在计时,两个数码管之间增加一个发光二极管,以其闪烁来代表秒走动;为了使硬件电路简单,采用单片机直接驱动LED数码管(AT89C2051输出口能吸收20mA电流),用动态扫描法实现LED显示。3.4 继电器继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。它的主

17、要技术参数分为以下几点:1、额定工作电压额定工作电压是指继电器正常工作时线圈所需要的电压。根据继电器的型号不同,可以是交流电压,也可以是直流电压。2、直流电阻直流电阻是指继电器中线圈的直流电阻,可以通过万能表测量。3、吸合电流吸合电流是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。4、释放电流释放电流是指继电器产生释放动作的最大电流。当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。这时的电流远远小于吸合电流。 5、

18、触点切换电压和电流触点切换电压和电流是指继电器允许加载的电压和电流。它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点。3.5数码管数码管是一种半导体发光器件,其基本单元是发光二极管如下图(图6)所示。图6 数码管数码管分类:数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当

19、某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。驱动方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二

20、-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码

21、,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。4 硬件电路设计4.1 中断电路 中断电路主要用于当按键按下之后8输入与非门7

22、4HC30的输出端输出高电平,经非门电路74LS04倒相后,按键按下时输出为低电平,该低电平信号接单片机的外部中断信号输入端(即P3.2引脚),74HC30引.脚1,2,3,4,5,6,11,12是与非门的输入脚, 8脚是与非门的输出脚. 7脚是GND, 14脚是VCC. 9,10,13未连为N/C如下图(图)所示: 图7 中断电路图4.2继电器开关电路通过如下图(图8)的连接方式,可以提高驱动负载的能力,并且利用三极管截至和饱和导通的性质可以很方便的用于单片机控制。 图8 继电器开关电路4.3时钟电路时钟电路用于产生单片机工作所需要的时钟信号。芯片引脚XTAL1为输入端,引脚XTAL2为输出

23、端,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,构成了一个稳定的自激振荡器。电路中的电容C2和C3一般取30pF左右,而晶体的振荡频率范围通常是1.2MHz12MHz,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。但反过来运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高(线间寄生电容要小)。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。当振荡脉冲频率为12MHz时,一个机器周期为1us,当振荡脉冲频率为6MHz时,一个机器周期为2us。时钟电路如下图(图9)所示: 图9 时钟电路4.4复位电路 复位电路的复位信号为高

24、电平有效,其有效时间应持续24个振荡脉冲周期(即2个机器周期)以上。电阻R1与电容C1构成RC电路,电容C1充放电。当5V电压加上的瞬间,电容C1为正极朝上的电解电容。此刻C短路,因为电容C1不能突变,所以点A此刻也为5V,而后电压送到RST上,随着时间推移,C1充电至5V,此刻电容C1相当于断路,点A电压为0V,RST端低电平无效。复位电路如下图(图10)所示: 图10 复位电路5 软件设计5.1 实现功能程序开始首先对按键变量和小时、分钟变量进行定义,对共阴极数码管的段码(字型码)以一维数组方式定义。另外对延时函数、定时器初始化子函数、求按键子函数、按键处理子函数、计时子函数、显示子函数进

25、行声明(如图11所示)。在定时器T0、T1初始化和外部中断0()子函数中,规定定时器T0、T1的工作模式为方式1,定时时间为50ms。外部中断0采用下降沿触发方式。定时器工作在中断方式,即定时时间到,立即停止执行主函数,转而去执行中断服务函数(如图12、13、14所示)。在显示子函数中,上电复位后4位数码管显示“- - - -”。其中包括走时转换函数,负责将定时器走时数据转换为分钟的十位和个位,超过60分钟的数据再转换为小时的十位和个位。在计时子函数中,设置每50ms中断1次,秒计数器中计数值为200时,时间为1分钟。分钟计数器计数值为60时,时间为1小时预约时间到,单片机P3.6引脚输出低电

26、平,驱动三极管饱和导通,继电器的线圈中有电流经过,从而产生吸合动作,接通电源,用电器开始工作。 图11 主函数图 图12 定时器T0中断服务函数 图13 外部中断T1中断服务函数 图14 外部中断0中断服务函数 结 论本文在回顾电子定时器发展历程的基础上,首先阐述了电子定时器的基本原理,进而详细介绍了和电子定时器相关的各种专业名词和术语。硬件选型方面选用ATMEL公司的STC89C51RC单片机作为核心,用LED数码管显示和继电器作为电源输出控制。论文的软件部分给出了系统运行的流程图和程序。由于能力和知识水平的限制,设计中存在着不足。如硬件选择和连接可能有不合理,定时器中未能有电子表功能等人性

27、化部分,以后还需改进。从这次毕业论文设计中,无论对于单片机还是定时器,都进一步清晰了设计概念、学习了专业理论、掌握了芯片知识,而且还增长了实践经验,提高了认知水平,促进了自学能力。从诸多方面获得了很大的收益。 参考文献 1张志利. FPGA的单片机多机串行通信网络J. 单片机与嵌入式系统应用, 20092姚晓光. 基于GPRS的单片机固件升级系统设计J. 单片机与嵌入式系统应用, 2010 3李辉,宁祎,邓遵义. SPCE061A单片机程序存储器的扩展技术J. 机电产品开发与创新, 2008 4向鹏,李绣峰,杜遥雪. 分布式全电动注塑机控制系统J. 机械与电子, 20075李俊,王金海. 基于

28、TFTP协议的ARM软件远程更新系统J. 工矿自动化, 20106朱飞龙,杨鸣. 基于IAP功能单片机的远程更新系统设计J. 机电工程, 2010 7李广弟等.单片机基础M.北京航空航天出版社,20018王东峰等.单片机C语言应用100例M.电子工业出版社,20099陈海宴.51单片机原理及应用M.北京航空航天大学出版社,201010刘守义等.单片机技术基础M.西安电子科技大学出版社,200711钟富昭等.8051单片机典型模块设计与应用M.人民邮电出版社,2007 致 谢大学生活一晃而过,回首走过的岁月,心中倍感充实,当我写完这篇毕业论文的时候,有一种如释重负的感觉,感慨良多。首先诚挚的感谢

29、我的论文指导老师李学明老师。他在忙碌的教学工作中挤出时间来审查、修改我的论文。还有教过我的所有老师们,你们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。感谢三年中陪伴在我身边的同学、朋友,感谢他们为我提出的有益的建议和意见,有了他们的支持、鼓励和帮助,我才能充实的度过了三年的学习生活。由于专业水平有限,论文难免有不足、错误之处,恳请广大老师。同学批评指正! 附录1:程序#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit KE

30、YON =P20; / 开始键 sbit KEYOFF=P21; / 关闭键 sbit KEYSET=P22; / 预约键sbit KEYINC=P23; /加1键 sbit KEYDEC=P24; / 减1键 sbit KEYFREE=P25; /预留键sbit POWER=P36; /电源开关指示灯 sbit LED=P33 ; /按键指示灯uchar code dispcode=0x3f,0x06,0x05b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /0-9的字型码uchar data disbuf=0,0,0,0; /显示缓冲区uchar ho

31、ur,min ; /小时、分变量bit Onflag,flag;uchar Setflag;void delay(uchar); /延时子函数void init(void); /定时器初始化子函数uchar GetKeyNum(); /求按键号void Keyprocess(uchar); /按键处理子函数void calculate(); /计时子函数void display(); /显示子函数 /-主函数-void main(void) init(); P1=0x00; while(1) display(); /-定时器TO、T1初始化,外部中断0初始化子函数-void init() TM

32、OD=0x11; /TO、T1作定时器、工作方式1 TH0=(65536-50000)/256 ; /定时50ms TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; IT0=1; /选择外部中断0为下降沿触发方式 EX0=1; /开外部中断0 ET1=1; /开定时器1 ET0=1; /开定时器0 EA =1; /开总中断 TR0=1; /-显示子函数-void display() uchar i,j=0x08; if(Setflag=0)&&!(min|hour) /数码管显示“- - -

33、 -” for(i=0;i<4;i+) disbufi=dispcode10;else / 正常显示时间 disbuf0 = dispcodemin%10; /分个位 disbuf1 = dispcodemin/10; /分十位 disbuf2 = dispcodehour%10+0x80; /小时个位 disbuf3 = dispcodehour/10; /小时十位if(Setflag!=0)&flag) /如果调时,数码管闪烁显示 for(i=0;i<4;i+) if(disbufi=0x3f)&&(i>2) /不显示前面的0 P0=0; else

34、 P0=disbufi; if(Setflag=1) P1=j&0xfc; /调时,关断前两位位码 else P1=j & 0xf3; /调分,关断后两位位码 delay(5); /延时2.5ms P1=0x00; j=j>>1;else /数码管正常显示 for(i=0;i<4;i+) if(disbufi=0x3f)&&(i>2) P0=0; /不显示前面的0 else P0=disbufi; P1=j; /位选通 delay(5); /延时2.5ms P1=0X00; j=j>>1; /-外部中断0中断函数- void

35、int0()interrupt 0 using 0 uchar keynum; display(); /动态显示程序作为去抖动 if(INT0=0) /判断是否有按键按下 keynum=GetKeyNum(); /有效键,获取键值 while(INT0=0); /等待按键释放 Keyprocess(keynum); /按键处理 /-定时器0中断子函数- void time0() interrupt 1 /处理调时、显示器闪烁 static uchar ledcnt,num; /设置静态变量 TH0=(65536-50000)/256; /定时50ms TL0=(65536-50000)%256; if(Onflag && (hour | min)!=0) |! Onflag) /指示灯每隔0.5s闪烁 ledcnt+; if(ledcnt=10) / 10 X 50mS=0.5S ledcnt=0; LED=LED; if(Setflag!=0) /调时闪烁 num+;if(num=5) num=0; flag=flag;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论