数字电子钟设计.docx
- 文档编号:10475586
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:58
- 大小:675.63KB
数字电子钟设计.docx
《数字电子钟设计.docx》由会员分享,可在线阅读,更多相关《数字电子钟设计.docx(58页珍藏版)》请在冰豆网上搜索。
数字电子钟设计
题目:
数字电子钟设计
数字电子钟设计
摘要
以AT89C51单片机芯片为核心,辅以必要的外围电路,设计了一个简易的电子钟。
可实现时间、日期的显示以及闹钟响铃等功能。
详细论述了数字电子钟的硬件电路设计以及C语言程序的编写。
其中硬件电路包括时钟芯片DS1302模块、键盘控制模块、显示模块、响铃模块。
通过时钟芯片DS1302计时的方法实现了以24小时为一个周期同时显示小时和分钟的要求,并在计时过程中具有响铃提示功能,当时间到达闹钟定时时间进行蜂鸣提示。
该电子钟设有三个按键:
模式切换按键、加一按键、闹钟调整按键键,使之具备了校对时间和日期以及定时功能。
最终通过电路板的焊接以及C语言程序的编写,并通过Keil软件编译生成了hex文件,应用STC-ISP单片机烧写软件将程序烧录到单片机中,使LED数码管正确显示出时间及日期,可实现时间及日期的调整,得到了设计预期的结果,证明了设计的可行性。
关键词:
单片机;电子钟;时钟芯片
Thedesignofdigitalelectronicclock
Abstract
Thisarticledesignsasimpleelectronicclock,andthecoreisAT89C51singlechip(MCU)supplementedbythenecessaryperipheralcircuits.Theelectronicclockcanachievethetime,datedisplayaswellasfeaturessuchasalarmclockringing.
ThedesigndiscussthedigitalelectronichardwarecircuitdesignaswellasthepreparationofCProgrammingLanguageindetail.ThehardwareincludestheDS1302clockchipmodule,thekeyboardcontrolmodule,displaymoduleandringingmodule.WithClockChipDS1302timekeeping,theclockcandisplayhourandsecondatthesametimeina24-hourcycle.ItcangiveRingingtipswithabuzzerwhenitisonthetimeofsettingalarmclock.Thiskindofelectronclockisequippedwiththreekeys,thekey-pressofmodeswitching,thekey-pressofadditionandthekey-pressofalarmclockregulation,whichenabletheclocktoadjusttokeepaccuratetimeanddate,andtobuzzatthesettime.
TheelectronicclockcanshowthedateandtimethroughthesolderingcircuitboardandpreparingClanguageprogram,andthroughKeilcompilergeneratedthefileofhex.Thenthefileisdownloadedtosingle-chip(MCU)bythesortwarewhichnamedSTC-ISP.TimeanddateweredisplayaccuratelybyLEDdigitaltube,andtheycanbeadjusted.Weachievedtheanticipatedresult,andthefeasibilityofthedesignisprovedattheend.
Keywords:
singlechip;Electronicclock;ClockChip
第一章引言
一.1课题研究背景及意义
伴随着电子技术与计算机技术的不断发展,以单片机为核心的测量控制系统层出不穷。
当然,无论什么控制系统都离不开时间参数。
而传统的机械钟表显然是不能直接参与到各种自动控制系统中的,数字式电子钟表就应运而生了。
电子钟表是一种用电能为动力,液晶显示或LED显示数字式和石英指针式的计时器。
数字式电子钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,它在工业自动控制系统中起到了不可或缺的作用。
单片机(又称为微控制器)的出现是计算机发展史上的一个重要的里程碑,它以体积小、功能全、性价比高等诸多优点而独具特色,在工业控制、尖端武器、通讯设备、信息处理、家用电器等嵌入式应用领域中独占鳌头。
单片机的主要特点有:
CPU抗干扰性强、可靠性高、电磁辐射小、控制能力强,指令系统简单,程序可读性强,操作性强。
作为一名测控技术与仪器专业的学生,应熟练掌握检测与过程控制及相关学科领域的基础知识和基本技能,毕业后能够从事测量与控制领域内仪器与系统的设计制造、科研开发、应用研究、运行与管理等方面的工作。
而单片机技术作为计算机技术的一个重要分支,广泛应用于工业控制、智能化仪器仪表、家用电器,甚至电子玩具等各个领域,熟练掌握单片机技术尤其自己亲手制作一个单片机系统对测控专业学生具有非常重要的意义。
一.2电子钟的发展及现状
钟表是计时器的一种。
在钟表发明以前,我们的先辈已经在不同的时期利用各种方法来度量时间。
比如,依据太阳光线的位置判断时间的日晷、圭表,使用沙子的流动记录时间的沙漏,也有人把它们叫做“太阳钟”和“沙钟”,利用水滴计时的“铜壶滴漏”。
但是这些不属于“钟表”概念的范畴,因为钟表计时的原理是通过能够产生振荡周期的装置来计算时间。
而近现代的计时技术越来越先进,出现了真正意义上的机械式、电子式“钟表”,甚至出现了更为先进的原子钟。
电子钟是随着近代电子工业迅速发展而发展起来的新兴工业产品。
按照其振荡元件的不同,大体上可分为摆轮游丝式电子钟、音片式电子钟、音叉式电子钟、晶体管摆钟、电子数字钟和石英电子钟。
还有一些钟表,虽然直接驱动机芯运转式由电来完成,但电的来源却是由其他能源供给的,如光电钟、以人体手臂摆动的动能为能源的电子表、依靠人体体温产生电能的电子表。
本文所设计的基于单片机的数字电子钟即为较精密的计量和指示时间的仪器。
第二章数字电子钟的原理及设计方法
二.1数字电子钟常用设计方法
数字电子钟的设计方法有多种,例如,可用中小规模集成电路(如利用集成计数电路芯片74LS160、74LS163等)组成电子钟;也可以利用专用的时钟芯片(如时钟芯片DS1302、DS12C887等)配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机内部定时/计数器T0/T1计数来实现电子钟等等。
(1)利用集成计数电路芯片74LS163计数:
该方案电子钟逻辑电路由秒计时电路、分计时电路和小时计时电路组成。
秒、分计时电路由六十进制计数电路组成,而小时计时采用二十四进制计数电路,有时也习惯采用十二进制计数电路组成。
秒、分计时电路可以由两个四位二进制集成计数芯片组成,它采用同步清零。
加人60个脉冲后,数码管个位显示0~9十个数,十位显示0~5六个数,合计显示00~59,完成六十进制计数。
小时计时采用二十四进制计数电路时,设计电路由一个十进制计数芯片和二个JK触发器组成。
设计该电路时应注意,它的十位应显示0~2;个位前二次应显示0~9,第三次应显示0~3,此后两位都需清零,所以均采用直接清零法连接。
将秒计时电路、分计时电路、小时计时电路分别级联起来,则构成小时为二十四进制的电子钟计时电路,当电路计时到235959时,计时电路自动回零,即变为000000,之后再开始重复计时。
如果小时计时采用十二进制计数电路时,需要解决的特殊问题是不回零问题,也就是当计时到125959时,应翻转为010000,即小时的计时不能回零。
不回零的特殊问题决定了小时计时电路不适宜用十进制或四位二进制集成计数芯片实现,因为由它们组成的各种计数电路都需要回零后再重复计数。
这样,在设计十二进制的小时计时电路时,就需采用触发器的直接置0、置1端,使触发器按要求置0或置1,达到计数电路不回零的目的。
(2)利用单片机内部定时/计数器T0计数:
该方案计数功能由AT89C51单片机内部定时/计数器T0完成。
由于单片机的晶振频率为12MHz,使得T0的最大定时时间远远小于1秒,因此,在设计时采用了硬件计数与软件计数相结合的方式,即通过T0产生0.1秒的时基信号,然后再利用软件进行计数,从而产生1秒钟的时间信号。
在设计中,定时器T0采用中断方式。
当定时时间到时,定时器向CPU申请一次中断,CPU响应中断后转入中断服务程序,在T0的中断服务程序中实现时、分、秒的累加,即每产生一次中断,0.1秒时基单元的内容加1,当0.1秒时基单元的内容等于10时,便产生l秒信号,使秒计数单元的内容加1,并将0.1秒时基单元的内容清0;当秒计数单元计满60后,向分计数单元进位,使分计数单元的内容加1,并将秒计数单元的内容清0;当分计数单元计满60后,向时计数单元进位,使时计数单元的内容加1,并将分计数单元的内容清0;时计数单元计满24后清0,从而完成24小时制计数。
(3)利用专用的时钟芯片:
时钟芯片多种多样,其中并行接口的时钟芯片如MC1468,DS12C887等。
它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址/数据总线接线多、芯片体积大、占用空间多。
而串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,DS1302便是一个综合性能较好且价格便宜的串行接口实时时钟芯片。
本设计所用方法就是利用专用的时钟芯片DS1302,具体工作原理请见下文。
二.2基于时钟芯片DS1302的设计方法
本设计课题为基于单片机的数字电子钟的设计。
在设计中,以AT89C51单片机作为系统的主控部件,实现整个系统的信号控制、数据读写和处理等功能。
设计采用涓流充电串行时钟芯片DS1302实现时间、日期等时钟数据的计数。
其中硬件电路包括时钟芯片DS1302模块、键盘控制模块、显示模块、响铃模块。
使用可读性强、移植性好、具有浮点运算等功能的C51语言进行程序的编写。
在时钟芯片DS1302内部含有一个实时时钟/日历和31字节静态RAM。
实时时钟/日历电路提供秒、分、时、星期、日、月、年等时间信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位的设定以采取24或12小时时间格式。
只要对时钟芯片DS1302初始化后,其便可以按照程序中设定的时间、星期、日期、年等信息开始工作。
时钟芯片DS1302与单片机之间采用简单的同步串行的方式进行通信,其预设时间信息即通过单片机对其的写操作来完成。
而单片机通过对时钟芯片DS1302内部寄存器的读操作即可完成时间、星期、日期、年等时钟信息的读取,继而送入LED显示模块进行显示。
LED显示模块为四位七段LED数码管,由三极管驱动,其扫描方式为动态扫描。
键盘控制模块设定为三个按键,其分别为模式切换按键、加一按键、闹钟调整按键。
同过按键可完成时间、日期、闹钟时间的调整。
作为系统的核心部件的AT89C51单片机,在其上电复位后首先对时钟芯片DS1302初始化以启动时钟芯片,随后既要实现对时钟芯片DS1302读写操作以完成对时钟的时间、日期、闹钟时间的显示以及调整,还要在到达闹钟时间时控制闹铃模块的蜂鸣器进行响铃报警。
第三章主要芯片简介
三.1AT89C51单片机简介
AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4K字节可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51适合于许多较为复杂的控制应用场合,是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其引脚图如图3.1,内部方框图见图3.2:
图3.1AT89C51引脚图
(1)主要性能参数:
·与MCS-51产品指令完全兼容
·4K字节可重复擦写Flash闪速存储器
·寿命:
1000次擦写周期
·全静态工作:
0Hz~24Hz
·三级加密程序存储器
·128×8字节内部RAM
·32可编程I/O口线
·2个16位定时器/计数器
·6个中断源
·可编程串行UART通道
·低功耗的空闲和掉电模式
图3.2AT89C51内部方框图
(2)功能特性概述:
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
(3)引脚功能说明:
·Vcc:
电源电压
·GND:
接地
·P0口:
P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。
作为输出口使用时,每位能以吸收电流的方式驱动8个TTL逻辑门电路。
对端口写“1”可作为高阻抗输入端使用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
·P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在FLASH编程和校验期间,P1口作为低8位地址接收。
·P2口:
P2口是一个带有内部上拉电阻的8位双向I/O口,P2口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为那边存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(例如执行MOVX@RI指令)时,P2口线上的内容(即特殊功能寄存器(SFR)区中R2寄存器的内容)在整个访问期间不改变。
在FLASH编程和校验期间,P2口也接收高位地址和其他控制信号。
·P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口管脚备选功能如下所示:
·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口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
·RST:
复位输入。
当振荡器复位器件时,RST引脚出现两个机器周期以上的高电平将使单片机复位。
·ALE/PROG:
当访问外部存储器时,ALE(地址锁存允许)的输出电平用于锁存地址的低8位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
·/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
·/EA/VPP:
当/EA保持低电平时,则在此期间只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间只访问内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
·XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
·XTAL2:
来自反向振荡器的输出。
(4)振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
振荡电路如图3.3所示:
图3.3AT89C51振荡电路
(5)芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
(6)复位方式:
复位可以保证单片机的CPU及其他功能部件都从一个确定的初始状态开始工作。
复位信号从RST引脚输入,高电平持续2个机器周期以上有效。
若单片机时钟频率为12MHz,则复位脉冲宽度至少为2微秒。
单片机复位后,内部各寄存器状态如表3.1所示。
这时,各P口及ALE、/PSEN引脚均为高电平,片内RAM中内容不变。
表3.1复位后单片机内部寄存器状态
寄存器名
地 址
内容
注 释
*ACC
E0H
00H
累加器
*B
F0H
00H
乘法寄存器
*PSW
D0H
00H
程序状态字
SP
81H
07H
堆栈指针
DPL
82H
00H
数据存储器指针低8位
DPH
83H
00H
数据存储器指针高8位
*IE
A8H
0××00000H
中断允许控制器
*IP
D8H
×××00000H
中断优先控制器
*P0
80H
FFH
端口0
*P1
90H
FFH
端口1
*P2
A0H
FFH
端口2
*P3
B0H
FFH
端口3
PCON
87H
00H
电源控制及波特率选择
*SCON
98H
00H
串行口控制器
SBUF
99H
不定
串行数据缓冲器
*TCON
88H
00H
定时器控制
TMOD
89H
00H
定时器方式选择
TL0
8AH
00H
定时器0低8位
TL1
8BH
00H
定时器1低8位
TH0
8CH
00H
定时器0低8位
TH1
8DH
00H
定时器1高8位
单片机复位有自动上电复位和人工按钮复位两种,电路如图3.4、3.5所示:
图3.4自动上电复位电路
图3.5手动复位电路
三.2DS1302时钟芯片简介
串行时钟芯片DS1302是DALLAS公司推出的涓流充电时钟芯片,内部含有移位寄存器、控制逻辑、振荡器、实时时钟/日历以及31字节静态RAM,通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:
(1)RES复位,
(2)I/O(数据线),(3)SCLK(串行时钟)。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。
其引脚图如图3.6:
图3.6DS1302引脚图
DS1302是由DS1202改进而来,增加了以下的特性:
双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。
它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。
(1)DS1302管脚说明
·X1,X2:
32.768KHz晶振管脚
·GND:
地
·RST:
复位脚
·I/O:
数据输入/输出引脚
·SCLK:
串行时钟
·Vcc1,Vcc2:
电源供电管脚
(2)DS1302主要的性能指标:
·实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力
·31×8位暂存数据存储RAM
·串行I/O口方式使得管脚数量最少
·宽范围工作电压:
2.0~5.5V
·工作电流:
2.0V时,小于300nA
·读/写时钟或RAM数据时,有两种传送方式:
单字节传送和多字节传送
·8脚DIP封装或可选的8脚SOIC封装(根据表面装配)
·简单3线接口
·与TTL兼容(Vcc=5V)
·可选工业级温度范围:
-40℃~+85℃
·与DS1202兼容
·在DS1202基础上增加的特性
——对Vcc1有可选的涓流充电能力
——双电源管用于主电源和备份电源供应
——备份电源管脚可由电池或大容量电容输入
——附加的7字节暂存存储器
(3)复位和时钟控制:
数据传输的启动是由/RST置为高电平开始的,/RST启动控制逻辑,允许地址/命令序列进入移位寄存器,一个时钟周期是一个下降沿跟随一个上升沿。
数据输入时,在时钟上升沿数据必须有效,如果/RST变低,所有数据传送即被终止,I/O引脚到一个高阻状态。
在电源上电过程中,/RST必须保持逻辑0,直到Vcc大于2.0V。
在/RST由0变1的过程中,SCLK必须是逻辑0。
(4)数据输入:
输入写命令字节8个时钟周期之后,在下8个时钟周期的上升沿输入数据,若有额外的SCLK周期是不予理睬的,数据输入开始位是位0。
(5)数据输出:
输入读命令字节8个时钟周期之后,在下8个时钟周期的下降沿数据被
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子钟 设计