倒计时实不时钟毕业设计.docx
《倒计时实不时钟毕业设计.docx》由会员分享,可在线阅读,更多相关《倒计时实不时钟毕业设计.docx(26页珍藏版)》请在冰豆网上搜索。
倒计时实不时钟毕业设计
XXXXXXX
毕业设计(论文)任务书
题目倒计时实不时钟设计
专业电子信息科学与技术学号姓名
要紧内容、大体要求、要紧参考资料等:
要紧内容:
以ATmega16为主控芯片,DS1302为实不时钟芯片,7段数码管为显示媒介,能准确地显示当前日期与时刻,并依照设定的终点日期自动计算并显示剩余天数,实现当前时刻、日期和终点日期可重置功能。
大体要求:
(1)能准确地显示当前的日期(年、月、日)和时刻(时、分、秒);
(2)能根据设定的终点日期,自动计算当前日期到终点日期之前的天数,并显示;
(3)提供人工方式的设置手腕;
(4)具有终点日期的重置与维持功能和实不时钟掉电运行功能。
要紧参考资料:
[1]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:
北京航空航天大学出版社,
[2]DALLASTrickleChargeTimekeepingChip
[3]康华光,陈大钦.电子技术基础:
模拟部份[M].北京:
高等教育出版社,
[4]王永军,李景华.数字逻辑与数字系统[M].北京:
电子工业出版社,
[5]沈文.AVR单片机C语言开发入门指导[M].北京:
清华大学出版社,
完成期限:
2009年6月5日
指导教师签名:
专业负责人签名:
年月日
倒计时实不时钟设计
摘要
本文介绍了一个基于ATmega16单片机的倒计时实不时钟的设计,系统采纳ATmega16作为主控核心,串行实不时钟芯片DS1302完成计时功能,采纳7段数码管动态扫描显示。
文章要紧分硬件设计和软件编程两个大方面。
硬件设计要紧包括中央处置单元电路、时钟电路。
软件用C语言来实现,其系统主程序采纳了状态机的分析设计思想,软件部份完成了对各个模块的操纵、整合,实现倒计时实不时钟信息的显示,键盘对时钟的设置,时钟显示等功能。
本设计在Proteus和CodeVisionAVR软件上进行了仿真和调试,实现了如下功能:
显示当前日期、时刻和剩余天数计算与显示,调整日期、时刻,达到了设计的要求和目的。
关键词:
ATmega16单片机;DS1302;状态机;倒计时实不时钟
ADesignofReal-timeClockCountdown
ABSTRACT
Thisarticledescribesadesignofreal-timeclockcountdown,thiscountdownbasedonATmega16asthemaincontrolcoreofthesystem,whichusing7-segmentdigitaltubedisplaydynamicscanning,andserialrealtimeclockchipDS1302completecomputingtimefunction.
Articlefocusesontwoaspects,theoneishardwaredesigning,theotherissoftwareprogramming.Hardwaredesigningincludesacentralprocessingunitcircuitandclockcircuits.SoftwareiswritteninClanguage,themainprogramofthesystemadoptedtheideaofstatemachinedesigning.Thepartofthesoftwarecompletesthecontrolandintegrationofeachmodule,andtherealizationofreal-timecountdownclockinformationdisplay,andsettingtheclockbykeyboard,andtheclockdisplayandsoon.
ThesimulationanddebuggingofthedesignarerunonthesoftwareoftheProteusandCodeVisionAVR.Thedesignrealizesthefunctionssuchasdisplayingofcurrentdateandtime,andtheremainingnumberofdayscountinganddisplaying,andadjustingthedateandtime.Thisdesignmeetsthedesignrequirementsandobjectives.
KEYWORDSATmega16microcontroller,DS1302,statemachine,real-timeclockcountdown
1绪论
单片运算机即单片微型运算机(Single-ChipMicrocomputer),是集CPU、RAM、ROM,按时、计数和多种接口于一体的微操纵器[1]。
它体积小,本钱低,功能强,普遍应用于智能产业和工业自动化上。
而AVR系列单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
本文通过对一个基于单片机的能实现时刻,日期和倒计时相关信息功能的倒计时实时时钟的设计学习,详细介绍了单片机编程中状态机应用思想。
从而达到学习、了解单片机相关指令在各方面的应用和提高系统应用的有效性。
系统由ATmega16、DS1302时钟芯片、7段数码管、按键等部份组成,能进行时、分、秒的显示。
也具有年、月、日的显示,倒计时相关信息提示等功能[2]。
课题研究背景
随着信息化的进展和人们生活节拍的提高,为了提高工作效率,提示大伙儿关注某项重大事件的开始或终止(如“高考”、“奥运会”等),以便更好地安排事件,倒计时实不时钟发挥的作用愈来愈大,同时,随着电子技术的进展,人们对倒计时实不时钟的要求也愈来愈高,要求其不仅计时精度高,而且具有靠得住性好、本钱低、功能全等特点[3]。
课题研究意义
倒计时实不时钟是在实不时钟基础上的衍生品。
它在实现显示当前日期和实践的大体功能之外,增加了自身计算和显示从当前日期到给定的以后一个日期(下称终点日期)之间的天数。
其形式也具有多样性,依照不同需求能够制作不同大小的产品,例如,倒计时牌,适合安放在大厅或广场,袖珍型倒计时实不时钟适合个人随身携带,能够自由设置对自己重要即将到来的日子,以提示自己做好应付工作,同时还能够作为数字时钟用,固然还能够在该基础上增加闹铃功能或裁减为更简单却十分有效的产品,例如篮球赛安放在篮板上方的倒计时牌。
本课题的目的是让单片机开发者把握单片机系统的安装和调试的方式,设计思路,实现方式,硬件调试及软件调试,巩固和增强“模拟电子技术”、“数字电子技术”课程的理论知识,培育独立分析问题和解决问题的能力和创新能力和创新思维。
倒计时实不时钟设计的成功,表示在数字电子技术领域内的入门,而且此大体电路能够简单地扩展设计,诸如家用按时自动报警、球赛计时器、抢答器、按时开关、自动打铃器、自动起闭路灯、可编程时刻的自动操纵器、动力设备延时启动操纵器、各类按时电气的自动启用等,都是以此为基础的。
因此,研究倒计时实不时钟及扩大其应用是单片机开发的重要课题[4]。
本文的结构
论文共分五个部份:
第一部份简单介绍了课题背景及研究意义;第二部份对DS1302的硬件资源、功能等作了较详细的论述;第三部份介绍了硬件电路的设计;第四部份介绍软件设计,程序采纳C语言在CodeVisionAVR软件编写、调试;第五部份介绍系统调试。
2系统整体方案设计
倒计时实不时钟是在实不时钟基础上的衍生品。
它在实现显示当前日期和实践的大体功能之外,增加了自身计算和显示从当前日期到给定的以后一个日期(下称终点日期)之间的天数。
因此,倒计时实不时钟应该具有以下功能:
(1)能准确地显示当前的日期(年、月、日)和时刻(时、分、秒)。
(2)能依照设定的终点日期,自动计算当前日期到终点日期之间的天数,并显示。
(3)当前日期、时刻和终点日期的调整和设定功能。
当系统第一次运行,或需要调整当前日期和时刻,和从头设定终点日期时,提供人工方式的设置手腕。
(4)当前日期、时刻和终点日期的调整与设定进程应该简单、靠得住,方便用户操作,人性化。
(5)终点日期的重置和维持功能。
用户能够重置终点日期,如此系统就成为能适合更多场合利用的迎XXX倒计时实不时钟,例如,设置终点日期为08年8月8日,它确实是迎奥运倒计时实不时钟;而终点设置为11年1月1日,它就变成迎新年倒计时实不时钟了。
设置的终点日期应能长期维持,系统掉电不丢失,系统能够自动依照当前日期和终点日期计算出二者之间相差的天数。
(6)实不时钟掉电运行。
倒计时实不时钟系统一样为广告牌的形式放置在走廊大厅或单位小区的大门处,因此显示器件应该采纳大型的高亮度LED数码管,方便人们在白天和比较远的地址观看。
大型的高度LED数码管需要15V的电压,功耗比较大,不适合采纳电池供电,一般是利用220V市电供电。
当发生停电等情形时,系统的显示功能能够停止工作,但必需保证系统的实不时钟部份还在正常的计时运行,即“电停表不断”。
如此当再次上电后,用户不必从头设置日期和时刻。
综上所述,我设计的倒计时实不时钟的硬件电路由主控部份(单片机ATmega16)、计时部份(实不时钟芯片DS1302)、显示部份(动态显示)、电源部份几个部份组成。
各部份之间彼此协作,组成一个统一的有机整体,实现倒计时实不时钟的功能。
如下是对其时钟模块和显示模块的比较与评估。
时钟模块
采纳ATmega16作为主控芯片,通常实不时钟的实现方案有两种途径:
一是利用AVR本身的功能;二是采纳专用的实不时钟芯片,如表2-1是这些方案的特点比较和评估。
表2-1实不时钟实现方案及特点
方案
实时时钟源
实现方法
特点
1
AVR内部定时器
软件
成本低,精度差,程序设计复杂,不易实现掉电可靠运行
2
外接32768Hz晶体
软件
成本低,精度稍差,程序设计复杂,不易实现掉电可靠运行
3
专用实时时钟芯片
硬件
成本稍高,精度高,程序设计简单,容易实现掉电可靠运行
表中的方案一、2都是利用AVR本身内部的功能来实现实不时钟的功能[5],该方案的要紧优势是本钱低,但缺点也是超级明显:
第一是不容易实现实不时钟的掉电运行;第二是系统软件设计比较复杂,这是因为软件不仅要实现所有的实不时钟的功能,还要考虑系统其他功能的实现。
第3种方案的实现本钱略微高一点,但专用实不时钟芯片DS1302的集成度高,走时准确,具有自动日历和闰年自动调整等功能,专门是专用实不时钟芯片本身耗电超级小,超级容易实现实不时钟的掉电运行设计[6],其电路如图2-1所示。
图2-1ATmega16与DS1302的接口电路
上述三种方案均是可行的,由于方案3外围接口电路简单,本钱较低,精度高,程序设计简单,能够专门好实现系统所要求的功能,故选用方案3。
显示模块
用单片机驱动LED数码管显示有很多方式,按显示方式分有静态显示和动态显示。
静态显示确实是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出去后,数码管始终显示该数据(不变),CPU再也不操纵LED,到下一次显示时,再传送一次新的显示数据。
静态显示的接口电路采纳一个并行口接一个数码管,数码管的公共端按共阴极或共阳极别离接地或接VCC。
这种接法,每一个数码管都要单独占用一个并行I/O口,以便单片机传送字形码到数码管操纵数码管的显示。
显然其缺点确实是当显示位数多时,占用I/O口过量。
为了解决静态显示I/O口占用过量的问题,可采纳串行接口扩展LED数码管的技术。
静态显示方式的优势是显示的数据稳固,无闪烁,占用CPU时刻少。
其缺点是由于数码管始终发光,功耗比较大。
动态扫描用分时的方式连番操纵每一个显示器的COM端,使每一个显示器连番电亮。
在连番点亮进程中,每位显示器的点亮时刻极为短暂,但由于人的视觉暂留现象及发光二极管的余晖效应,给人的印象确实是一组稳固的显示数据。
动态驱动一样用于多位LED数码管显示,主若是节省驱动管脚,减少器件。
从以上两种显示方式比较,咱们能够看到,动态扫描靠得住,综合性能更好。
因此选用动态扫描方案[7]。
3核心芯片介绍
DS1302简介
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实不时钟芯片,它能够对年、月、周、日、时、分、秒自动计时,且具有闰年补偿功能,工作电压宽达~。
它采纳3线串行接口与CPU进行同步通信,并可采纳突发方式依次传送多字节的时钟信号或RAM数据。
DS1302内部有一个31字节的用于临时寄存数据的RAM寄放器。
DS1302还具有主电源/后备电源供电的双电源引脚,能够自动切换电源,同时提供了对后备电源进行涓细电流充电的能力[8]。
引脚功能和结构
图3-1DS1302引脚配置图
图3-1为DS1302的引脚排列。
其中VCC1为后备电源,VCC2为主电源。
DS1302由VCC1或VCC2二者中的较大者供电。
当VCC2>(VCC1+时,VCC2给DS1302供电,同时能够向VCC1充电;当VCC2因此,在主电源关闭的情形下,也能维持时钟的持续运行。
X1和X2是接振荡源引脚,外接晶体(钟表、电子表经常使用晶体)。
是复位/片选线;I/O为串行数据输入/输出双向端口;SCLK是串行通信的时钟输入脚,时钟处于输入状态。
这3个引脚用于数据通信,下面有详细说明。
DS1302的操纵字节
DS1302的操纵字节如表3-1,列位的概念如下:
Ø操纵字节的最高位(第7位)必需是逻辑“1”。
若是它为“0”,则不能把数据写入DS1302中。
第6位为“0”时,表示读/写日历时钟数据,为“1”时,表示进行读操作。
Ø最低位(第0位)为“0”时,表示要进行写操作;为“1”时,表示进行读操作。
Ø操纵字节老是从最低位开始输出(低位在前)。
表3-1DS1302的操纵字节
数据输入/输出
DS1302的数据接口是一种3线制的串行接口,操纵器与DS1302进行数据互换时,第一要向DS1302发送一个字节的操纵指令字。
关于写DS1302的操作,操纵器第一发送写操纵指令字,然后接着发送数据字节,在下一个SCLK时钟的上升沿时(图3-3中第9个),数据被写入DS1302,数据输入从低位开始,即低位在前。
同意,若是要从DS1302中读数据,则操纵器要先发出读操纵指令字,当DS1302收到读操纵指令字后,随后通过I/O口线输出数据,操纵器在第9个SCLK的上升沿时将数据读入。
数据的读/写时序如图3-3所示。
图3-3DS1302的读/写操纵时序
在图3-3中,
是复位/片选线。
引脚的输入有2种功能:
第一,
接通操纵逻辑,许诺地址/命令序列进入移位寄放器;第二,
提供终止单字节或多字节数据的传送手腕。
操纵器通过把
输入口置高电平(图中
的上升沿)来启动DS1302的数据传送进程,且只有当
为高电平常,才能对DS1302进行操作。
若是在数据传送进程中将
置为低电平,则会终止这次数据传送,DS1302的I/O引脚变成高阻态。
上电进程中,在Vcc≥之前,
必需维持低电平。
另外,只有在SCLK为低电平常,才能将
置为高电平。
DS1302的寄放器
DS1302有12个寄放器,其中有7个寄放器与日历、时钟相关,用于寄存日期和时钟值。
数据的格式为紧缩BCD码形式,其日历、时刻寄放器及其操纵字如表3-2所列。
利用中需要专门注意秒寄放器的最高位CH,CH位是停止/启动时钟的操纵为,当该位为“1”时,时钟停止计时,维持现有数据不变,进入低功耗的待机状态;当CH为“0”时,时钟才启动计时、进入正常工作方式。
因此当DS1302第一次上电时,应该将CH写“0”,启动时钟工作。
表3-2DS1302的日历、时钟寄放器及操纵字
寄存器名
命令字
取值范围
各位内容
写操作
读操作
7
6
5
4
3
2
1
0
秒寄存器
80H
81H
00--59
CH
10SEC
SEC
分寄存器
82H
83H
00--59
0
10MIN
MIN
时寄存器
84H
85H
01-12或00-23
12/24
0
10
HR
HR
日寄存器
86H
87H
01-28,29,30,31
0
0
10DATE
DATE
月寄存器
88H
89H
01--12
0
0
0
10M
MONTH
周寄存器
8AH
8BH
01--07
0
0
0
0
0
DAY
年寄存器
8CH
8DH
00--99
10YEAR
YEAR
对后备电源进行涓细电流充电
DS1302能够利用双电源供电,当VCC2(主电源)>(VCC1+)时,DS1302自动切换到由VCC2供电,同时还具有向VCC1充电(当VCC1接可充电电池时)的功能,充电电流的大小也能够通过设置相应的操纵充电寄放器来改变[9]。
图3-4是DS1302对后备电源VCC1进行涓细电流充电的示用意。
充电进程由DS1302内部的2个寄放器操纵。
DS1302的那个功能,为实现实不时钟的掉电运行提供了方便、靠得住的方案。
图3-4DS1302对后备电源进行涓细电流充电示用意
ATmega16介绍
ATmega16特点
(1)采纳先进RISC结构的AVR内核
131条机械指令,且大多数指令的执行时刻为单个系统时钟周期;32个8位通用工作寄放器;工作在16MHz时具有16MIPS的性能;配备只需要2个时钟周期的硬件乘法器
(2)外围接口
2个带有别离独立、可设置预分频器的8位按时器/计数器;1个带有可设置预分频器、具有比较、捕捉功能的16位按时器/计数器;片内含独立振荡器的实不时钟RTC;4路PWM通道;8路10位ADC;面向字节的两线接口TWI(兼容I2C硬件接口);1个可编程的增强型全双工的,支持同步/异步通信的串行接口USART;1个可工作于主机/从机模式的SPI串行接口(支持ISP程序下载);片内模拟比较器;内含可编程的,具有独立片内振荡器的看门狗按时器WDT。
(3)宽电压、高速度、低功耗
工作电压范围宽:
ATmega16—;运行速度:
ATmega160—16M;低功耗:
ATmega16L工作在1MHz、3v、25度时的典型功耗为,正常工作模式,空闲工作模式,掉电工作模式<1uA。
ATmega16外部引脚与封装
ATmega16单片机有三种形式的封装:
40脚双列直插PDIP、44脚方形的TQFP和MLF形式(贴片形式)。
其外部引脚封装如图3-5所示。
图3-5ATmage16外部引脚与封装示用意
其中,I/O引脚,分成PA、PB、PC和PD四个8位端口,他们全数是可编程操纵的双(多)功能复用的I/O引脚(口)。
四个端口的第一功能是通用的双向数字输入/输出(I/O)口,其中每一名都能够由指令设置为独立的输入口,或输出口。
当I/O设置为输入时,引脚内部还配置有上拉电阻,那个内部的上拉电阻可通过编程设置为上拉有效或上拉无效。
若是AVR的I/O口设置为输出方式工作,当其输出高电平常,能够输出20mA的电流,而当其输出低电平常,能够吸收40mA的电流。
因此AVR的I/O口驱动能力超级强,能够直接驱动LED发光二极管、数码管等。
而初期单片机I/O口的驱动能力只有5mA,驱动LED时,还需要增加外部的驱动电路和器件。
芯片Reset复位后,所有I/O口的缺省状态为输入方式,上拉电阻无效,即I/O为输入高阻的三态状态[10]。
4系统硬件设计
应用系统结构
依照系统的功能和实施方案的确信,倒计时实不时钟的结构由下图4-1所示的几部份组成。
图4-1倒计时实不时钟的结构图
ØATmega16:
系统核心操纵芯片。
ØDS1302:
专用实不时钟芯片(具体上文DS1302章节介绍)。
Ø显示单元:
由高亮度LED数码管组成,显示日期、时刻、剩余天数。
Ø按键:
设置日期、时刻。
Ø主电源:
220V交流输入,输出直流5V,供电系统操纵利用;直流15V供高亮度LED数码管的驱动电路利用。
Ø备用电源:
当主电源停止工作时,DS1302由备用电源供电,以维持运行。
显示单元
数码管编码
在本设计中,我利用ATmega16芯片的PB端口作为数码管段码的输出端,其对应的编码如表4-1所示[11]。
表4-18段LED数码管字型字段编码表
显示
字型
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
段码
共阴极
段码
共阳极
h
g
f
e
d
c
b
a
0
0
0
1
1
1
1
1
1
3FH
C0H
1
0
0
0
0
0
1
1
0
06H
F9H
2
0
1
0
1
1
0
1
1
5BH
A4H
3
0
1
0
0
1
1
1
1
4FH
B0H
4
0
1
1
0
0
1
1
0
66H
99H
5
0
1
1
0
1
1
0
1
6DH
92H
6
0
1
1
1
1
1
0
1
7DH
82H
7
0
0
0
0
0
1
1
1
07H
F8H
8
0
1
1
1
1
1
1
1
7FH
80H
9
0
1
1
0
1
1
1
1
6FH
90H
A
0
1
1
1
0
1
1
1
77H
88H
b
0
1
1
1
1
1
0
0
7CH
83H
C
0
0
1
1
1
0
0
1
39H
C6H
d
0
1
0
1
1
1
1
0
5EH
A1H
E
0
1
1
1
1
0
0
1
79H
86H
F
0
1
1
1
0
0
0
1
71H
8EH
注:
B、D字型为小写b、d,以同数字八、0字型区别
系统显示面板部份
倒计时实不时钟系统面板如下图4-2所示
图4-2倒计时实不时钟系统面板设计图
面板设计成大的广告板形式,上面的文字是贴上去的烫金字,能够依照不容的需要进行改换,如换成“距新年还有……天”。
面板上利用了9个8英寸的高亮度LED数码管,别离用于显示年、月、日、时、分、秒和剩余天数。
L一、L22位,显示年和时,交替。
L3、L42位,显示月和分,交替。
L五、L62位,显示日和秒,交替。
D一、D二、D33位,显示剩余的天数,最多999天。
:
、—秒闪烁标志。
L1~L6共6位LED用于时刻和日期的显示,在系统正常显示状态下,时刻和日期的显示每隔15s交替一次。
秒闪烁标志由4个远点LED和两个条状LED组成,每秒钟闪烁一次