基于单片机的数字钟电子钟设计.docx
- 文档编号:4131401
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:25
- 大小:513.95KB
基于单片机的数字钟电子钟设计.docx
《基于单片机的数字钟电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字钟电子钟设计.docx(25页珍藏版)》请在冰豆网上搜索。
基于单片机的数字钟电子钟设计
摘要:
数字钟广泛应用于生活生产中,对其深入了解很有必要,在此用单片机设计了一个简单的数字电子钟。
本设计为基于AT89S52单片机,辅以必要的外围电路,用自制单片机实验板设计了一个简单的数字电子时钟。
在硬件方面,除了单片机外,用数码管来进行显示,LED采用动态扫描显示。
通过LED能够比较准确显示时、分、秒,三个简单的按键实现对时间的调整。
软件方面采用A51汇编语言编程。
整个电子钟系统能完成时间的显示,调时,调分,调秒,复位功能。
本次设计的电子钟带采用独立式键盘,用共阳数码管显示,因为LED亮度较高,显示醒目所以此电子钟在部分场所推广很大。
关键词数字电子钟;AT89S52;汇编语言
ABSTRACT:
Widelyusedindigitalelectronicclockproductionlife,itsunderstandingisnecessary,inthissinglechipdesignwithasimpledigitalelectronicclock.
AT89S52microcontrollerbasedonthedesign,combinedwiththenecessaryperipheralcircuits,asimpledigitalelectronicclock.Onthehardwareside,inadditiontoSCM,theuseofdigitalcontrolfordisplay,LEDdisplayusingdynamicscanning.CanaccuratelythroughtheLEDdisplayhours,minutes,seconds,threesimplebuttonstoadjustthetimetoachieve.SoftwareexchangewithA51。
Thecompletiontimeclocksystemcandisplay,transfer,thetransferpoints,transferseconds,reset.Thedesignoftheelectronicclockwiththeuseofstand-alonekeyboard,digitaldisplaywithatotalpositive,becausehigherbrightnessLED,sothiselectronicclockdisplayvisibleinsomeplacesagreatpromotion.
Keywordsdigitalelectronicclock;AT89S52;assemblylanguage
一概述
1.1数字钟简介
1350年6月6日意大利人乔万尼·德·党笛制造了世界上第一台结构简单的机械打点多功能数字钟,由于数字钟报价便宜,功能齐全,因此很快受到众多用户的喜爱。
1657年,荷兰人惠更斯率先把重力摆引入机械钟,进而才创立了摆钟。
到了20世纪以后,随着电子工业的快速发展,电池驱动钟、交流电钟、电机械表、指针式石英电子钟表以及数字显示式石英钟表相继问世,数字钟报价非常合理,再加上产品的不断改良,多功能数字钟的日差已经小于0.5秒,因此受到广大用户的青睐。
尤其是原子钟的出现,它是使用原子的振动来控制计时的,是目前世界上最精准的时钟,即使经过将近100万年,其偏差也不可能超过1秒钟。
多功能数字钟最早是在欧洲中世纪的教堂,属于完全机械式结构,动力使用重锤,打点钟声完全使用人工进行撞击铸钟,所以当时一个多功能数字钟工程在建筑与机械结构方面是非常复杂的,进而影响了数字钟报价。
进入电子时代以后,电子多功能数字钟也相继问世。
我国电子多功能数字钟行业从80年代开始渐渐成长壮大,目前不仅数字钟报价合理,在技术和应用水平上也已经达到世界同类水平。
电子数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。
数字钟已成为人们日常生活中不可或缺的生活必须品,广泛地应用于人家庭以及车站、码头、剧场、办公室等家庭和公共场所,给人们的生活,学习,工作,娱乐带来极大的方便。
数字钟一般由振荡器,译码器,单片机,显示器等部分组成,当前市场上已有现成数字钟集成芯片出售,价格较便宜。
由于数字集成电路的发展,采用了先进稳定的石英震荡技术,使数字钟具有走时准确,性能稳定,携带方便等特点,是目前人们生活和工作不可或缺的报时用品。
1.2数字钟的发展前景
现在是一个知识爆炸的新时代。
新产品、新技术层出不穷,电子技术的发展更是日新月异。
可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
在这快速发展的年代,时间对于人们来说越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
一次我们需要一个定时系统来提醒这些忙碌的人。
数字化的钟表给人们带来了极大的方便。
近年来,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能上还是样式上都发生改变,有电子闹钟,数字闹钟等等。
单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是去很少知道它的内部结构以及工作原理。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行定时,校时功能。
输出设备可以用液晶显示技术和数码管显示技术。
单片机芯片作为控制系统的核心部件,它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、系统的输出量,实现自动控制。
在本次设计中采用单片机技术来实现数字钟的功能。
方案的设计可以从以下几个方面来确定。
微处理器的选择,AT89S51、52是2003年ATMEL推出的新型品种,除了完全兼容8051外,还多了ISP编程和看门狗功能。
但是AT89S52的存储器容量比AT89S51的大。
在本次设计中采用AT89S52单片机;显示电路的设计,随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用。
由于液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。
在这里采用液晶显示;校时和定时电路的设计;实时控制电路是时钟电路的一个重要组成部分,采用的是一个时钟芯片,单片机从中读取数据送到显示器上显示,从而实现数字钟的功能;还有一些其他控制电路如复位电路、时钟电路等。
1.351单片机
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。
51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51系列单片机的发展又进入了一个新的阶段。
在今后很长一段时间内51系列单片机仍将占据嵌入式系统产品的中低端市场。
1.4汇编语言
汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。
汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。
但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。
汇编语言可以与高级语言配合使用,应用十分广泛。
二课题设计功能要求及总体方案
2.1功能要求
设计的数字电子钟上电或按键复位后能无显示,进入时钟准备状态;第一次按数字电子钟启动/调整键,数字电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按数字电子钟启动/调整键,则数字电子钟进入时钟调整状态,并且时间停止不动,此时可分别利用各调整键调整时、分、秒,调整结束后可按启动/调整键再次进入时钟运行状态。
2.2设计总体方案介绍
本课程设计采用AT89S52单片机实验板设计一个数字电子钟,通过8位LED数码管显示时、分、秒,并设有5个按键。
其中一个用于单片机的复位;一个为启动/调整键;另外三个为时、分、秒调整键。
电路分别为复位电路、键盘电路、晶振电路、驱动电路和控制电路。
复位电路采用按键复位方式。
键盘电路采用独立式键盘。
时钟电路用12MHz的晶振产生时钟信号。
显示电路采用74ls245三极管驱动8位LED显示。
控制电路
采用8位AT89S52单片机进行控制。
其设计框图如图1.1所示:
1.计时方案
设定定时器1负责计时初值TH0=ODCH,TL0=00H.设定中断时间为
根据公式:
T=(216-X)*1us………………………………2.2
代入初值得T为50ms循环20次。
当计满20次时说明一秒时间到。
此时秒位加1,判断秒位是否达60秒不满60秒则返回。
满60秒则秒位清0并分为加1,判断分位是否满60分,不满60分则返回。
满60则分位清0,并时位加1,判断时位是否为24小时,不满则返回。
满24小时则时位清0。
2.键盘/显示方案
AT89S52的P2口外接由8个LED数码管构成的显示器,用P0口作LED的段码输入口,P2口作8个LED数码管的位控输出线,在内部RAM钟设置显示缓冲区共8个单元,如表2.1所示。
P1口外接4个按键。
表2.1单元格地址及显示
LED8
LED7
LED6
LED5
LED4
LED3
LED2
LED1
37H
36H
35H
34H
33H
32H
31H
30H
时十位
时十位
间隔
分十位
分十位
间隔
秒十位
秒十位
三数字电子钟硬件系统的设计
3.1芯片介绍
1.AT89S52:
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非 易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
图3.1
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
2.74LS245
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)
DIR=“1”,信号由A向B传输;(发送)当CE为高电平时,A、B均为高阻态。
由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。
P0口与74LS245输入端相连,E端接地,保证数据线畅通。
8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其它时间处于输出(P0.1→D1)。
图3.2
3.2硬件系统各模块功能简要介绍
1)复位电路
复位是单片机的硬件初始化操作。
经复位操作后,单片机系统才能开始正常工作。
单片机上有复位引脚RST,用于外接复位电路,这里复位电路采用按键电平复位。
2)时钟电路
单片机工作所需的同步时钟信号由以下两种方法获得:
由单片机片内时钟电路结合外部晶振、电容产生和直接从单片机外部引入脉冲信号。
这里用第一种方法产生时钟信号。
电路用12MHz的石英晶体和二个微调电容(为33pF左右)连接起来接到单片机的XTAL1和XTAL2引脚上。
3)键盘电路
由于按键较少,所以此处使用独立式键盘,键盘接到单片机的P1.0~P1.3上当键按下时,在其相应的口线上产生低电平信号,键松开时仍为高电平信号。
4)显示电路
本显示电路采用74LS245驱动8位数码管段和位控端。
显示电路用单片机的P0口线作段控口,线上串入100Ω的限流电阻,用P2口线作位控口。
3.3数字钟原理图
图3.1设计原理图
四数字电子钟软件系统的设计
4.1数字电子钟使用单片机资源情况
在电子钟的编程过程中,单片机资源使用情况如下:
寄存器:
通用寄存器0组的R0~R7;
IO口线:
P0口(作数码管的段控口),P2口(作数码管的位控口)
P1口(作键盘接口);
堆栈地址:
60H;
显示缓冲单元:
30H~37H;
键扫子程序出口:
20H
秒,分,时缓存单元:
为41H,43H,45H
定时器150ms计数值存放单元:
40H
4.2数字电子钟软件系统各模块功能简要介绍
1)显示模块
显示子程序主要是对段(位)控码的操作。
要注意的是寄存器的使用,指针的初始化,延时控制,以及LED显示的判断。
显示程序中显示的是缓冲区中的内容再调数据表格中显示代码,程序中只要将要显示的内容在数据表中的位置送往显示缓冲区即可,就可以显示你所需要显示的内容。
2)中断服务程序模块
中断服务程序主要由4次判断构成,当程序开始,寄存器装入初值后,顺序开始4次判断,否则返回继续判断,是则相应单元请0,且下一位判断位置加一。
最后进行出栈操作,并结束程序。
3)键盘模块
键盘扫描子程序同样包括3次判断,第一次但程序开始时,判断是否有键闭合,是则程序继续,否则直接结束;第二次在调用显示子程序时,判断是否有键闭合,是则程序继续,否则直接结束;第三次紧跟第二次判断之后,当有键按下,判断其是否释放,是则程序继续,否则返回继续判断是否释放。
4.3数字钟软件系统程序流程框图
4.3.1主程序流程框图
主程序流程框图如图4.1所示:
图4.1主程序流程图
4.3.2键扫描子程序流程框图
键扫描子程序流程图如图4.2所示:
图4.2键扫描子程序流程图
4.3.3显示子程序流程框图
显示子程序流程框图如图4.3所示:
图4.3显示子程序流程图
4.3.4加1子程序流程图
加1子程序流程框图如图4.4所示:
图4.4加1子程序流程图
4.3.5中断服务子程序流程图
中断服务子程序流程框图如图4.5所示:
图4.5中断服务子程序流程图
五仿真与误差分析
5.1数字电子钟的设计结论及使用说明
本课程设计的目的是设计一个电子钟,通过原理图的绘制和仿真,最终做出的实物是成功的,能够达到预期的目的,以下本次所作电子钟的具体的使用说明:
电子钟上电后,什么都不显示,按下启动/调整键,电子钟从0时0分0秒开始自动运行,再次按下启动/调整键,电子钟运行停止,处于调整状态,调整位闪烁。
按下调加键,加1,以实现时、分、秒的调整,再次按下启动/调整键,电子钟自动运行起来,处于运行状态,调整结束。
5.2设计课题的仿真结果
设计课题的仿真结果如图5.1所示
图5.1仿真结果
5.3设计课题的误差分析
本课程设计存在一定误差,引起误差原因主要是程序中定时后很多指令引起的时间积累误差。
但误差在允许范围内,所以,时间基本准确。
减小误差的办法:
经过运行监测发现电子钟行走24小时快大约五分钟所以可通过软件方法自动24小时校正5分钟。
心得
本次做课程设计,是我进这个大学来的第一次做的课程设计。
以前在专科的时候学了单片机这门课程但是从来都没有实践过。
这次是我第一次做真正的单片机课程设计,从实物到软件编程都是自己亲自动手实践的。
俗话说的好:
纸上学来终觉浅,须知此事要躬行。
我们的这门课程本来就是繁琐的,只有在真正的实践之中才能知道我们到底学了多少,以及理论与实践中的区别。
制版本次采用的是纯手工制作,从绘制原理图开始。
的确,这次的设计是完全从头开始,绘制原理图、PCB、转印、腐蚀、焊接、调试,以及最后的实践程序编写。
当然,难度最大的还是程序的编写,本次的电子钟设计,我个人认为难度最大的就是键盘与显示,由于本次的电路板是全手工制作,工艺比较粗糙,焊接中也有问题,导致最终程序编写也要相应改变。
在课程设计的第一次调试过程中,出现了许多我无法解释的问题,使我有些灰心,但是在认真重新读完自己的程序以后,我发现原来出现问题的原因都是自己的粗心,在修改完这些问题以后,接下来的调试就比较顺畅了,归结原因主要还是我对流程图的设计下了很多功夫,为调试打下了良好的基础。
在本次设计当中,深深感悟到即使是一个小的板子也有很多的学问,我们必须真正的掌握它才能顺利解决遇到的各种问题。
虽然这只是一个比较小的实验系统,但却是一切的基础,只有懂了基础才能学的更深。
参考文献
[1]张友德.单片微型机原理、应用与实验[M].上海:
复旦大学出版社,2006.5.17~28
ZhangYoude.Single-chipmicrocomputerprinciples,applicationsandexperimental[M].Shanghai:
FudanUniversityPress,2006.5.17~28
[2]夏宽理.程序设计[M].上海:
复旦大学出版社,2000.7.26~44
XiaKuangli.Programming[M].Shanghai:
FudanUniversityPress,2000.7.26~44
[3]谭浩强.C程序设计[M].北京:
清华大学出版社,1999.12.48~56
TanHaoqiang.CProgramming[M].Beijing:
TsinghuaUniversityPress,1999.12.48~56
[4]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,2010.5
LiGuangdi.Microcontrollerbased[M].Beijing:
BeijingAero
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 电子钟 设计