电子时钟的设计与实现文档格式.docx
- 文档编号:3246736
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:38
- 大小:108.74KB
电子时钟的设计与实现文档格式.docx
《电子时钟的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《电子时钟的设计与实现文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
TheDesignAndImplementationofElectronicClock
Abstract:
Thisdesignmainlyrealizesanelectronicclock
whichisbasedon89c51.Andthroughdigitaltube,itdisplaysthecorrespondingtimeofelectronicclock.Adjustthetimethroughthecontrolbutton,andtheelectronicclock’shours,minutes,secondsdisplaysby24hourchronographandeightLEDdigitaltube.AndtheapplicationofProteusISISsoftwaresimulationofsinglechipelectronicclocksystem,themethodofsimulationresultsistrue,accurateandsavingthehardwareresources.Thisdesignusestheelectronicclockmonolithicintegratedcircuitprinciple.Comparedwiththemechanicalclock,ithasahigheraccuracyandintuitive,andnomechanicaldevice,ithaslowhardwarecost,timingaccuracy,longerservicelifeetc..
Keywords:
SingleChipMicrocomputer;
ElectronicClock;
LEDDigitalTube
引言
1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。
20世纪末,电子技术获得飞速的发展,在其推动下,现代电子产品几乎渗透到社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时现代电子产品性能也得到进一步提高,产品更新换代的速度也越来越快。
时间对人们来说越来越宝贵,工作的繁杂性和忙碌性容易使人忘记当前的时间。
忘记很多要做的事情,如果事情不是很重要的时候,这种遗忘可能无伤大雅。
但是,一旦重要的事情,一时的耽将能酿成大祸,因此电子时钟得到了广泛的应用。
1电子时钟设计概述
1.1电子时钟的原理
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
还在于单片机应用的重要意义,传统的控制系统设计方法和设计思想被单片机改变了。
从前必须由数字电路或模拟电路实现的大部分功能,现在已能可以通过软件用单片机来实现了。
这种软件代替硬件的控制技术称为微控制技术,对传统控制技术来说是一次革命。
单片机模块中最常见的是数字电子时钟,数字电子时钟是一种用数字电路技术实现时、分、秒计时的装置,数字电子时钟钟用集成电路计时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
电子时钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒。
因此,一个基本的电子时钟电路主要由显示器和单片机,还有校时电路组成。
该电子时钟由89C51,八段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时、分、秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。
而电路中的四个控制键却拥有多种不同的功能,K1实现小时加1,K2实现小时减1,K3实现分钟加1,K4实现分钟减1,通过调节时、分从而使显示时间更加准确。
1.2电子时钟的设计思路
此次设计主要是应用单片机来设计电子时钟,硬件部分主要分为以下电路模块:
复位电路,按键电路,晶振电路,驱动电路和显示电路五部分。
其中显示电路用8个共阳极数码管分别显示小时、分钟和秒,通过三极管导通和截止的方式进行显示,从而避免了译码器的使用,使编程更加简单。
单片计算机即单片微型计算机,由RAM,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
这种单片机应用简单,适合电子时钟设计。
电路的总体设计框架如图1-1所示,硬件电路分为复位电路,按键电路,晶振电路,显示驱动和时间显示五部分。
图1-1硬件电路设计框图
2元器件介绍
本次电子时钟的设计主要应用89C51内部的定时器和计数器来实现计时控制并通过七段数码管进行显示。
以下是对两种元器件的简介:
2.1主控芯片89C51
89C51是一种带4K字节闪烁可编程可擦除只读存(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的高性能、低电压8位微处理器,又叫单片机。
单片机的可擦除只读存储器是可以反复擦除100次的。
单片机采用ATMEL非易失高密度存储器制造技术制造的,指令集和输出管脚与工业标准的MCS-51相集兼容。
由于要将多功能8位CPU和闪烁存储器组合在单个芯片中,89C51是ATMEL的一种高效微控制器。
主要特性:
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
·
低功耗的闲置和掉电模式
片内振荡器和时钟电路
如图2-1所示为89C51引脚图。
图2-189C51引脚图
下面为引脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口是一个漏级开路为8位的双向I/O口,每个引脚可吸收8TTL门电流。
当把P1口的管脚置1时,被定义为高阻输入。
P0口可以被定义为地址/数据的第八位,能够用于外部程序数据存储器。
P1口:
P1口是一个8位内部提供上拉电阻的双向I/O口,4TTL门电流可以通过P1口缓冲器接收输出。
P1口管脚被置1后,被内部电阻上拉为高,可用作输入,当外部电阻下拉让P1为低电平时,输出电流。
P2口:
P2口是一个8位内部提供上拉电阻的双向I/O口,4TTL门电流可以通过P2口缓冲器接收输出,P2口被置1时,被内部电阻上拉为高,可作为输入。
并因此为输入时,外部电阻将P2口的管脚拉低时,将输出电流。
P2口被用于16位地址外部数据存储器或者外部程序存储器时,高八位由P2口输出地址输出。
在给出地址“1”时,它利用内部电阻的上拉优势,当对外部的八位地址数据存储器进行读写时,P2口将输出特殊功能寄存器的内容。
P3口:
P3口管脚是双向I/O口带8个内部上拉电阻,被用于接收输出4个TTL门电流。
当P3口被写入“1”后,被作为输出,它们内部被上拉电阻置为高电平。
当被外部电阻下拉为低电平时,用作输出,因为上拉的缘故,P3口将输出电流。
P3口也可作为89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,其地址锁存允许的输出电平将用于锁存地址的低位字节。
在FLASH编程期间,此引脚将用于输入编程脉冲。
在平时,ALE端将以不变的频率周期,输出正脉冲信号,此频率是振荡器频率的1/6。
因此,它将用作用于定时目的或对外部输出的脉冲。
尤其要注意的是:
每次用作外部数据存储器时,要跳过一个ALE脉冲。
另外,该引脚要被略微拉高。
如果微处理器将在外部执行状态ALE禁止时,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期将两次/PSEN有效。
但是在访问外部数据存储器时,这两次有效/PSEN信号不出现。
/EA/VPP:
当/EA保持低电平时,该期间外部程序存储器,不管有没有内部程序存储器。
注意加密方式为1时,/EA将被内部锁定为RESET。
XTAL1:
内部时钟工作电路的输入及反向振荡放大器的输入。
XTAL2:
反向振荡器的输出。
2.2LED数码管
2.2.1LED数码管的结构原理数码管是一种把多个LED显示段集成在一起的显示设备。
有两种类型,一种是共阳型,一种是共阴型。
共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。
共阴型就是把多个LED显示段的阴极接在一起,即为公共端。
阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。
8个发光二极管组成一位显示器,其中字型“8”的各个笔划a~g由7个发光二极管构成,第8个发光二极管为一个小数点。
当一定的正向电压被施加在某段发光二极管上时,该段笔划即亮;
不加电压则暗。
外加限流电阻是为了保护各段LED不被损坏。
如图2-2为数码管的结构图,从左向右依次为引脚配置外形结构图、共阴极结构图和共阳极结构图。
图2-2数码管结构图
共阴极与共阳极7段LED显示数字0~F、“—”符号及“灭”的编码(a段为最低位,dp点为最高位)如表2-1所列。
表2-1数码管段选表
显示字符
1
2
3
4
5
6
7
8
共阴极段
选码
3F
(BF)
06
(36)
5B
(DB)
4F
(CF)
66
(F6)
6D
(FD)
7D
07
(87)
7F
(FF)
共阳极段
C0
(40)
F9
(79)
A4
(24)
B0
(30)
99
(19)
92
(12)
82
(02)
F8
(78)
80
(00)
9
A
B
C
D
E
F
—
熄灭
6F
(EF)
77
(F7)
7C
(FC)
39
(B9)
5E
(DE)
79
(F9)
71
(F1)
40
(C0)
00
(80)
90
(10)
88
(08)
83
(03)
C6
(46)
A1
(21)
86
(06)
8E
(0E)
BF
(3F)
FF
(7F)
本设计采用共阳极数码管作为电子时钟的显示器。
2.2.2LED显示器接口及显示方式LED显示器有静态显示和动态显示两种方式。
静态显示就是某个字符由显示器显示时,相应的段恒定地导通或截至,直到显示另一个字符为止。
LED显示器处于静态显示方式时,各位的共阴极接地;
若接+5V电源,则为共阳极。
每位的段选线(a~dp)分别与一个8位锁存器的输出口相连,显示器中的各位相互独立,而且一经确定各位的显示字符,将维持相应锁存的输出不变。
正因为如此,静态显示器的亮度较高。
这种显示方式编程容易,管理也较简单,但占用I/O口线资源较多。
动态显示是在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并连在一起,有一个8位I/O口控制。
而共阴(或共阳)极公共端K由相应的I/O线控制,实现各位的分时选通。
由于LED所有段选线皆由一个8位I/O口控制,因此,在每一瞬时LED会先是相同的字符。
要想每位显示的字符不同,各位LED就必须采用扫描方法轮流点亮,即某一位显示字符只在每一瞬间使用。
在此瞬间,段选码由段选控制I/O输出相应字符,则选通电平由位选择控制I/O口送入,以保证相应字符在该位显示。
如此轮流,是每位分时显示该位应显示相应的字符。
段选码、位选码每送入一次后延时1ms,因人眼的视觉暂留时间为0.1s(100ms),所以每位显示的间隔不必超过20ms,并保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮。
这种方式称为软件扫描显示。
本设计采用了数码管动态显示的方式进行设计的。
3硬件电路设计
3.1硬件电路图
图3-1电子时钟硬件电路图
根据硬件结构框图画出电子时钟的硬件电路图,硬件电路设计图如图3-1所示[1]。
按键的作用:
其中K1用于小时加1,K2用于将小时减1,K3用于将分钟加1,K4用于将分钟减1;
数码管用于实时显示当前时间信息。
关于电路的说明如下:
按键:
4个独立按键占用单片机的P1.4、P1.5、P1.6、P1.7引脚,并且每个引脚上都分别外加了上拉电阻,保证在按键释放后引脚上为可靠的高电平以便区分按键的按下和释放状态。
显示电路采用8位一体的数码管1个,采用动态显示方式,P0口送显示段码决定数码管上显示什么数据,P2口送位选码指定数码管显示。
P0口上接的470Ω电阻为限流电阻,用于调节数码管的亮度;
10KΩ电阻为P0口的上拉电阻。
其中数码管选择的是共阳极8位一体的LED数码管,每个上面有8个(这8个数码管的各个同名段在内部是连接好的,只是8个COM公共端是分开的,如图3-1所示),[7]因此能显示8位数据,三极管采用PNP型PN5138,所以当输出是低电平时三极管导通,对应的数码管点亮,当输出是高电平时三极管截至,对应的数码管熄灭。
显示电路将“时”、“分”、“秒”通过七段显示器显示出来。
3.2复位电路
复位电路的作用是控制CPU在上电或复位过程中的复位状态:
CPU在这段时间保持复位状态,而不是刚复位或一上电完毕就工作,防止CPU指令发出错误、操作执行错误,也可以提高电磁兼容性能。
单片机在启动时都将需要复位,为了使CPU和系统各部件从初始的状态开始工作。
单片机的复位信号是从RST口输入到芯片内的施密特触发器中的。
如果振荡器稳定后,并且系统处于正常工作状态时,RST引脚上将有一个维持两个周期的高电平(24个振荡周期)以上,则CPU可以将系统复位并响应。
单片机系统有两种复位方式:
手动按钮复位方式和上电自动复位方式。
本设计采用上电自动复位方式[2]。
Vcc
89c51
22uF
Res
1k
R
Vss
图3-2上电自动复位方式
如图3-2为89C51的上电自动复位方式,只要在RST引脚上接一电容至Vcc端,下接一个上拉电阻到地就可以。
对于CMOS型单片机,因为在RST端内部有一个下拉电阻,因此可将外部电阻去掉,如果将外接电容减至1µ
F。
上电自动复位的工作过程是在加电过程时,复位电路将通过电容加给RST引脚一个短暂的高电平,此高电平信号将随着Vcc对电容的充电过程而逐渐回落,因此RST端的电容的充电时间将决定高电平持续时间。
为了整个系统可以保证可靠地复位,RST端的将必须维持足够长时间的高电平。
上电时,Vcc的上升时间约为10ms,而振荡器的振荡频率将决定振荡时间,如晶振频率为10MHz,起振时间则为1ms;
晶振频率为1MHz,起振时间则为10ms。
在图3-2所示的复位电路中,当Vcc掉电时,RST端电压将快速下降到0V以下,但是,因为内部电阻电路的限制作用,此负电压将不会对器件产生任何损害。
其次,端口引脚将在复位期间处于随机状态,复位后,系统将引脚端口置为全“l”态。
如果系统得不到有效的复位,则程序计数器PC将会没有一个合适的初值,因此,CPU可能会开始执行程序从一个未被定义的位置[2]。
REST
89C51
R1
200
RST
R2
1K
图3-3手动按钮复位方式
如图3-3手动按钮复位方式所示,手动按钮复位方式要在复位输入端RST上加入高电平,需要人为完成。
一般将采用在RST端和正电源Vcc之间接一个按钮的办法。
当把人为按钮按下时,则Vcc的+5V电平信号将会直接加到RST端口。
由于人的动作再快也会保持接达数十毫秒,因此,完全能够满足复位的要求[4]。
复位电路的作用非常重要,虽然起结构简单。
单片机系统能不能正常运行,首先要检查能否复位成功。
初步检查可用示波器探头监视RES引脚,按下复位键,观察有没有足够幅度的波形输出(瞬时的),改变复位电路阻容值也可以进行实验。
3.3晶体振荡电路
单片机的晶体振荡电路分为内部振荡和外部振荡两种方式。
如图3-4为晶体振荡电路内部方式和外部方式,本设计采用晶振电路的内部方式。
XTAL2
悬空
XTAL1
外部振荡信号
GND
外部方式
内部方式
图3-4晶体振荡电路内部方式和外部方式
片内振荡器的反相放大器输入端是XTAL1,则输出端是XTAL2。
选用外部振荡器时,应直接在XTAL1加上外部振荡信号,而XTAL2悬空。
用内部方式时,时钟发生器对振荡脉冲二分频,如晶振频率为12MHz,则时钟频率为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
时钟电路设计是采用的是系统的内部方式,即利用芯片内部的振荡电路。
AT89系列单片机内部有一个构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
此放大器和作为反馈元件的片外晶体谐振器一块构成自激振荡器。
外接晶体谐振器和电容C1和C2构成并联的振荡电路,将接在放大器的反馈回路中。
外接电容的值没有严格的要求,但是电容的大小会影响震荡器的稳定性、震荡器频率的高低、温度的稳定性和起振的快速性。
因此,这个系统电路的晶体振荡器的值为12MHz,电容将尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能与单片机靠在一起安装,用于减少寄生电容,以及更好地保证震荡器可靠和稳定地工作[9]。
3.4按键电路
考虑到调整时间的方便性以及时间误差的存在,采用独立式键盘。
为提高CPU的工作效率,采用中断工作方式。
独立式按键是指一条输入数据线被各按键相互独立地接通,如图3-5所示。
这是最简单的键盘结构,该电路为查询方式电路。
键盘的工作过程可分为两步:
第一步是CPU首先检测键盘上是否有按键被按下,第二步是识别哪一个键按下。
检查键盘上有无键按下可采用查询工作方式:
键盘上有无键按下是有列线送出全扫描字,然后读入行线状态来识别的。
其方法是P1口输出00H,将所有列线置为低电平,并将行线电平状态读入累加器A中,如果有键按下,将会有一根行线被拉为低电平,因而使行输入状态不全为“1”。
键盘中哪一个键按下是有列线逐列被拉为低电平,检查行输入状态,称为逐列扫描。
方法是:
从PC口输入入行线状态,如果全为“1”,则所按下之键不在此列中,如果不全为“1”,则在此列,并且是与“0”电平行线相交的交点上的那个键。
如图3-5为独立按键电路图[10]。
+5V
P1.0
P1.11
P1.2
P1.4
图3-5独立按键电路图
4软件设计
4.1程序设计步骤
(1)计算计数初值。
电子时钟的最小单位是秒,但使用单片机定时器/计数器进行定时,即使按方式1工作,其最长定时时间也只能达131ms。
鉴于此,可以把定时器的定时时间定位100ms,这样,计数溢出10次即得到时钟的最小单位——秒;
而10次计数可用软件方法实现。
假定使用定时器T1,以工作模式1进行100ms的定时。
如果单片机时钟频率为6MHz,为得到100ms定时,设计初值为X,则
X=155536D=001110010110000B=3CB0H
(2)采用中断方式进行溢出次数的累计,计满10次即可得到秒计时。
从秒到分和从分到时的计时是通过累加和数值比较实现的。
﹙3﹚设计主程序、按键子程序、处理子程序、中断子程序、延时子程序和显示子程序
(4)电子时钟的显示及显示缓冲从端口输出[3]。
4.2电子时钟的程序设计
电子时钟分为主程序MAIN、按键子程序KEY、处理子程序PROCESS、显示子程序DISPLAY、中断服务子程序、延时子程序。
下面分别介绍几个子程序的程序设计过程:
4.2.1主程序在程序执行过程中,首先执行初始化程序,将一切工作准备就绪之后,进去到一个循环执行的主程序,如图4-1所示为主程序流程图
图4-1主程序流程图
根据主程序流程图编写相应的主程序:
MAIN:
CALLKEY;
调按键子程序KEY
CALLPROCESS;
调数据处理子程序PROCESS
CALLDISPLAY;
调显示子程序DISPLAY
SJMPMAIN;
跳转到MAIN标号处
4.2.2按键和中断服务子程序下面分别介绍了按键子程序和中断服务子程序的设计过程:
(1)按键子程序:
定时调用一个按键子程序,完成对按键是否按下的判断工作,如果有按键按下,则根据按下的按键做相应的处理,如果没有按键按下就继续执行其它程序,如显示子程序。
按键程序由KEY子程序完成。
按键子程序接P1.4~P1.7口,P1.4接K1表示小时加1,P1.5接K2表示小时减1,P1.6接K3表示分钟加1,P1.7接K4表示分钟减1。
如图4-2所示为按键子程序的流程图
图4-2按键子程序流程图
根据流程图编写按键子程序如下所示:
KEY:
JNBP1.4,HOUURJIA;
P1.4引脚是低电平就跳转到HOURJIA处JNB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 时钟 设计 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)