基于51单片机的数字电子钟设计.docx
- 文档编号:8289566
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:45
- 大小:520.85KB
基于51单片机的数字电子钟设计.docx
《基于51单片机的数字电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字电子钟设计.docx(45页珍藏版)》请在冰豆网上搜索。
基于51单片机的数字电子钟设计
基于51单片机的数字电子钟设计
本科毕业论文(设计)
题目基于51单片机的数字电子钟设计
院(系)电子工程与电气自动化学院
专业电气工程及其自动化
学生姓名于楠
学号
指导教师王静洪作奎职称助教讲师
论文字数9682
完成日期:
2014年5月24日
巢湖学院本科毕业论文(设计)诚信承诺书
本人郑重声明:
所呈交的本科毕业论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
本人签名:
日期:
巢湖学院本科毕业论文(设计)使用授权说明
本人完全了解巢湖学院有关收集、保留和使用毕业论文(设计)的规定,即:
本科生在校期间进行毕业论文(设计)工作的知识产权单位属巢湖学院。
学校根据需要,有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许毕业论文(设计)被查阅和借阅;学校可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编毕业,并且本人电子文档和纸质论文的内容相一致。
保密的毕业论文(设计)在解密后遵守此规定。
本人签名:
日期:
导师签名:
日期:
基于51单片机的数字电子钟设计
摘要
随着时代的发展,生活节奏的加快,人们的时间观念愈来愈强,同时伴随着自动化、智能化及微电子技术的发展,人们用于计时的工具也在不断的更新,单片机等技术的出现使得数字电子钟有了新的发展方向。
基于此本设计以单片机STC89C52为控制核心,采用美国DALLAS公司生产的实时时钟芯片DS12C887和液晶芯片LCD1602,该设计具有电路设计简单,结构合理,能够精确显示时间、星期、日期等优点,并且能够实时更新显示。
本设计同时具有闹铃设置功能以及到时报警功能,按键操作简单方便。
更重要的是时钟芯片DS12C887具有误差小,内部自带锂电池使得断电时时间不停,再次上电后时间仍然能够准确显示在液晶上的特点。
关键词:
单片机;电子钟;DS12C887;LCD1602
DesignofDigitalElectronicClockBasedon51MCU
Abstract
Withthedevelopmentofthetimesandtheacceleratedpaceoflife,people'ssenseoftimehasbecomestrongerandstronger.Andwiththedevelopmentofautomated,intelligentandmicroelectronictechnology,thetoolfortiminghasbeenconstantlyupdated;theemergenceofsingle-chiptechnologymakesdigitalelectronicclockanewdirection.BasedonthisdesignmicrocontrollerSTC89C52asthecontrolcore,andproducedbytheUnitedStatesDALLASDS12C887real-timeclockchipandLCDchipLCD1602,thisdesignhasasimplecircuitdesign,reasonablestructure,abletoaccuratelydisplaythetime,day,date,etc.,andcanreal-timelyupdatethedisplay.Thisdesignalsohasanalarmfunctionaswellastosetalarmfunction,andsimplebuttonoperation.Moreimportantly,theclockchipDS12C887hasasmallerror,makingtheinternallithiumbatterypowerwhenthetimecomesstop,sothatonceagaintimeafterpowerisstillabletoaccuratelydisplaythecharacteristicsoftheliquidcrystal.
Keywords:
MCU,ElectronicClock,DS12C887,LCD1602
1.绪论
1.1电子时钟的选题意义
随着数字集成电路的发展,数字化已深入到各行各业。
数字电子钟是以数字电路实现对年、月、日、星期、时、分、秒数字显示的电子钟,广泛应用于私人及公共场所。
比如:
汽车站、火车站、办公室等场合,给人们的生活、学习、工作及娱乐带来了极大的方面,已成为人们日常生活中不可或缺的物品。
如今的电子钟精度已远远超过老式钟表,并且其报时功能也得到加强。
例如定时报警系统、定时程序启动控制、定时动力通断设备等等这些都是以数字化为基础的。
而且在许多监控系统及电子设备中,往往会进行一些与时间相关的控制与操作,同时需要记录下实时的时间信息并保存下来。
例如,在某些数据采集时,对于一些重要的信息不仅要记录下其内容,还要记录下发生该事件时的准确时间;又比如,在建筑视频安防监控系统中,除了要显示实时画面外,还要准确记录下实时的时间信息,其中包括年、月、日、时、分、秒等。
传统的计时时钟已不能满足上述要求,为了达到上述目的,就需要实时时钟的参与配合。
基于STC89C52单片机为核心的电子钟就可以满足上述要求,为了避免偶然的掉电或晶振的误差造成时间的混乱以及完全用程序设计从而占用大量的系统资源而影响系统其他功能的运行,外加一块独立运行的实时时钟芯片DS12C887,同时配合相应的程序就可以实现上述目的。
因此,研究数字电子钟以及扩大其作用,有着非常现实重要的意义。
1.2电子时钟的国内外研究现状
从古代利用流体力学计时的刻漏和后来出现的沙漏以及采用机械传动结构计时的浑天仪,水运仪还有应用天文原理计时的日晷到今天的数字电子钟,经历了漫长的岁月。
机械表机芯复杂,走时误差较大,石英表机芯采用集成电路,机械结构比机械表简单许多也精准很多。
但是随着生活节奏的加快,人们对时间的精准度要求越来越高。
在目前的国内外市场中,数字电子钟的产品随处可见,但是他们大多存在一个致命缺点分两种:
一种是价格低廉的精度低,体积大;一种是体积小精度高却价格昂贵。
基于单片机的电子时钟系统的设计意在解决上述缺点折合为一个适中的产品,实现高精度、体积小、价格适中、易操作的产品,使得数字电子钟的发展日益满足使用者的需求。
数字电子钟的设计方法有很多种,可以利用单片机编程配以简单外设来实现电子钟,也可以采用中小规模的集成电路设计电子钟,还可以利用专门的时钟芯片配以显示电路及外围电路来实现电子钟。
其中以单片机为核心控制器,利用专门的实时时钟芯片计时,将时间数据经单片机输出,由显示器显示出来,利用键盘定时、校时,显示电路可利用液晶显示技术或者数码管显示技术。
在工业控制、智能控制及日常生活中,经常会碰到对时间进行监控的需求。
这就为数字电子钟提供了市场需求,随着科学技术的发展,也为数字电子钟的研发提供了前景。
本设计就提供了基于51单片机的数字电子钟的设计方法与实现过程。
2.系统的硬件电路设计
2.1单片机最小系统模块
2.1.1STC89C52芯片介绍
STC89C52是STC公司生产的一种高性能、低功耗的CMOS8位微控制器,具有8K系统可编程Flash存储器,指令代码完全兼容传统的MCS-51单片机,俗称单片机。
主要特性如下表2-1所示:
表2-1STC89C52芯片特性
工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
增加型8051单片机,6时钟/机器周期,12时钟/机器周期可以任意选择;
工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz;具有看门狗功能,内带2K字节的E2PRAM存储空间
通用I/O口(32个),复位后P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为I/O口使用时,需要加上拉电阻,作为总线扩展用时,不需要加上拉电阻;3个16位定时器/计数器;PDIP封装;用户应用程序空间为8K字节;片上集成512字节RAM
ISP(系统可编程)/IAP(应用可编程),不需要专用的编程器、仿真器,可通过串口(RXD/P3.0,TXD/P3.1)经由MAX232电平转换电路下载用户程序到单片机
外部中断有4路,下降沿触发或低电平触发电路;
-40~—+85℃(工业级)/0~75℃(商业级)温度下工作
其引脚图如图2-1所示:
图2-1STC89C52RC芯片引脚
引脚大致介绍:
1.电源及时钟引脚(4个)
●VCC:
电源接入引脚。
●VSS:
接地引脚。
●XTAL1:
晶体振荡器接入的一个引脚。
●XTAL2:
晶体振荡器接入的另一个引脚。
2.控制线引脚(4个)
●RST/VPD:
复位信号输入引脚/备用电源输入引脚。
●
ALE/PROG:
地址锁存允许信号输出引脚/编程脉冲输入引脚。
●
EA/VPP:
内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚。
●
PSEN:
外部程序存储器选通信号输出引脚。
3.并行I/O引脚(32个,分成4个8位口)
●P0.0~P0.7:
一般I/O口引脚或数据/低位地址总线复用引脚。
●P1.0~P1.7:
一般I/O口引脚。
●P2.0~P2.7:
一般I/O口引脚或高位地址总线引脚。
●P3.0~P3.7:
一般I/O口引脚或第二功能引脚。
2.1.2复位电路
当单片机RST引脚加高电平复位信号(保持2个以上机器周期)时,单片机内部就执行复位操作。
复位信号变低电平时,单片机开始执行程序。
实际应用中,复位操作有两种形式:
一种是上电复位,另一种是上电与按键均有效的复位。
其原理是上电的瞬间复位引脚(RST)获得高电平,在电容C1充放电的同时,复位引脚(RST)的高电平会慢慢下降。
复位引脚(RST)的高电平只要能维持足够的时间(24个晶荡周期),单片机就可以实现复位操作。
而按键与上电均有效的复位电路可以在单片机执行任务期间,通过按键实现复位操作。
相比较选择按键与上电均有效的复位电路会更有优势[1]。
电路原理图如图2-2所示:
图2-2复位电路
2.1.3晶振电路
晶振电路是单片机最小系统的重要环节之一。
晶振取11.0592MHz(这样可以准确的得到9600波特率和19200波特率),电容取22pF(一般采用15~33pF)。
电路如图2-3所示:
图2-3晶振电路
2.2时钟电路模块
2.2.1DS12C887实时时钟芯片概述
DS12C887是美国DALLAS公司设计生产的实时时钟芯片。
DS12C887时钟芯片能够自动产生世纪、年、月、日、星期、时、分、秒等时间信息,其内部自带锂电池和晶振,在外部掉电时,其内部时间信息仍能保持10年之久。
DS12C887时钟芯片中带有128BRAM,其中11BRAM用来存储时间信息;4BRAM用来存储DS12C887的控制信息,成为控制寄存器;13B通用RAM供用户使用。
对于一天内有12和24小时制两种模式的时间记录,而在12小时制的模式中,通过AM和PM来区分上下午;芯片内部时间的存储模式有两种:
二进制数表示和BCD码表示。
此外,用户还可以通过对DS12C887芯片进行编程来实现多种方波的输出,并且可以对其内部的三路中断通过软件进行屏蔽。
DS12C887可以通过一个多路复用的支持Intel和Motorola模式的单字节接口访问。
1.DS12C887时钟芯片引脚功能
DS12C887芯片引脚和实物图如图2-4、2-5所示。
图2-4DS12C887芯片引脚
图2-5时钟芯片实物图
各引脚功能说明如下:
1(MOT):
总线模式选择端。
有两种总线工作方式,即Motorola和Intel模式。
当接GND或者悬空时,选用Intel模式;接VCC时,选用Motorola模式。
2,3,16,20,21,22(NC):
悬空端。
4~11(AD0~AD7):
复用地址数据总线。
总线周期的前半部分AD0~AD7上的是地址信息,总线周期的后半部分AD0~AD7上的是数据信息。
12(GND),24(VCC):
芯片电源接入端。
其中VCC接+5V输入,GND接地。
当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读/写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读/写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入低于+3V时,芯片会自动将电源切换到内部自带的锂电池上,以保证内部电路正常运行。
13(CS):
芯片选择端,低电平有效。
14(AS):
地址选通输入端。
在进行读/写操作时,AS的上升沿将AD0~AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0~AD7上的地址信息,不论CS是否有效,DS12C887都将执行该操作。
15(R/W):
读/写输入端。
该引脚有两种工作方式,当MOT接VCC时,R/W)工作在Motorola模式。
此时该引脚的作用是区分读操作还是写操作,高电平时为读操作,低电平时为写操作;当MOT接GND时,该引脚工作在Intel模式,此时该引脚作为写允许输入,此信号的上升沿锁存数据。
17(DS):
数据选择或者读输入脚。
有两种工作方式,当MOT接VCC时,选用Motorola模式。
当MOT接GND或悬空时,选用Intel工作模式,此时该引脚为读允许输入引脚。
18(RESET):
芯片复位引脚。
低电平有效,通常将该引脚接VCC即可。
19(IQR):
中断请求输出。
低电平有效,用作处理器的中断申请输入。
只要引起中断的状态、中断使能位置位,IRQ将持续保持低电平,通过处理器程序读取C寄存器来清除IRQ引脚输出,同时复位引脚也会清除未处理的中断。
在中断未发生时,IRQ为高阻态,这时可以将多个中断器件连接到一条IRQ总线上。
IRQ引脚为漏极开路输出,需要外接一个上拉电阻与VCC相连。
23(SQW):
方波输出引脚。
当供电电压VCC大于4.25V时,SQW引脚可输出方波,此时,用户可以通过对控制寄存器编程来得到13钟方波信号的输出。
2.DS12C887时钟芯片内部功能
DS12C887的存储器分配如图2-6所示,其中00H-09H为闹钟信息与时间信息寄存器,0AH-0DH为4个控制寄存器。
图2-6存储器分配图
(1)状态控制寄存器A(除D7位外可读写)
表2-2寄存器A
地址
D7
D6
D5
D4
D3
D2
D1
D0
0AH
UIP
DV2
DV1
DV0
RS3
RS2
RS1
RS0
UIP:
更新位。
当UIP=1时,即将开始更新;当UIP=0时,至少在244us内芯片不会更新。
UIP位为只读位且不受复位信号的影响。
通过寄存器B中SET位设置为1来禁止更新,并且将UIP位清零。
DV2,DV1,DV0:
晶体振荡器和复位分频器的开与关。
当DV0=0,DV1=1,DV2=0时,晶体振荡器开启且保持时钟运行。
当DV0=1,DV1=1,DV2=X时,开启晶体振荡器,分频保持复位状态。
这三位的其他组合方式均使振荡器关闭。
因此,首次使用时必须设置这三位的状态。
RS3,RS2,RS1,RS0:
速率选择位。
这4个速率选择位的不同取值可产生从122.07us到500ms之间不同周期的方波输出及周期中断。
(2)状态控制寄存器B(可读写)
表2-3寄存器B
地址
D7
D6
D5
D4
D3
D2
D1
D0
0BH
SET
PIE
AIE
UIE
SQWE
DM
12/24
DSE
SET=0,芯片更新正常进行;SET=1,芯片更新被禁止。
PIE:
中断周期允许位。
PIE=1,允许;PIE=0,禁止。
AIE:
闹铃中断允许位。
AIE=1,允许;AIE=0,禁止。
UIE:
更新结束中断允许位。
UIE=1,允许;UIE=0,禁止。
SQWE=1,SQW输出设定频率的方波;SQWE=0,SQW引脚为低电平。
DM:
寄存器存储数据格式选择位。
DM=0,BCD码;DM=1,二进制数格式,此位不受复位信号影响。
12/24:
为1,24小时制;为0,12小时制。
DSE:
夏令时允许标志位。
在四月的第一个周日的1︰59︰59AM,时钟调到3︰00︰00AM;在十月的最后一个周日的1︰59︰59AM,时钟调到1︰00︰00AM。
(3)状态控制寄存器C(只读)
表2-4寄存器C
地址
D7
D6
D5
D4
D3
D2
D1
D0
0CH
IRQF
PF
AF
UF
0
0
0
0
IRQF:
中断请求标志。
当PF=PIE=1,AF=AIE=1,UF=UIE=1,IRQF=PF×PIE+AF×AIE+UF×UIE有一种或几种发生时,IRQF置高IRQ脚输出为低电平;为低时,无中断请求发生。
所有标志位在读寄存器C或复位后清0。
其中PF:
周期中断标志;AF:
闹钟中断标志;UF:
更新中断标志。
(4)状态控制寄存器C(只读)
表2-5寄存器C
地址
D7
D6
D5
D4
D3
D2
D1
D0
0DH
VRT
0
0
0
0
0
0
0
VRT:
VRT=0,表示芯片内的锂电池能量耗尽,此时RAM中的数据的正确性就无法保证了;VRT=1,信息有效。
3.DS12C887时序图分析
鉴于本设计MOT引脚接GND,总线选用Intel模式,故此系统只分析Intel模式。
Intel模式总线写时序图如图2-7所示,读时序图如图2-8所示:
图2-7Intel模式总线写时序图
图2-8Intel模式总线读时序图
2.2.2硬件电路设计
根据芯片的特性和引脚功能来设计外围电路。
DS12C887时钟芯片电路如图2-9所示:
图2-9时钟电路
引脚1这里接地(或悬空)来选取Intel模式,4~11引脚接单片机的P1口,18引脚接VCC,19引脚外接一个上拉电阻然后接到单片机P3.3口,其他的引脚各自接到相应端口。
2.3蜂鸣器声响模块
此模块在闹钟设定时间到时发出声响。
本模块通过PNP三极管为蜂鸣器放大电流,基极通过33欧的电阻与单片机16(P3.6)引脚相连。
其电路图如图2-10所示:
图2-10蜂鸣器声响电路
2.4按键模块
按键模块的作用是调节时间及设置闹钟时间。
电路图如图2-11所示:
图2-11按键电路
2.5LCD1602显示模块
2.5.11602液晶概述
本设计使用的1602液晶为5V驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置128个字符的ASCII字符集库。
1602液晶的引脚及实物图如图2-12、2-13所示:
图2-12LCD1602引脚
图2-13LCD1602实物图
1.引脚说明
1602液晶引脚说明如表2-6所示:
表2-6液晶引脚说明
编号
符号
引脚功能说明
编号
符号
引脚功能说明
1
VSS
电源地
9
D2
数据接口3
2
VCC
电源正极
10
D3
数据接口4
3
VO
液晶显示对比度调节端
11
D4
数据接口5
4
RS
数据/命令选择端
12
D5
数据接口6
5
R/W
读写选择端
13
D6
数据接口7
6
E
使能端
14
D7
数据接口8
7
D0
数据接口1
15
BLA
背光电源正极
8
D1
数据接口2
16
BLK
背光电源负极
2.基本操作时序及时序图
基本操作时序:
读状态:
输入,RS=L,R/W=H,E=H;输出,D0~D7=状态字。
读数据:
输入,RS=H,R/W=H,E=H;输出,无。
写指令:
输入,RS=L,R/W=L,D0~D7=指令码,E=高脉冲;输出,D0~D7=数据。
写数据:
输入,RS=H,R/W=L,D0~D7=数据,E=高脉冲;输出,无。
根据分析时序图(图2-14)可知操作1602液晶的流程如下:
(1)通过RS来确定是写数据还是写命令。
写命令包括使液晶的光标显示还是不显示、光标闪烁或者不闪烁、需不需要移屏,在液晶何处位置显示等等;写数据是指显示什么内容。
(2)读/写控制端设置为写模式,即低电平。
(3)要将数据或命令送到数据线上。
(4)给使能端(E)一个高脉冲将数据送入液晶控制器,完成写操作。
时序图如下:
如图2-141602液晶写操作时序图
3.状态字说明
表2-7状态字说明
STA7
D7
STA6
D6
STA5
D5
STA4
D4
STA3
D3
STA2
D2
STA1
D1
STA0
D0
STA0~STA6
当前地址指针的数值
STA7
读/写操作使能
1—禁止;0—允许
理论上每次对控制器进行读/写操作之前,都必须进行读/写检测,确保STA7为0。
实际上,由于液晶控制器的反应速度快于单片机的操作速度,因此可以不进行读/写检测,或许可以只进行简短延时也行。
4.RAM地址映射图
控制器的内部带有80B的RAM缓冲区,对应关系如图2-15所示:
图2-151602内部RAM地址映射图
当向图中的00~0F、40~4F地址中的任一处写入显示数据时,液晶都会立即显示出来,当写入到10~27或50~67地址时,必须要通过移屏指令将它们移入可显示区域方可正常显示。
5.数据指针设置
表2-8数据指针设置
指令码
功能
80H+地址码(0~27H,40~67H)
设置数据地址指针
控制器内部设有一个数据地址指针,我们可以通过它们访问内部的全部80B的RAM。
6.其他设置
表2-9其他设置
指令码
功能
01H
显示清屏:
1.数据指针清0
2.所有显示清0
02H
显示回车:
数据指针清0
7.初始化设置
(1)显示模式设置
表2-10显示模式设置
指令码
功能
0
0
1
1
1
0
0
0
设置16×2显示,5×7点阵,8位数据口
(2)显示开/关及光标设置
表2-11显示开/关及光标设置
指令码
功能
0
0
0
0
1
D
C
B
D=1,开显示;D=0,关显示
C=1,光标显示;C=0,光标不显示
B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 数字 电子钟 设计