基于单片机的倒计时装置设计Word格式文档下载.docx
《基于单片机的倒计时装置设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的倒计时装置设计Word格式文档下载.docx(39页珍藏版)》请在冰豆网上搜索。
所有这些都是基于倒计时计时器。
因此,研究倒计时计时器具有重要的意义和实用价值。
本设计的工作原理是以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:
输出时间,按下键就开始计时,并将时间显示在LED数码显示器上。
了解单片机和键盘的控制和显示原理,为学习和发展奠定基础,在供应链管理中提高自己的能力和设计能力,创新能力培养和丰富知识理论,理论和实践相结合。
本次设计的意义是对单片机的部结构和工作状态作进一步的了解,同时也对单片机接口技术的中断技术、存储方式和控制方式进行了深入的了解。
1.2相关领域的成果
随着电子技术的飞速发展,单片机的倒计时装置已逐渐被广大家庭所接受,这对每个人的生活和工作都很方便。
倒计时装置的任务,是在一个设置时间倒计时,显示当前距离设置的时间,广泛使用的主要活动,以提高人们的关注和紧迫感。
我国80年代初的倒计时装置的发展,得到了广泛的应用。
随着新材料技术、电子传感器技术、数字通信技术、计算机技术、软件技术和网络技术的飞速发展,监控系统也向着网络化、社会化、传输线、总线结构。
随着超大规模数字集成电路和单片机技术的飞速发展,利用单片机及其它外围芯片实现气体的监测成为可能,并成为一种发展趋势。
它体积小,操作简单,携带方便,性能好,性价比高,应用前景广阔。
1.3课题来源及主要研究容
本选题是由教师选择的几门学科,虽然倒计时计时器已经很常见了,但自己动手,要学习实际操作的知识,通过这个过程将有很大的收获,巩固了单片机应用的知识,提高了自己的动手能力和解决问题的能力。
本设计为单片机倒计时装置的设计,该装置采用AT89C51单片机为核心控制器的倒计时器,用于倒计时功能的机会进入倒计时之际。
分钟和秒是2个数字显示,键盘设置在提前到倒计时时间,按钮启动倒计时装置,数码管动态显示倒计时屏幕,当倒计时到零,声音,表示结束的倒计时。
第二章设计原理
2.1设计要求
利用AT89C51单片机结合LED显示器设计一个简易的倒时计数器,可用来煮挂面、烧开水等。
对于短时间的计数,当计数为0时,红色发光二极管灯闪烁,通知计数停止了,该做应当做的事。
倒计时计数器的基本功能如下。
显示格式为“分分:
秒秒”。
用4个按钮来设置当前想要计算的时间。
一旦按钮被按下开始计数,当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。
K1—可调整倒计数的时间1~60分钟。
K2—设置倒计数的时间为5分钟,显示“0500”。
K3—设置倒计数的时间为10分钟,显示“1000”。
K4—设置倒计数的时间为20分钟,显示“2000”。
按K1键则在LED上显示出设置画面。
此时,若:
a.按操作键K2—增加倒计数的时间1分钟。
b.按操作键K3—减少倒计数的时间1分钟。
c.按操作键K4—设置完成。
附加功能:
K5—计数开始按钮。
设置定好时间后,按下K5就开始计数,计数完后,发出一阵音乐,可以按下K5后音乐停。
2.2工作原理
倒计时计数器所倒数的时间由数字显示,控制器使用单片机AT89C51。
本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个简单的计数器,包括以下功能:
当倒计数为0时,蜂鸣器就发出音乐声响等等。
该计数器系统主要由计数器模块、LED数码显示器,显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。
2.3程序设计与方案论证
近年来,随着计算机在社会领域的渗透,单片机的应用正在不断走向深入,同时带动传统控制检测日新月益更新。
现在,在很多方面已经广泛使用了计时器,如在定时闹钟的安全措施;
游戏倒计时;
保持交通灯的秩序;
红灯、交通控制器、闹钟等因
因此,体现出倒计时计时器在社会中的重要性。
当然,有很多方法来设计倒计时计时器,下面是2种不同的设计方案。
方案一:
基于AT89C51单片机的LED液晶显示模块1602显示倒计时。
主要控制单片机,用按钮来设置倒计时的初始值,LED1602液晶作为显示模块显示剩余时间。
方案二:
基于AT89C51单片机的数码管显示模块显示倒计时。
主要是对单片机进行控制,用按钮来设置初始值的倒计时,数码管作为显示模块来显示时间的休息。
此电路为倒计时计时器的数码管显示,采用基于软件的界面方法,即不使用专用的硬件解码器,并使用软件程序进行解码。
方案比较:
通过以上2种方案的比较,我们发现第一种方案,虽然硬件电路简单,但成本较高,编写程序实现所需的功能是很难的。
而第二种方案所用的显示模块更熟悉的是LED数码管,比较容易写程序,而且电路成本不高。
因此,综合考虑,决定了此设计的方案使用第二种方法。
2.4系统框图
LED数码管倒计时器以AT89C51单片机为核心,起着控制作用。
系统包括八位数码管显示电路,按键电路,复位电路,晶振电路,时钟电路以及蜂鸣器电路等组成。
倒计时的总体框图如下图2-1所示:
图2-1倒计时总体框图
有图2-1可以看出该系统的硬件部分设计是以单片机AT89C51系统为核心,用于整个设计的数据处理及控制显示电路,由蜂铃器组成的报警电路的正常工作。
在这里我们选用8位单片机AT89C51。
第三章器件的选择及介绍
3.1单片机AT89C51
AT89C51是一种低功耗高性能的8位单片机,片带有一个4KB的Flash在线可编擦除只读存储器,它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统和51系列单片机兼容。
片的存储器允许在线重新编程或用常规的非易失性存储器编程器来编程。
同时已具有三级程序存储器的性能。
在众多的51系列单片机中,要算ATMEL公司的AT89C51更实用,因为它不仅和MCU-51系列单片机指令、管脚完全兼容,而且它将通用CPU和在线可编程Flash集成在一个芯片上。
这种单片机对开发设备的要求很低,开发时间也大大缩短。
写入单片机的程序还可以加密,功能较之89C51更加强大,使用也更加灵活。
3.1.1主要功能特性
4KB的Flash在线可编擦除只读存储器,擦写可达1000次
具有断电标志POF具有两个数据指针DPTR0和DPTR1
兼容MCS-51指令系统32个双向I/O口
两个16位可编程定时/计数器振荡频率0~33MHZ
1个串行中断128x8bit部RAM
两个外部中断源共6个中断源
可直接驱动LED包含3级程序锁定位
低功耗空闲和掉电模式具有片看门狗定时器
由上可知与AT89C51相比,AT89S51具有更突出的优点,主要表现在:
新增加了在线可编程功能ISP,在现场程序调试和修改更加方便灵活;
数据指针增加到两个,方便了对片外RAM的访问过程;
新增加了片看门狗定时器WDT,提高了系统的抗干扰能力;
增加了断电标志;
增加了掉电状态下的中断恢复模式。
3.1.2AT89C51的引脚说明
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
图3-1AT89C51引脚图
VCC(40脚):
供电电压。
GND(20脚):
接地。
P0口(32脚~39脚):
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口(1脚~8脚):
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口(21脚~28脚):
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口(10脚~17脚):
P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,P3口管脚备选功能如下表所示:
表3-1P3口第二功能
引脚
第2功能
P3.0
RXD(串行口输入端)
P3.1
TXD(串行口输出端)
P3.2
/INT0(外部中断0请求输入端,低电平有效)
P3.3
/INT1(外部中断1请求输入端,低电平有效)
P3.4
T0(定时器/计数器0计数脉冲输入端)
P3.5
T1(定时器/计数器1计数脉冲输入端)
P3.6
/WR(外部数据存储器写选通信号输出端,低电平有效)
P3.7
/RD(外部数据存储器读选通信号输出端,低电平有效)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST(9脚):
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG(30脚):
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN(29脚):
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP(31脚):
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;
当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1(19脚):
反向振荡放大器的输入及部时钟工作电路的输入。
XTAL2(18脚):
来自反向振荡器的输出。
3.2单片机定时器的使用
本设计所用到的AT89C51有3个16位的定时器,而本设计只用到了定时器0和定时器1,所使用的工作方式都是定时器工作方式1,方式1时16位计数结构的工作方式,计数器由TH0或TH1的全部8位和TL0或TL1的全部8位构成。
使用工作方式1功能时,定时时间计算公式是:
(65536-计数初值)*机器周期
机器周期=晶振周期*12
本系统所用到的定时器0的定时时间是1ms;
定时器1的定时时间是10ms;
而电路所用的晶振是12MHZ,算得一个机器周期为1us,因此由以上的公式可知定时器0的初值THO是0xFC,TLO是0x18;
定时器1的初值TH1是0xD8,TL1是0xF0。
3.3显示器件选择
LED数码管由于其成本低、驱动电路简单、配置灵活、与单片机接口简单等很多优点,被广泛应用于单片机应用系统中。
因此我们选用LED数码管作为显示器件。
数码管的工作原理如下:
数码管由8个LED发光二极管组成,外形如图3-2所示。
a~g和dp为8个发光二极管,其中a~g用于显示字符,dp用于显示小数点。
当发光二极管正向导通时,借着点亮每一段的LED就可以显示出数字。
在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;
而若将二极管的阴极连在一起,称为共阴极数码管,本设计采用的就是共阴极接法的数码管。
下图是八段数码管的引脚:
图3-2LED引脚图
各段码位的对应关系如下表:
表3-2段码位与显示位对应关系表
段码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
字型和对应的共阴极段码如下表:
表3-3十六进制数及空白字符与P的显示段码
字型
共阴极段码
3FH
9
6FH
1
06H
A
77H
2
5BH
B
7CH
3
4FH
C
39H
4
66H
D
5EH
5
6DH
E
79H
6
7DH
F
71H
7
07H
空白
00H
8
7FH
P
73H
注:
(1)本表所列各字符的显示段码均为小数点不亮的情况
(2)空白字符即没有任何显示
第四章硬件电路的设计
4.1硬件电路注意事项
本设计分为硬件设计和软件设计两个方面,两者都是相互结合的,不能分开;
从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。
只要技术准备充分,硬件设计的大返工时比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,是硬件电路的集成度越来越高,硬件设计的工作量在整个项目中所占的比重逐渐下降。
为使应用硬件电路设计尽可能合理,应注意以下几个方面:
(1)尽可能利用功能强的芯片,简化电路,功能强大的芯片可以取代普通芯片的数量,在生产过程中,新的芯片价格继续下降,并比若干个普通芯片的价格总和高。
(2)留有设计余地。
在设计硬件电路时,要考虑到将来修改扩展的方便。
如果我们在未来不留余地的努力,有可能是一个小的修改或扩展,并被压迫进行了全面的返工,因为很少有最后的电路设计。
(3)程序空间,选用片程序空间足够大的单片机,本设计采用AT89C51单片机。
(4)RAM空间,AT89C51部RAM不多,当要增强软件数据处理功能时,往往觉得不足。
如果系统配置了外部RAM,则建议多留一些空间。
随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以是系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。
只要硬件电路设计早期考虑这一点,就应该为系统的未来升级足够的存空间,即使是设计的一个存插槽,也不会堵塞芯片。
(5)I/O端口;
当原型开发和应用于该领域,一些问题往往被发现是被忽略,并没有解决的问题,通过简单的软件措施。
如有些新的信号需要采集,就必须增加输入检测端:
有些物理量需要控制,就必须增加输出端。
如果硬件电路设计预留了部分的I/O端口,虽然时间和空间是没有用的,但需要使用的时间来方便。
4.2硬件电路设计原理图
电路原理图如图4-1所示
第五章各部分电路介绍
5.1复位电路
复位是单片机的初始化操作,只需给AT89C51的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位,复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。
除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。
在系统中,有时会出现显示不正常,也为了调试方便,我们需要设计一个复位电路,AT89C51单片机复位电路共有上电复位、按键电平复位和按键脉冲复位。
本系统是复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。
复位电路可由简单的RC电路构成,也可使用其它的相对复杂,功能更完善的电路。
本系统采用的电路如图5-1所示。
工作原理是当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
上电复位要求接通电源后,自动实现复位操作。
当单片机已在运行当中时,按下复位键后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
复位电路如下图所示:
图5-1复位电路原理图
5.2时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。
常用的时钟电路有两种方式,一种是部时钟方式,另一种是外部时钟方式。
单片机必须在时钟的驱动下才能工作。
在单片机部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机部的各个单元,决定单片机的工作速度。
本系统使用的是部时钟方式。
时钟电路如下图5-2所示:
图5-2 时钟电路原理图
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C4、C5的作用有两个:
一是帮助振荡器起振;
二是对振荡器的频率进行微调。
本系统的C1、C2的值为1nF。
单片机在工作时,有部振荡器产生或由外直接输入的送至部控制逻辑单元的时钟信号的周期称为