基于单片机的电子钟的设计毕业设计论文.docx
《基于单片机的电子钟的设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子钟的设计毕业设计论文.docx(34页珍藏版)》请在冰豆网上搜索。
基于单片机的电子钟的设计毕业设计论文
基于单片机的电子钟的设计
重庆大学毕业论文
摘要
20世纪末电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。
数码管显示的时间简单明了而且读数快、时间准确显示到秒。
而机械式的依赖于晶体震荡器,可能会导致误差。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,利用AT89C51读取DS1302时钟芯片的信息。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟是其小巧,价格低廉,走时度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
关键字:
时钟、单片机、精确
1绪论
1.1数字电子钟的背景
20世纪末电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
1.2数字电子钟的意义
数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人、家庭、车站、码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
1.3数字电子钟的应用
数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
1.4系统组成模块
根据功能要求及系统分析,此系统由四大模块组成控制器模块、显示模块、时钟模块、调整模块组成,第一节将介绍控制模块,以STC89C52为模板,第二节将对时钟模块进行介绍,第三节介绍显示模块,在现在的应用中的几种常见的几种显示器件。
第四节将进行本设计的具体功能和原理。
2控制模块
2.1SCT89C52简介
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种带有AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图2.1STC89C51外观图2.2管脚排列
2.2管脚及功能
STC89C52有两种封装形式,其中一种采用DIP40封装形式(如图2.2),其具体管脚功能如其下。
①主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
②外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
STC89C52主要功能如表2.1所示。
表2.1STC89C52主要功能
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
2.3单片机的最小系统
2.3.1时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图2.3(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图2.3(b)所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
(a)内部方式时钟电路(b)外部方式时钟电路
图2.3时钟电路
2.3.2复位及复位电路
(1)复位操作
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
(2)复位信号及其产生
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为12MHz的晶振,则复位信号持续时间应超过2us才能完成复位操作。
产生复位信号的电路逻辑如图2.4所示:
图2.4复位信号的电路逻辑图
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图2.5(a)所示。
这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图2.5(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图2.5(c)所示:
(a)上电复位(b)按键电平复位(c)按键脉冲复位
图2.5复位电路
上述电路图中的电阻、电容参数适用于12MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。
2.4内存状态
机算计的存储器地址空间有两种结构形式:
普林斯顿结构和哈佛结构。
51单片机系列通常采用哈佛结构,其特点ROM和RAM被安排在两个不同的地址空间,RO和MRAM可以有相同的地址,但CPU访问ROM和RAM使用的是不同的访问指令。
从物理地址上看,STC89C52单片机共有4个存储空间,即片内程序存储器(简称片内ROM),片外程序存储器(简称片外ROM),片内数据存储器(简称片内RAM),片外数据存储器(简称片外RAM)。
由于片内和片外程序存储器是统一编址的,因此从逻辑的地址空间来看,STC89C52系列单片机只有三个存储器空间:
程序存储器、片内数据储存器和片外数据储存器。
为区别不同的存储单元,需要使用不同的编程指令。
其中MOV指令用于访问片内数据存储器,MPVC指令用于访问片外数据存储器。
片内ROM地址空间为000H-0FFFH(共4KB),片外ROM地址空间为0000H-FFFFH(共64KB)。
片内RAM地址空间为00H-7符号(共128B),特殊功能寄存器占用片内RAM的80H-FFH地址空间(128B),片外RAM地址空间为0000H-FFFFH(64KB)。
2.4应用领域
(1)家用电器领域
用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。
(2)办公自动化领域
单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、打印机、复印机、电话机和传真机等。
(3)工业自动化
在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。
(4)智能仪表与集成智能传感器
目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。
将单片机和传感器相结合,可以构成新一代的智能传感器。
它将传感器变换后的物理量作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。
(5)现代交通与航空航天领域
通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监视系统等。
这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。
3时钟模块
3.1时钟方法的论证与选择
案一:
利用SCT89C52的定时中断进行计时,但此方案的计时不精确,对于时间精度要求高的场合不太适用,所以此设计不选用该方案。
方案二:
利用DS1302时钟芯片,利用CPU对其进行读写,此方案计时精度高,相比应用范围广,所以选用此方案。
3.2DS1302时钟芯片
3.2.1DS1302简介
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
3.1DS1302外观
3.2.2引脚功能及结构
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc>2.0V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK为时钟输入端。
下图为DS1302的引脚功能图及外部电路的电路图:
3.2DS1302管脚排列
3.2.3DS1302的控制字节
DS1302的控制字如图2所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
3.2.4数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
3.2.5DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
4显示模块
4.1显示方法的论证与选择
方案一:
LED数码管,LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。
这些段分别由字母a,b,c,d,e,f,g,dp来表示。
此方法实现简单、显示清楚,而且价格便宜题目所需功能的要求,因此此方案为最佳方案。
方案二:
LCD1602,应用极为广泛的小型液晶,该模块操作简单、指令明确、控制方便,作为显示完全可以满足要求,但由于题目中要求简单,因此无法选用。
方案三:
LCD12864,12864是128*64点阵液晶模块的点阵数简称,适用于各类仪器,小型设备的显示领域,但结合题目而言,12864相比价格较贵,所以不必采用此方案。
方案四:
全彩LCD,全彩是目前的发展趋势,但由于我们初定是采用单片机作为主控芯片,与主流彩屏所需的ARM控制器相比有很大差距,因此不予考虑。
综合以上因素,考虑采用方案一。
4.2LED数码管的结构与工作原理
7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。
共阴极
共阳极
图4.1管脚排列图图4.2内部结构图
当发光二极管导通时,相应的一个点或一个笔画发光。
控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。
发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图4.2所示。
4.37段数码管驱动方法
发光二极管(LED是一种由磷化镓(GaP)等半导体材料制成的,能直接将电能转变成光能的发光显示器件。
当其内部有一一电流通过时,它就会发光。
7段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为5-10mA;正向电压随发光材料不同表现为1.8-2.5V不等。
7段数码管的显示方法可分为静态显示与动态显示,下面分别介绍。
(1)静太显示
所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。
这种显示方法为每一们都需要有一个8位输出口控制。
对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。
静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,所需I/O口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。
(2)动态显示
所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。
显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。
调整电流和时间参烽,可实现亮度较高较稳定的显示。
若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。
动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,这占用了CPU的大量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。
综合以上考虑,由于时间显示具有时、分、秒,故需要采用6个数码管,又考虑到CPU工作效率与电源效率,本毕业设计采用动态显示。
为共阳极显示。
5系统总体方案
5.1系统框架
该项目选用STC89C52单片机作为控制器,完成数据采集、显示控制功能。
采用DS1302的时、分、秒计时功能计时,利用与单片机之间相互通信进行数据交换,达到设定时间等功能。
用六位数码管动态显示,分别显示出时、分、秒。
利用四位按键对时间进行调整,达到电子钟的全部功能,其大体框图如图5.1所示:
图5.1系统框架图
5.2系统原理图及功能
系统整体原理图见附录1
5.2.1时钟模块原理图设计
图5.2时钟模块原理图
如图5.2所示:
将DS1302的1、4脚接5V的电源,是芯片不可缺少的条件2、3脚接一个32.768的石英晶振,晶振振荡进行计数来达到计数效果。
5脚与单片机的P1.6口相连,6脚与单片机的P1.5口相连,7脚与单片机的P1.4口相连。
这就是时钟芯片所需原理图。
在相应的软件程序驱动下,DS1302与单片机就能达到读写时、分、秒的功能,实现系统的灵魂。
5.2.2显示模块原理图设计
如图5.3:
将所有数码管的数据管脚分别连接到一起,然后接入单片机的P0口。
其公共段分别接上一个三极管,在此三极管做开关功能,所有三极管的基极分别连接到P2.0-P2.5口,当对应的三极管基极为高电平时,对应的数码管就将显示出来,这样就达到流水显示每位数码管。
前两位显示时范围为0——23,3、4位显示分0——59,后两位显示秒0——59。
图5.3显示模块原理图
5.2.3调整模块原理图设计
图5.4调整模块原理图
如图5.4中的1、2、3、4分别接到单片机的P1.0-P1.3口,当第一次按下S1按键时,系统将进入调整模式,第二次按下S1时,系统将回到计时状态,并以调整模式所调整的时间进行计时。
当系统进入调整模式时,利用S2按键选择调整时、分、秒。
当选择调整某位是,当按S4对应位将以1位单位增长,当按下S4时对应为将以1为单位减小。
附录1:
电路原理图
附录2:
程序代码
DS1302驱动程序
/*
*DS1302突发方式,连读,连写
#include
#include
typedefunsignedcharuchar;
typedefunsignedintuint;
sbitSCK=P1^4;//时钟
sbitSDA=P1^5;//数据
sbitRST=P1^6;//DS1302复位(片选)
#defineDS1302_W_ADDR0xBE
#defineDS1302_R_ADDR0xBF
voiddelay(uintn)
{
while(n--);
}
写一个字节
voidwrite_ds1302_byte(uchardat)
{
uchari;
for(i=0;i<8;i++)
{
SDA=dat&0x01;
SCK=1;
dat>>=1;
SCK=0;
}
}
读一个字节
ucharread_ds1302_byte(void)
{
uchari,dat=0;
for(i=0;i<8;i++)
{
dat>>=1;
if(SDA)
dat|=0x80;
SCK=1;
SCK=0;
}
returndat;
}
voidreset_ds1302(void)
{
RST=0;
SCK=0;
RST=1;
}
清除写保护
voidclear_ds1302_WP(void)
{
reset_ds1302();
RST=1;
write_ds1302_byte(0x8E);
write_ds1302_byte(0);
SDA=0;
RST=0;
}
设置写保护
voidset_ds1302_WP(void)
{
reset_ds1302();
RST=1;
write_ds1302_