电子时钟的制作.docx
- 文档编号:25327381
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:22
- 大小:115.69KB
电子时钟的制作.docx
《电子时钟的制作.docx》由会员分享,可在线阅读,更多相关《电子时钟的制作.docx(22页珍藏版)》请在冰豆网上搜索。
电子时钟的制作
论文
摘要
近年来随着计算机在社会各领域的渗透,单片机的应用正在不断地走向深入,同时带动传统时间显示和时间控制日新月异更新。
在实时显示和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本篇论文讨论是倒计时器的设计与制作,以单片机AT89S51核心搭建硬件电路,采用8279可编程键盘/显示器接口芯片来进行键盘和LED显示的控制,时钟芯片DS1302提供精准的时序,采用八位LED数码管动态显示时间,同时可通过键盘来进行时间的设置。
【关键字】单片机、AT89S51、8279、DS1302、倒计时器、LED数码管显示器。
目录:
摘要‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥1
前言‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥1
第1章方案论证‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2
1.1开发意义‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2
1.2功能说明‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2
第2章硬件电路‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2
2.1单片机概述‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2
2.2AT89S51芯片概述‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥3
2.3LED数码管显示器概述‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥3
2.3.1.LED数码显示器的结构与显示段码‥‥‥‥‥‥‥‥‥‥‥‥‥3
2.3.2.LED数码显示器的接口方法与电路‥‥‥‥‥‥‥‥‥‥‥‥‥4
2.48279芯片介绍‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥4
2.5DS1302芯片介绍‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥6
2.6电路系统设计‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥8
第3章软件设计
3.1整体设计‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥9
3.2键盘流程‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥10
3.3DS1302时钟显示程序‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥10
结束语‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥15
参考文献‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥16
前言
在日常生活和生产的各领域中,时间具有非常重要的作用,没有时间我们无法进行正常的生活、生产和学习,因此时间的显示就成为生活的必需品。
传统的计时是采用老式的机械钟表,由于机械故障、物理损耗以及其它自然原因,老式钟表走时不太精准,因此它无法满足现在的时代要求。
随着数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以时间显示数字化为基础的。
由于计算机技术的发展,单片机为自动控制提供了新的方法,从简单到复杂,从空中、地面到地下,凡是能想象到的地方几乎都使用到了单片机。
单片机的应用有力于产品的小型化、多功能化和智能化,有助于提高劳动效率,减少劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。
但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:
单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。
这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。
微控制技术是一种全新的概念,是对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
第一章方案论证
1.1开发意义
本课题开发的意义在于它既节省了硬件成本,又能实现多功能。
既可做倒计时秒表,又可进行定时,还可以通过扩展完成其他功能,而且功能的相互转换也十分简单。
对于厂商,有很大的挖掘潜在价值的空间;对于消费者也有很大的吸引力。
1.2背景介绍
在我们的日常生活和工作中,有许多的领域需要进行时间的倒计,比如,在2008年北京奥运会即将来临之际,许多公共场合都有倒计时牌,以此来提醒人们距离开幕还有多少天。
每天我们的交通都要依靠交通灯来自动控制指挥,红绿灯采用倒计时的方法来显示剩余时间,这样对行人来说既方便又安全。
在一些家用电器中都需要有定时的功能,比如洗衣机的定时脱水,电视机的定时开关机,微波炉的定时烘烤食物等,同时工业生产中的熔炉煅烧等都要进行精确的时间设定,科学实验时也要有时间定时过程,如果只是进行单纯的计时,使用者可能因为某些原因忘记。
若是用倒计时的方式进行计时显示再配以到时报警,这样有利于提高效率。
因此倒计时器的设计与研究具有非常重要的意义。
1.3功能说明:
(1)本电路采用八位LED数码管动态显示时间,天数用二位,时分秒分别用两位显示,其中天数用倒计时的方式显示,时、分、秒采用正常的记时方式。
(2)利用六个按键来进行时间的设置,分别有左向移动键LM、右向移动键RM,数字加一键,数字减一键,开关键ON/OFF,复位键。
(3)当倒计时时间到可输出一个信号用于报警。
第二章硬件电路
2.1单片机的概述
简单的说,一块单片机芯片就是一台超小型化的计算机,即将中央处理器CPU(Centralprocessingunit)。
随机存储器RAM(Randomaccessmemory)。
只读存储器ROM(Readonlymemory)。
中断系统、定时器/计数器以及各种I/O(Input/output)接口电路(如并行I/O,串行I/O,A/D接口)等烧刻在一块硅片上,构成一台微缩短完整的计算机。
因此叫做单片机。
单片机是一个计算机系统,自动化和智能性是其最主要的特点,加上它有体积小、重量轻、价格便宜、速度快、使用方便等诸多优点,它出现后,在工农业生产上大幅度地提高了生产效率和产品质量。
另外,在彩电、冰箱、空调、VCD、遥控器、游戏机等日常家用电器上无处不见单片机的影子,它大大地提高了这些产品的智能性、实用性和可靠性。
单片机早已深深地融入到我们每个人的生活中。
2.2AT89S51的芯片概述
AT89S51是一个低功耗,高性能CMOS8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案
AT89S51芯片具有以下特性:
Ø指令集和芯片引脚与Intel公司的8051兼容;
Ø4KB片内在系统可编程Flash程序存储器;
Ø时钟频率为0~33MHz;
Ø128字节片内随机读写存储器(RAM);
Ø32个可编程输入/输出引脚;
Ø2个16位定时/计数器;
Ø6个中断源,2级优先级;
Ø全双工串行通信接口;
Ø监视定时器;
Ø2个数据指针。
其工作电压在4.5-5V。
AT89S51比其它8位单片机的功能要强大很多,而价格又没有太大的提高,因此选用AT89S51单片机来作为本系统的核心。
2.3LED数码管显示器概述
2.3.1.LED数码显示器的结构与显示段码
(1)LED数码显示器的结构
LED数码显示器是一种有LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,一个用于显示小数点,故通常称之为7段发光二极管数码器。
(2)LED数码显示器有两种连接方法如下。
共阳极接法。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
共阴极接法。
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
(3)LED数码显示器的显示段码。
为了显示字符,要为LED显示器段码(或称字形代码),组成一个8字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED显示器的显示段码为1个字节。
各段码位的对应关系如下表所示.
十六进制数及空白字符与P的显示段码.
段码位D7D6D5D4D3D2D1D0
显示段pdgfedeba
字型共阳极段共阴极段字型共阳极段
码码码
0C0H3FH990H
1F9H06HA88H
2A4H5BMB83H
3B0H4FHCC6H
499H66HDA1H
592H6DHE86H
682H7DHF84H
7F8H07H空白FFH
880H7FHP8CH
2.3.2.LED数码显示器的接口方法与电路
Led静态显示方式
LED工作在静态方式下,共阴极接地或共阳极接+5V;每一位的段选线(a~g、dp)与一个8位并行I/O口相连,显示器的每一位可独立显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。
LED动态显示方式
LED动态显示是将所有位的段选线并接在一个I/O口上,共阴极端或供阳极端分别由相应的I/O口线控制。
由于每一位的段选线都接在一个I/O口上,所以每送一个段选码,8位就显示同一个字符,这种显示器是不能用的。
解决此问题的方法是利用人的视觉暂留,从段选线I/O口上按位次分别送显示字符的段选码,在位选控制口也按相应的次序分别选通相应的显示位(共阴极送低电平,共阳极送高电平),选通位就显示相应字符,并保持几毫秒的延时,未选通位不显示字符(保持熄灭)这样,对各位显示就是一个循环过程,这就动态显示。
由于静态显示占用的口线和显示器的个数成正比,而本设计中由8位LED显示器,故采用动态显示方式。
2.48279芯片介绍
INTEL8279是一种可编程键盘/显示器接口芯片,它含有键盘输入和显示器输出两种功能。
键盘输入时,它提供自动扫描,能与键盘或传感器组成的矩阵相连,接收输入信息。
它能自动消除开关抖动并能对多键同时按下提供保护。
显示输出时,它有一个16×8位显示RAM,其内容通过自动扫描,可由8或16位LED数码管显示。
8279管脚、引线及功能说明
8279为40列引脚封装,如图7.9.1所示。
详细说明如下:
D0~D7(数据总线):
双向、三态总线。
用于和系统数据总线相连,在CPU和8279之间传递命令或数据。
CLK(系统时钟):
输入线。
用于8279内部定时,以产生其工作所需时序。
RESET(复位):
输入线,高电平有效。
当复位信号RESET=1时,8279被复位。
(片选):
输入线,低电平有效。
当=0时,8279被选中,允许CPU对其进行读、写操作,否则被禁止。
A0(缓冲器地址):
输入线。
当A0=1时,若CPU进行写操作,则写入字节是命令字。
若进行读操作,则从8279读出的字节是状态字。
当A0=0时,写入字节或读出字节均为数据。
RD、WR(读、写信号):
输入线,低电平有效。
这两个来自CPU的控制信号,控制8279的读写操作。
IRQ(中断请求):
输出线,高电平有效。
在键盘工作方式中,当FIFO/传感器RAM中存有数据时,IRQ为高电平,向CPU提出中断申请。
CPU每次从RAM中读出一个字节数据时,IRQ就变成低电平。
如果RAM中还有未读完的数据,IRQ将再次变为高电平,再次提出中断申请求。
在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。
SL0~SL3(扫描线):
输出线。
这四条输出线用来扫描键盘和显示器。
它们可以编程设定为编码输出(16中取1)或译码输出(4中取1)。
RL0~RL7(回复线):
输入线。
它们是键盘矩阵或传感器矩阵的列信号输入线。
SHIFT(移位信号):
输入线,高电平有效。
该输入信号是8279键盘数据的次高位D6,通常用来补充键盘开关的功能,可以用作键盘上下挡功能键。
在传感器方式和选通方式中,SHIFT无效。
CNTL/STB(控制/选通):
输入线,高电平有效。
在键盘方式时,该输入信号是键盘数据的最高位D7,通常用来扩充键开关的控制功能,作为控制功能键用。
在传感器方式下,CNTL信号无效。
在选通输入方式下,该信号的上升沿可将来自RL0~RL7的数据存放入FIFORAM中。
OUTA0~OUTA3(A组显示信号):
输出线。
OUTB0~OUTB3(B组显示信号):
输出线。
这两组引线均是显示信息输出线,它们与多路数字显示的扫描线SL0~SL3同步。
两组
可以独立使用,也可以合并使用。
(消隐显示):
输出线,低电平有效。
该输出信号在数字切换显示或使用显示消隐命令时,将显示消隐。
8279工作方式
1、键盘工作方式由两种双键互锁和N键依次读出。
(1)键盘扫描方式,双键互锁
这种方式中由三种可能的情况:
一是只有一个键按下,则该键值连同CNTL及SHIFT的状态一起送到FIFO/传感器RAM中。
如果FIFO/传感器RAM为空,IRQ=1;如果FIFO/传感器RAM满,便置错误标志,键值不会经入FIFO/传感器RAM中。
二是由键按下,后又有其它键按下但先释放,前者有效,后者无效,并把有效键的值送入到FIFO/传感器RAM中。
三是在防键抖动误动作周期内,有双键同时按下,后释放的有效。
(2)键盘扫描方式,N键互锁
在这种方式下,有多键同时按下,则按照扫描时遇到闭合键的先后次序将键值存入FIFO/传感器RAM中,然后依次读出。
2、显示器的工作方式
CPU将显示数码写入显示RAM中时,有从左端写入和从右端写入两种方式。
显示时,可以分A、B两组独立方式,也可以两组同时显示。
3、内部译码和外部译码方式
在键盘、显示器工作方式中,SL0~SL3为键盘的列扫描和动态显示器的位选线。
当选择内部译码方式时,SL0~SL3每一时刻只能有一位为低电平输出,此方式只能外接4个LED显示器和4*8键盘。
当选择外部译码方式时,SL0~SL3输出为计数分频方式,此方式下可以外界16个LED显示器和8*8键盘。
8279的编程方法:
8279的编程可分为初始化、向显示RAM中写入数据和读键盘数据三部分。
在实际应用中,通常初始化编程在主程序中完成;显示部分一般作为子程序;而键盘读入部分作为中断服务程序来编写。
初始化编程是向8279写入工作方式命令字,确定其工作方式及相关操作功能。
以下介绍本设计中对8279的编程
(1)键盘/显示器方式设置命令字
D7D6D5D4D3D2D1D0=00010010;8个LED显示器,从右端输入,编码扫描键盘,双键互锁
(2)时钟编程命令
D7D6D5D4D3D2D1D0=00110100;外部时钟为2MHz,分频系数=2MHz/100kHz=20
(3)读FIFO/传感器RAM命令
D7D6D5D4D3D2D1D0=01000000;设置FIFO/传感器RAM地址读后地址保持不变
(4)读显示RAM命令
D7D6D5D4D3D2D1D0=0111****;D3D2D1D0为显示RAM的存储单元地址,每次读出显示RAM后地址自动加一,指向下一单元。
(5)写显示RAM命令
D7D6D5D4D3D2D1D0=1001****;D3D2D1D0为显示RAM的存储单元地址,每次向显示RAM写入数据后,地址自动加一,指向下一单元地址。
(6)清除命令
D7D6D5D4D3D2D1D0=11011100;清除显示RAM和FIFO/传感器RAM
(7)中断结束/出错方式设置命令
D7D6D5D4D3D2D1D0=11110000;此命令使IRQ变低电平,而结束中断,并允许对FIFIO/传感器RAM的再次写入。
2.5DS1302芯片的介绍:
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31B静态RAM,通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、星期、月和年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到3根口线:
RST复位、I/O数据线和SCLK时钟线,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
采用普通32.768kHz晶振。
工作电压为2.5V~5.5V。
2.5.1引脚功能及结构
图1示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK始终是输入端。
2.5.2DS1302的控制字节
DS1302的控制字如图2所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
1
RAM
CK
A4
A3
A2
A1
A0
RAM
K
2.5.3数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
2.5.4DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
2.6系统硬件电路设计
图1所示为电路的总体设计思路,图2为单片机的最小系统,图3为ds1302与单片机的接口电路,图4是8279与片的接口以及8279与键盘显示器的接口电路。
图1系统结构框图
图2单片机最小系统
图3DS1302与单片机的连接电路
图48279键盘显示器接口电路
8279芯片上的端口D0~D7与单片机的P0端口相连,用于CPU和8279之间控制,状态及数据信息的传输。
8279与89S51的读写控制端口WR,RD相连接,使单片机能够对8279进行读写操作。
8279的片选端由P2.7控制,中断请求输出IRQ由外部中断1—INT1中断。
芯片74LS373是一种带输出三态门的8D锁存器,单片机的地址锁存有效信号ALE与74LS373的数据锁存数据端G相连,G为“1”时,锁存器输出端同输入端;当G由“1”变“0”时,数据输入锁存器中。
74LS373的输出允许端OE接地,表示输出三态门一直打开。
8279的A0端接CPU地址总线的A0即74LS373的输出端R0,用于区别信息特征:
为1时,表示写入的命令或读出8279的状态;为0时,表示传送的时数据。
行(或列)扫描输出线SL0~SL2接3线-8线译码器74LS138译出8条显示器的位扫描线,经过74LS240驱动LED显示器工作,OUTA0~OUTA3和OUTB0~OUTB3显示数据的段码输出线经过74LS240输出显示数据,并在每个输入端接个1K的电阻以限制输入电流,防止数码管烧坏。
RL7~~RL2六条回复输入线作为键盘的行输入线,从74LS138的输出线Y1引出键盘的列输入线,这样就构成了六个按键,从上到下依次为:
开关键ON/OFF,用于显示器的开关控制;复位键R,用于系统出现突发情况时,恢复系统状态到初始状态;左向移动键LM、右向移动键RM,当进行时间设置时,可使数字显示位从左向右依次设置,也可从右向左依次设置;数字加一键,数字减一键,设置时间时进行加一或减一操作。
第三章软件设计
3.1整体设计
首先在主程序中对系统环境,包括设置串口、端口以及芯片DS1302和8279进行初始化,主程序流程图如下图所示:
3.2键盘中断程序流,由8279对键盘进行编程
3.3显示程序
时分秒采用二十四小时制正计时的方式,初始为00:
00:
00,开始计时,当计时到23:
59:
59时,触发天数减一,如此循环进行,直到天数减为0,倒计时结束。
Ds1302时钟显示子程序
T_RST Bit P1.3;实时时钟复位线引脚
T_CLK Bit P1.4;实时时钟时钟线引脚
T_IO Bit P1.5;实时时钟数据线引脚
SECOND EQU 30H
MINUTE EQU 31H
HOUR EQU 32H
ORG 0000H
LJMP START
ORG 0060H
START:
;CLR T_RST
;CLR T_CLK
MOV SP,#60H ;修改堆栈
MOV SECOND,#00H ;初始时间设为12:
00:
00
MOV MINUTE,#00H
MOV HOUR,#12H
LCALL SETDS1302
LCALL GET1302
LCALL DISPLAY
MAIN:
MOV R3,#25
MOV TMOD,#01H
MOV TH0,#70H ;置定时器初值(定时40ms)
MOV TL0,#00H
SETB TR0 ;启动定时器0
LP1:
JBC TF0,LP2 ;查询计数溢出
SJMP LP1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 时钟 制作