基于89C51的数字电子钟设计毕业论文Word格式文档下载.docx
- 文档编号:20001549
- 上传时间:2023-01-14
- 格式:DOCX
- 页数:50
- 大小:542.89KB
基于89C51的数字电子钟设计毕业论文Word格式文档下载.docx
《基于89C51的数字电子钟设计毕业论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于89C51的数字电子钟设计毕业论文Word格式文档下载.docx(50页珍藏版)》请在冰豆网上搜索。
指导教师
主要内容
(参数)
利用89C51设计一种数字电子钟,实现以下功能:
1、能够准确显示年、月、日、秒、分、时及星期;
2、可随时进行时间调整,完成准确的校时;
3、达到整点时,蜂鸣器发出铃声报时;
任务要求
(进度)
第1-2天:
熟悉课程设计任务及要求,查阅技术资料,完成数字电子钟设计的任务书。
第3-7天:
查阅技术资料,确定设计方案,按照确定的方案设计硬件电路并编制程序。
要求画出电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第8天:
实验室调试。
第9-10天:
撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。
主要参考
资料
[1]张迎新.单片微型计算机原理、应用及接口技术.北京:
国防工业出版社,2007
[2]夏路易,石宗义.Protel99se电路原理图与电路板设计教程.北京:
北京希望电子出版社,2004
[3]阎石.数字电子技术基础.北京:
高等教育出版社,2009.
审查意见
系(教研室)主任签字:
年月日
1概述6
1.1研究背景6
1.2设计思想及基本功能7
2总体方案设计7
2.1方案选取7
2.1.1显示模块选择方案和论证7
2.1.2时钟芯片的选择方案和论证8
2.2总体方案设计9
2.3系统整体设计框图9
3硬件电路设计9
3.1电源电路设计9
3.2晶振电路10
3.3复位电路11
3.4时钟电路11
3.4.1DS1302芯片介绍11
3.4.2DS1302在本设计中的应用15
3.5键盘电路15
3.6显示电路16
3.7整点报时电路19
4系统软件设计20
4.1主程序软件设计20
4.2键盘子程序设计21
4.3日历时钟子程序设计22
4.4显示子程序设计24
4.5整点报时子程序的设计24
5系统调试25
5.1软件调试25
5.2硬件调试26
6总结27
参考资料:
29
附录一:
系统原理图30
附录二:
元件清单30
源程序代码31
1概述
1.1研究背景
在日新月异的21世纪里,家用电子产品得到了迅速发展。
许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU控制器或者是单片机。
单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。
并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。
用单片机来控制的小型家电产品具有便携实用,操作简单的特点。
时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,这就要求人们不断设计出新型时钟。
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;
二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部的可编程定时计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;
二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:
DS1302,DS12887,X1203等都可以满足高精度的要求。
本文设计的日历和时钟的显示广泛用于小型智能家用电子产品,如电子钟。
利用单片机进行控制,实时时钟芯片DS1302进行记时,外加整点报时电路和显示电路,可实现时间的调整和显示。
电子钟既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。
因而,此设计具有相当重要的现实意义和实用价值。
1.2设计思想及基本功能
本设计在实现一般的数字电子钟的要求前提下,结合单片机知识以及电路知识,本着使电路工作稳定,降低能耗,减少器件的使用,节约成本,现实使用价值高的原则而设计。
本设计具体可以完美实现以下几个功能:
(1)能准确实时显示年、月、日、时、分、秒、星期。
(2)可以对时间随时进行手动校正。
(3)采用24小时制。
(4)使用LED显示时间参数。
(5)上电后,电子钟显示“2013年12月31日23时59分59秒星期2”。
(6)当年、月、日、时、分、秒高位为0时做消隐处理,只显示单个数字以增强其可读性。
2总体方案设计
2.1方案选取
2.1.1显示模块选择方案和论证
方案一:
采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏。
方案二:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。
方案三:
LED数码管静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的IO口太多,造成了资源的浪费。
方案四:
LED数码管动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了IO口,降低了能耗。
本设计采用LED数码管动态扫描,由于LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少,所以本设计采用方案四。
2.1.2时钟芯片的选择方案和论证
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
所以不采用此方案。
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.
从时间计时的精度以及提高单片机工作效率角度考虑,本设计采用方案二。
2.2总体方案设计
综上各方案的论证与选取,本设计的最终方案为:
以单片机AT89C51为主控制器,时间数据通过时钟芯片DS1302来读取,并通过LED数码管显示出来,并用键盘来完成对当前时间的调整。
2.3系统整体设计框图
结合以上方案选取,系统的整体设计框图方案如下:
图2-3系统整体设计框图
3硬件电路设计
3.1电源电路设计
单片机正常工作电压为5V,因此设计的电源电路主要是提供单片机工作电压。
图3-1是为单片机提供电压的电源电路。
在这个电路中采用了三端集成稳压器LM7805,可以输出5V的直流电压以供给单片机。
图3-1电源电路图
3.2晶振电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
本设计采用内部时钟方式,因此只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元。
电路中的两个电容的作用有两个:
一是帮助振荡器起振(C1C2的值大,起振的速度慢;
反之,速度快。
);
二是对振荡器的频率起到微调的作用(C1C2的值大,频率略有减少,反之,频率略有提高)。
本设计选用12MHZ的晶振,C1、C2的值采用30pF。
晶振电路如下图所示。
图3-2单片机晶振电路图
3.3复位电路
89C51单片机系统在刚通电后,必须复位。
复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚RST上加大于2个机器周期的高电平,使单片机处于复位状态。
复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。
在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信号。
但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,以防在按键过程中引起的抖动而影响复位。
当单片机运行出错或进入死循环时,可使单片机复位后重新运行。
图3-3所示的RC复位电路可以实现上述基本功能。
图3-3复位电路图
3.4时钟电路
3.4.1DS1302芯片介绍
低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。
这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。
采用DS1302作为记录测控系统中的数据记录,其软硬件设计简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中。
在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。
记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义。
传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;
若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。
而在系统中采用DS1302则能很好地解决这个问题。
DS1302的性能特性如下:
·
实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;
用于高速数据暂存的31×
8位RAM;
最少引脚的串行IO;
2.5~5.5V电压工作范围;
2.5V时耗电小于300nA;
用于时钟或RAM数据读写的单字节或多字节(脉冲方式)数据传送方式;
简单的3线接口;
可选的慢速充电(至VCC1)的能力。
DS1302时钟芯片包括实时时钟日历和31字节的静态RAM。
它经过一个简单的串行接口与微处理器通信。
实时时钟日历提供秒、分、时、日、周、月和年等信息。
对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。
时钟的运行可以采用24h或带AM(上午)PM(下午)的12h格式。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302有主电源后备电源双电源引脚:
VCC1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;
VCC2在双电源系统中提供主电源,在这种运用方式中,VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。
DS1302由VCC1或VCC2中较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电;
当VCC2小于VCC1时,DS1302由VCC1供电。
DS1302数据操作原理:
DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。
无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。
在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。
时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。
图3-4-1DS1302管脚图
如果在传送过程中置RST为低电平,则会终止本次数据传送,并且IO引脚变为高阻态。
上电运行时,在VCC>
=2.5V之前,RST脚必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
DS1302的管脚图如图3-4-1所示,表3-4-2为各引脚的功能。
引脚号
引脚名称
功能
1
VCC2
主电源
2,3
X1,X2
振荡源,外接32768HZ晶振
4
GND
地线
5
RST
复位片选线
6
IO
串行数据输入输出端(双向)
7
SCLK
串行时钟输入端
8
VCC1
后备电源
表3-4-2DS1302引脚功能表
DS1302的控制字如图3-4-3所示。
控制字节的最高有效位(位7)必须是逻辑1;
如果它为逻辑0,则不能把数据写入到DS1302中。
位6如果为0,则表示存取日历时钟数据;
为1表示存取RAM数据。
位5~1(A4~A0)指示操作单元的地址。
最低有效位(位0)如为0,表示要进行写操作;
为1表示进行读操作。
控制字节总是从最低位开始输入输出。
图3-4-3控制字节的含义
为了提高对32个地址的寻址能力(地址命令位1~5=逻辑1),可以把时钟日历或RAM寄存器规定为多字节(burst)方式。
位6规定时钟或RAM,而位0规定读或写。
在时钟日历寄存器中的地址9~31或RAM寄存器中的地址31不能存储数据。
在多字节方式中,读或写从地址0的位0开始。
必须按数据传送的次序写最先的8个寄存器。
但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节。
不管是否写了全部31字节,所写的每一字节都将传送至RAM。
数据读写程序如图3-4-4所示。
图3-4-4数据读写程序
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-4-5,其中奇数为读操作,偶数为写操作。
寄存器
命令码
数据范围
寄存器中各位的内容
名称
地址
写
读
3
2
秒
00H
80H
81H
00~59
CH
秒数据
分
01H
82H
83H
分数据
时
02H
84H
85H
01~12
或00~23
12
24
10
AP
时数据
日
03H
86H
87H
01~28,29
30,31
日数据
月
04H
88H
89H
月数据
星期
05H
9AH
8BH
01~07
星期数据
年
06H
8CH
8DH
00~99
年数据
多字节读写
BEH
BFH
—
表3-4-5片内时钟数据寄存器
3.4.2DS1302在本设计中的应用
实时时钟芯片DS1302采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用32768Hz晶振。
要特别说明的是,备用电源BT1可以用电池或超级电容(10万μF以上)。
虽然DS1302在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。
如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替(100μF就可以保证1小时的正常走时),本设计采用3V的锂电子电池。
DS1302在第一次加电后,需进行初始化操作。
初始化后就可以按正常方法调整时间。
DS1302的时钟电路如图3-4-6所示。
图3-4-6DS1302时钟电路
3.5键盘电路
本设计用到四个独立式键盘分别接到P1口的低4位,为保证P1口低4位在按键无按下时为高电平,特在P1口的低四位外接上拉电阻。
键盘电路如图3-5所示。
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的IO端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
因此本设计采用独立式按键,直接用IO口线构成单个按键电路,每个按键占用一条IO口线,每个按键的工作状态不会产生互相影响。
图3-5键盘电路
各按键对应的功能如下:
(1)K1键为功能移位键,依据按下的次数对应选中调节年、月、日、时、分、秒或者星期,具体在键盘子程序中详细介绍。
(2)K2键为数字“+“键,按一下则对应的数字加1。
(3)K3键为数字“-”键,按一下则对应的数字减1。
(4)K4键为总返回键。
3.6显示电路
显示电路中用到的元器件介绍:
(1)数码管LED
LED显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。
控制相应的管导通,就能显示出对应字符。
各段LED显示器需要由驱动电路驱动。
在七段LED显示器中,通常将各段发光二极管的阴极或阳极连在一起作为公共端。
将各段发光二极管连在一起的叫共阳极显示器,用低电平驱动;
将阴极连在一起的叫共阴极显示器,用高电平驱动。
静态显示有并行输出和串行输出两种方式。
静态显示就是每一个显示器各笔画段都要独占具有一个锁存功能的输出口线,CPU把要显示的字形代码送到输出口上,就可以使显示器上显示所需的数字或符号,此后,即使CPU不在去访问它,因为各笔画段借口具有锁存功能,显示的内容也不会消失。
数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"
a、b、c、d、e、f、g、dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的IO线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的IO口,而且功耗更低。
(2)译码器74LS138
74HC138译码器是通过3条线来达到控制8条线的状态,就是通过3条控制线A0、A1、A2不同的高低电平组合来控制Y0~Y7的输出状态,其中4和5为使能地端,与8引脚共同接地,当接高电平时Y0到Y7输出高电平。
6号脚为使能端,为高电平时有效。
74HC138封装如图3-6-1所示。
当需要级联时只需要改变使能端信号引脚即可,连接方法简单。
图3-6-174LS138封装图
(3)8D锁存器74573
74573与74373功能相似,都是8D锁存器,可驱动数码管。
其功能如下:
三态总线驱动输出
置数全并行存取
缓冲控制输入
使能输入有改善抗扰度的滞后作用
原理:
74LS573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,IO通道,双向总线驱动器和工作寄存器。
74573的引脚图如下:
图3-6-274573引脚图
显示电路设计:
本设计采用16个共阴极数码管,其中DS1-DS4显示年,DS5-DS6显示月,DS7-DS8显示日,DS9-DS10显示时,DS11-DS12显示分,DS13-DS14显示秒,DS15显示星期,DS16用于整点报时时的闪烁位。
在显示部分硬件电路设计中用两个74573分别驱动前8个数码管和后8个数码管,采用总线的连接方式,并在74573与LED之间加上限流电阻,阻值为100欧姆。
两个74573的输入端均与P0口相连,即P0口为LED的段选端,用于向LED输入数型码,并接上拉电阻,阻值均为10K欧姆。
P3口的低3位分别接两个74LS138译码器的A、B、C端,用P3.3、P3.4分别接两个译码器的使能端E3。
两个译码器的16个输出端分别接16个数码管,用于LED的位选端。
图3-6-3显示电路
3.7整点报时电路
整点报时电路由PNP型三极管8550、电阻与蜂鸣器构成,当P1.7输出低电平时,蜂鸣器就会发声,其设计电路如下图所示。
图3-7整点报时电路
4系统软件设计
软件的设计是设计控制系统的应用程序。
其任务是在整体设计和硬件设计的基础上,确定程序结构,分配片内RAM资源,划分功能模块,然后进行主程序和各模块程序的设计,最后连接起来成为一个完整的应用程序,再与硬件相结合完成相应功能。
4.1主程序软件设计
流程图如图4-1所示,可以看到主程序采用模块化设计。
从主程序流程图看出,主程序的组成是通过分别调用各子程序组成总体系统功能,能很直观的看出主程序所要完成的功能,首先是初始化各模块,之后调用键盘完成时间的调整,调用日历子程序完成日历时钟的初始化和时间数据的读写,调用显示子程序显示数据,最后又转到键盘程序来回循环。
初始化部分主要有初始化定时器部分和和一些寄存器、标志位、初始化时间等。
(1)对定时器T0初始化时,首先置初值,CPU开中断,定时器T0开中断,并且开始计数,而对定时器T1初始化时,首先置初值,定时器T1关中断,并且停止计数,只有收到命令时才能产生中断。
(2)寄存器的初始化主要是初始化执行程序时用到的部分RAM空间,防止程序执行时带来混乱。
(3)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 C51 数字 电子钟 设计 毕业论文