数字时钟的设计与实现.docx
《数字时钟的设计与实现.docx》由会员分享,可在线阅读,更多相关《数字时钟的设计与实现.docx(38页珍藏版)》请在冰豆网上搜索。
数字时钟的设计与实现
摘要
数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,并且精确度高。
本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片和LCD液晶显示为核心,辅以必要的电路,构成了一个单片机电子时钟。
与传统机械表相比,它具有走时精确,显示直观等特点。
此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示时分秒的计时。
关键词:
电子钟单片机汇编
Abstract
Digitalelectricclockaremanymethodsofdesign,someofthesedesign,Usesingle-chiptoachieveelectricclockhasprogrammingflexibility,facilitatetheexpansionoftheelectricclockfunction,Inotherwords,itcanusetheelectricclocksendallcontrolsignals,andtheaccuracyishigh.
Thispapermainlyintroducesthesingle-chipinternaltiming/countertorealizeelectricclock’smethod,thisdesignwithsingle-chipAT89C51chipandLCDdisplayasthecore,appendthenecessarycircuit,constituteasingle-chipelectronicclock.Comparedwiththetraditionalmechanicalwatch,itismorepreciseanddisplaymoreintuitive.
Theelectricclockinstrictaccordancewiththerequireddesign,itcanachieveexpectedeffectthatCandisplaycorrecttimeintheend.
Keywords:
electricclocksingle-chipprogramming
引言
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
1开发工具及开发环境简介
1.1单片机
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
1.2Proteus
Proteus软件是LabcenterElectronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
1.3KEIL
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2电子钟功能及总体方案的介绍
2.1电子钟功能介绍
2.1.1电子时钟介绍
电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。
主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。
整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。
液晶(LiquidCrystal)为一半透明之物质[6],同时兼具有固体的结晶次序性与液体的流动性,也被称为中间相物质,由于液晶具有规则分子排列的特性,当受到电场等外部刺激时,液晶分子排列会产生变化而具有光电效应之特性(ElectroOpticEffect),利用此特性可应用在显示用元件上。
一般液晶显示器使用的液晶材料,并非单一的液晶分子,原因是单一液晶材料无法达到LCD在低电压驱动、高速化之要求,故使用时必需混和10种~20种不同的液晶材料,才可在热安定性、光安定性等特性上达到显示器的要求。
此外,LCD面板制造商也会考虑显示器种类、用途、使用地区之温度等因素,选择适当的配方。
液晶材料是液晶显示器结构中上下玻璃板间的半透明介电材料,功能类似光电开关,其原理是利用上下电极通电后,电场产生变化使得液晶分子因介电方向性与导电异方向性而出现旋光性,光线因液晶长轴与短轴折射率不同而产生不同之穿透度,再配合配向膜与偏光板之作用,即可产生光线ON-OFF之变化。
液晶显示器的特点:
(1)低压微功耗,工作电压3-5V,每平方厘米液晶显示屏工作电流只有几个uA。
因此液晶显示器件成为电池供电的电子设备的首选显示器件;
(2)平板型结构,液晶显示器的基本结构是由两片玻璃组成的很薄的盒子,这种结构的优点:
一是使用方便,二是工艺适于大批量生产,目前的液晶生产线大都采用集成化生产工艺;
(3)寿命长,器件本身几乎没有什么劣化问题;
(4)被动显示,环境光线越强,显示内容越清晰,人眼所感受的外部信息90%以上是外部物体对光的反射,而不是物体本身发光,所以被动显示更适合人的视觉习惯,不会引起疲劳,这在大信息量、高密度显示、长时间观看时尤为重要;
(5)显示信息量大,易于彩色化,液晶彩色化非常容易,方法也很多;
(6)无电磁辐射;
液晶显示器具有体积小、外形薄、重量轻、耗能少、工作电压低、无辐射,特别是视域宽、显示信息量大等优点。
随着测控技术的日益发展,液晶显示器已被广泛应用于各种仪器仪表、电子显示装置等场合,成为测量结果显示和人机对话的重要工具。
液晶显示器按其功能可分为3类:
笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。
前2种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。
2.1.2扩展功能
液晶显示电路:
用LCD12864(液晶分辨率128*64)实现系统的显示。
按键控制电路:
通过按键进行设置。
实现调时,闹钟设置,秒表功能。
蜂鸣器电路:
通过蜂鸣器实现打铃功能。
温度监控:
通过DS18B20来监测温度。
2.1.3电子钟的工作原理
数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。
8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。
数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。
“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。
“时单元”采用24进制计时器,可实现对一天24小时的累计。
显示电路将“时”、“分”、“秒”通过液晶屏显示出来。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。
2.1.4电子钟功能描述
此电子时钟可显示的时间范围为:
2000年1月1日0点至2079年12月31日23时59分59秒。
此时钟在正常计时模式下具有自动调整每月的天数、闰年的天数及星期的变化,而在调时模式下则不能自动调整,需操作者自行调整时间为24小时制
A:
菜单按键,松开按键时有效
第一次按下此键后,进入调时状态并且秒开始闪烁,表示此时可以对秒进行修改。
以后每按一次MENU键闪烁位右移一个可调位,即以后每按一次闪烁的分别为分、时、星期、日、月、年。
INC:
加一键,松开按键有效
当MENU选中要修改的位时,如分(分闪烁时),按此按可以使分的值从当前值开始加一,加至60时变为00(59过后即显示00,不显示60),秒亦是如此;而时则在加至24时变为00(23过后即显示0,不显示24);星期在加至MON时变为SUN(即MON过后即显示SUN);日在加至32时变为00(即31过后即显示0,不显示32);月在加至13时变为00(即12过后即显示0,不显示13);年在至2080时变为2000(即2079过后即显示2000,不显示2080)
DEC:
减一键,松开按键有效
此键的操作与INC键相同,但它的作用却与INC的作用相反(即在lcd上显示出的效果正好相反),在此不再赘述
QUIT:
保存退出键,松开按键有效
按下此键松开后,会保存操作者对时钟时间的修改并退出调时模式进入正常计时状态,时间正常显示。
2.2总体方案介绍
2.2.1计时方案
利用AT89C51单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解。
AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明:
中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
程序存储器(ROM):
8951共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
定时/计数器(ROM):
8951有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:
8951共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
全双工串行口:
8951内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
中断系统:
8951具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
8951内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8951单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
2.2.2键盘/显示方案
AT89C51的P0.0-P0.7口外接LM016LLCD显示器,P1口外接七个按键A、B、C、D、E、F、G构成键盘电路。
AT89C51是一种低功耗,高性能的CMOS8位微型计算机。
它带有8KFlash可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash集成在一个芯片上,可用与解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本书中采用此的设计方案。
液晶显示LM016的各个引脚功能如表2-1所示,输入输出引脚如表2-2所示。
表2-1液晶显示LM016引脚功能
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
8
D1
数据
2
VDD
电源正极
9
D2
数据
3
VEE
液晶显示偏压
10
D3
数据
4
RS
数据/命令选择
11
D4
数据
5
R/W
读/写选择
12
D5
数据
6
E
使能信号
13
D6
数据
7
D0
数据
14
D7
数据
表2-2液晶显示输入输出引脚
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
在总体的设计结构上采用AT89C51单片机LM016L液晶显示DS1820温度传感器。
按键电路用于校正、调节液晶上显示的时间。
温度传感器用来采集温度值。
单片机通过输出各种电脉冲信号开驱动控制各部分正常工作。
单片机发送的信号经过显示电路通过译码最终在液晶上显示出来。
系统工作过程:
1、时间的主要处理过程是在CPU中完成的。
CPU会随时对时间进行读取数据的操作。
在读取了相应的寄存器的值后,CPU将读取的值进行处理,再通过I/O口把数据传入LM016L。
2、LM016L在接受到数据后在相应的位置上进行显示。
3、温度信号会通过DS18B20进行采集,然后通过CPU处理后同样传给LM016L。
系统的设计按照系统的工作过程,将CPU相应的I/O口分配给对应的芯片完成相应的控制和数据的传输。
简单地概括为以CPU为中心,将DS18B20的时间和温度信号通过CPU处理后输入到LM016L进行输出显示。
如图2-1所示。
图2-1数字时钟设计结构图
2.2.3单元模块选型
2.2.3.1AT89C51单片机系统选型
AT89C51是一种低电压、高性能CMOS8位微处理器,内部有2K字节的闪速PEROM,该芯片采用ATMEL公司的高密度、非挥发性存储器工艺制成,且与工业标准MCS-51系列的引脚和指令兼容,FLASH系列存储器为快速擦写存储器。
其最小系统设计如图2-2所示:
图2-2单片机AT89C51
2.2.3.2DS18B20温度传感器电路选型
DS18B20温度传感器是美国Dallas公司生产的最新的单线数字温度传感器,支持“1-Wire”接口。
其DQ端经上拉电阻接在P3.3引脚。
如图2-3所示。
图2-3DS18B20温度传感器
2.2.3.3液晶LM016L电路设计
液晶LM016L用来显示时间、日期、星期及温度。
其数据口与P0口相连,P2.0、P2.1和P2.2分别控制数据命令选择端、读写选择端及使能端。
如图2-4所示。
图2-4液晶显示器
键盘电路
键盘用来调节时间。
分别于P1.0、P1.2、P1.3、P1.4、P1.5、P1.6连接。
电路如图2-5所示。
键盘功能描述:
Key_A键控制时间设置,Key_B键控制闹钟设置,Key_C键调位数,Key_D键显示秒表,Key_E键对设置进行增加,Key_F键对设置进行减少,Key_G键实现输入确定。
图2-5按键设置图
3电子钟的工作原理
3.1实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1)计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs=50000μs
X=15536→0011110010110000→3CB0H
(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
3.2电子钟的时间显示
电子钟的时钟时间在液晶上进行显示。
3.3电子钟的启、停及时间调整
电子钟设置7个按键通过程序控制来完成电子钟的启动及时间调整。
A键控制时间设置
B键控制闹钟设置
C键调位数
D键显示秒表
E键对设置进行增加
F键对设置进行减少
G键实现输入确定
3.4电子钟原理图及元件清单
3.4.1电子时钟电路原理图
图3-1电子时钟电路原理图
3.4.2元件清单
电子钟元件清单如表3-1所示:
表3-1 电子钟元器件清单
元件名称
规格型号
数量(个)
单片机
AT89C51
1
显示驱动芯片
74LS245
2
液晶显示器
LM016L
1
晶振
12MHz
1
按键
BUTTON
7
蜂鸣器
SPEAKER
1
三极管
2N2905
1
排阻
RESPACK-8/10K
1
排阻
RESPACK-7/10K
1
温度传感器
DS18B20
1
3.5数字钟的硬件设计
本次设计的数字钟核心硬件是AT89C51单片机,下面简单介绍其基本结构和引脚功能。
89C51系列单片机的内部功能结构如图3-2所示。
图3-289C51单片机基本功能结构
在一小块芯片上,集成了一个小型计算机的各个组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器口,各部分通过内部总线相连。
AT89C51提供以下标准功能:
1)4K字节的可重擦写Flash闪速存储器;
2)与MCS-51产品指令系统完全兼容;
3)1000次擦写周期;
4)全静态操作0—24MHz;
5)128×8字节内部RAM;
6)32个可编程I/O口线;
7)2个16位定时/计时器;6个中断源;
8)低功耗空闲和掉电模式。
AT89C51引脚如图3-3所示:
图
图3-3AT89C51引脚
引脚功能说明:
Vcc:
电源电压,GND:
接地
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL逻辑门电路。
对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。
做输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P2口:
P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。
对端口写“1”,通过内部上拉电阻