基于AT89S51电子时钟毕业设计gaiWord格式.docx
- 文档编号:7708567
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:19
- 大小:647.69KB
基于AT89S51电子时钟毕业设计gaiWord格式.docx
《基于AT89S51电子时钟毕业设计gaiWord格式.docx》由会员分享,可在线阅读,更多相关《基于AT89S51电子时钟毕业设计gaiWord格式.docx(19页珍藏版)》请在冰点文库上搜索。
2.1设计任务5
2.2设计思路3
2.3设计方案3
三数字钟的硬件设计4
3.1总电路图4
3.2AT89S51概述及其特点5
3.3T0定时器/计数器7
3.4数码管动态扫描9
3.5键盘扫描电路13
3.6复位电路15
3.7电源电路13
3.8语音录放电路17
四数字钟的软件设计19
4.1系统软件设计内容19
4.1.1数据与代码转换19
4.1.2计时功能的实现与中断服务程序19
4.2数字钟流程图20
4.3数字钟程序23
五总结37
致谢37
参考文献39
引言
计算机尤其是以微细加工技术支持的微型计算机技术飞速发展,其应用渗透到了各行各业。
以单片机、嵌入式处理器、数字信号处理器(DSP)为核心的计算机系统,以其软硬件可裁剪、高度的实时性、高度的可靠性、功能齐全、低功耗、适应面广等诸多优点而得到极为广泛的应用。
目前计算机硬件技术向巨型化、微型化和单片机化三个方向发展。
自1975年美国德州仪器公司(TexasInstruments)第一块微型计算机芯片TMS-1000问世以来,在短短的20年间,单片机技术已发展成为计算机领域一个非常有前途的分支,它有自己的技术特征、规范和应用领域。
单片机是自动控制系统的核心部件,主要用于工业控制、智能化仪器仪表、家用电器中。
它具有体积小、性能突出可靠性高(某些方面的性能指标大大优于通用微机中央处理器)、价格低廉等一系列优点,应用领域不断扩大,除了工业控制、智能化仪表、通信、家用电器外,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件,已经渗入到人们工作和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,前景广阔。
数字钟具备单片机最小系统的基本组成,对于我们了解单片机有很大的帮助。
一绪论
时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。
从古代的水漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现出了时间的重要,同时也代表着科技的进步。
致力于计时器的研究与充分发挥时钟的作用,将有着重要的意义。
1.1课题意义
在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等,早期常用的一些时间控制单元都是用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。
小则可以用于家电控制,甚至可以用于儿童电子玩具。
它功能强大,体积小,质量轻,灵活好用,配以适当的借口芯片,可以构造各种各样、功能各异的微电子产品。
目前市场上提供的无论机械钟还是石英钟在晚上无照明的情况下都是不可见的。
要知道当前的时间,必须先开灯,故较为不便。
现在市场上也出现了一些电子钟,它以LED数码管来显示具体时间,与传统的以指针显示时间的方式不同,违背了人们传统的习惯与理念,而且这类电子钟一般是采用大型显示器件,适用于银行、车站等公共场所,且外观设计欠美观,很少进入百姓家庭。
此外,无论是机械钟、石英钟还是电子钟,都存在着共同的问题:
时间误差。
针对以上存在的问题,我们设计了一款采用LED数码管显示的电子时钟,有效克服了时钟存在的误差。
1.2数字钟的应用
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作和娱乐带来极大的不便。
由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时,自动报时和自动控制等各个领域。
二整体设计方案
2.1设计任务
1能实现显示时间的时、分、秒,并具有时间的设置和调控功能;
2具有定时、倒计时功能;
3能实现语音正点报时;
4具有闹铃功能。
2.2设计思路
以AT89S51作为核心控制,配以语音模块、LED显示模块、时钟模块、控制模块作为外围电路达到设计要求。
2.3设计方案
系统由AT89S51、LED数码管、按键、发光二极管等部分构成,能实现日期及时间的调整、定时日期及时间的设定,输出等功能。
系统的功能选择由“F1”、“F2”、“F3”、“+”、“-”五个功能键来完成。
按一下F1:
显示年月日,按二下F1:
调整年,按三下F1:
调整月,按四下F1:
调整日,按一下F2:
显示时分秒。
按下F3一下:
调整时。
按下F3二下:
调整分。
按下F4一下:
设定时开的时,按下F4二下:
设定时开的分。
“+”、“-”分别是调时时数字加1或者减1的功能,键盘上各位数字键则为其设定值。
其中,本设计的整体思路框图如下所示:
图1数字钟整体设计图
三数字钟的硬件设计
3.1总电路图
如图8所示:
P0口控制按键电路,P1口控制LED显示段码显示,P2口控制位码选通,P3口控制语音录放电路。
图8总电路图
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式;
另一种为外部时钟方式。
本文用的是内部时钟方式。
电路设计如图5所示。
图5单片机时钟
AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
在本系统时钟模块的设计中所选用的6MHz的石英振荡器,由于6MHz晶体振荡的每个定时周期为2μs,可得到2μs的精度,为让设计准确本设计中使用1次定时20ms,经过50次T0定时中断得到1s,由此设置就可以使单片机在运行时能够有条不紊。
3.4.2LED数码管的显示控制
在本设计中采用的是4位数码管动态扫描显示。
它将所有数码管的8个段线相应地并接在一起,并接到AT89S51的P0口,有P0口控制字段输出,而各位数码管的共阳极由AT89S51的P2口控制Q4-Q7来实现8位数码管的位输出控制。
这样,对于一组数码管动态扫描显示需要由两组信号来控制:
一组是字段输出口输出地字形代码,用来控制显示的字形,称为段码;
另一组是位输出口输出地控制信号,用来选择第几位数码管工作,称为位码。
由于各位数码管的段线并联,段码的输出对各位数码管来说是相同的。
因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,4位数码管将显示相同的字符,若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其他各位的位选线处于关闭状态。
同时,段线上输出相应位要显示字符的字型码。
这样在同一时刻,只有选通的那一位显示出字符,而其他各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。
数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。
数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。
若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。
所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
数码管是由7个条形的LED和下方一个圆形的LED组成,这样一共有8个段线,恰好适用于8位的并行系统。
数码管有共阴极和共阳极两种,共阴极数码管的公共阴极接地,当各段阳极上的电平为“1”时,该段点亮,电平为“0”时,该段熄灭;
共阳极数码管则正好与此相反,共阳极数码管的公共阳极接+5V,当各段阴极上的电平为“0”时,该段点亮,电平为“1”时,该段熄灭。
图9共阳极4位七段数码管公共端连接图
表1共阳极4位七段数码管段代码
字型
dp
g
f
e
d
c
b
a
段码
1
0FCH
60H
2
0DAH
3
0F2H
4
66H
5
0B6H
6
0BEH
7
0E0H
8
0FEH
9
0F6H
A
0EEH
B
3EH
C
9CH
D
7AH
E
9EH
F
8EH
举例1:
如果想让最右边的数码管显示“0”的话,首先将段码“0FCH”送达P0口,然后将P2.3清为低电平。
当P2.3为低电平时,三极管Q4导通,其该位数码管的公共阳极接至+5V,于是该位数码管就显示“0”。
程序如下:
MOVP0,#0FCH;
送段码到P0口
MOVP2,#7FH;
清P2.3为低电平
3.4.3本设计LED数码显示过程介绍
首先,S51芯片程序运行时,按下F1功能键,通过对P0及P2口扫描,4位数码管即显示当前的日期:
年月日(例如“2009/1204”,为动态显示,先显示年“2009”,再显示月日“1204”),日为时到00加1,当前日从1到28/29/30/31循环显示,月为日到28/29/30/31时加1,当前月从1到12循环显示,年为月到1加1,当前年加1显示;
按下F2功能键,通过对P0及P2口扫描,4位数码管即显示当前的时间:
时:
分/秒(例如16:
38/50,也是动态显示,先显示十分“16:
38”(此处需要多显示两点,dg3、dg4都为“0”即可)),然后显示秒,秒为加1显示。
分为秒到00后加1,当前分从00到59循环显示,时为分到00后加1,当前时从00到23循环显示。
这些都是从基本的经过50次T0定时中断(一次定时20ms)扫描得到1s,然后1秒计数60次即为1分,1分计数60此即为1时,1时计数24次即为1日,以此在数码管上输出显示。
当按F1或者F2、F3的次数改变时,即为调整当前数码管显示的日期和时间。
当消除键盘抖动后所扫描到准确的按键脉冲后,数码管显示进入调整日期和时间的状态。
按两下F1,此时可以分别调整年的显示;
按三下F1,调整月的显示;
按四下F1,调整日的显示。
按下F2,此时为时间时分秒的显示。
调整时;
然后按键盘上的数字键直接调整亦可按“+”和“-”分别加1减1来进行调整。
而按下F4则是启动定时功能,和调整日期和时间的方式一样,按下F4一下:
设定时开的分,或按键盘上的数字键直接调整或按“+”和“-”分别加1减1来进行调整闹铃时间均可。
数码管的显示会随着功能键的扫描而相应的变换当前显示。
3.5键盘扫描电路
3.5.1键盘扫描原理
本按键电路如图9所示,按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的长短常与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。
对按键的判断与处理模块是电子钟程序设计的核心,主要是接收“按键扫描模块”传递过来的值,对不同的按键能够结合当前的状态做出不同的处理与反馈,并且对各个状态从属分类。
在不同的状态下,各种按键的意义也都是不同的:
图10数字钟按键电路
3.5.2键盘工作方式
矩阵按键部分由16个轻触按键按照4行4列排列,连接到P1口。
将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入,这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
确定矩阵式键盘上有无键按下:
将全部行线置于低电平,然后检测列线的状态,只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4按键之中。
若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置:
在确认有键按下后,即可进入确定具体闭合键的过程,其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键,89S51单片机的P1口用作键盘I/O口,键盘的列线接到P1的低四位,键盘的行线接到P1口的高四位。
列线P1.0-P1.3设置为输入线,行线P1.4-P1.7设置为输出线,4根行线和4根列线形成16个相交点。
检测当前是否有键被按下,检测的方法是:
(1)P1.4-P1.7输出全为“0”,读取P1.0-P1.3的状态,若P1.0-P1.3全为“1”,则无键闭合,否则有键闭合。
(2)去除抖动。
当检测到有键按下后延时一段时间,做下一步的检测判断。
(3)若有键被按下,应识别出是哪一个键闭合,方法是对键盘的行线进行扫描,P1.4-P1.7按下述4种组合输出:
P1.7:
1110P1.6:
1101P1.5:
1011P1.4:
0111
(4)在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”的这一行没有键闭合,否则有键闭合,由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。
(5)为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动
3.5.3按键定义
本数字钟的键盘为4*4式按键矩阵,共有16个按键,分别为10个数字键、2个“+”、“-”按键及四个“F1”-“F4”功能按键。
在本设计中,按一下F1:
显示年月日,按两下F1:
调整日;
按一下F2:
显示时分秒,按下F3一下:
调整时,按下F3二下:
调整分;
设定时开的分(定时关用;
用软件延时30秒。
)。
按‘-’按键一次是修改数减1,按‘+’按键一次是修改数加1。
其余的各位数字键则在调整日期或者时间时为其本身的设定值。
3.6复位电路
AT89S51单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位:
上电复位电路时一种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
图11复位电路
如上图所示,上电自动复位是通过外部复位电路的电容充电来实现的。
只要VCC的上升时间不超过1ms,就可以实现自动上电复位。
3.7电源电路
如图12所示电路为输出电压+5V、输出电流1.5A的稳压电源。
它由电源变压器B,桥式整流电路D1~D4,滤波电容C1、C3,防止自激电容C2、C3和一只固定式三端稳压器(7805)极为简捷方便地搭成的。
图12电源电路
220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D1~D4和滤波电容C1的整流和滤波,在固定式三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。
此直流电压经过LM7805的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。
本稳压电源可作为TTL电路或单片机电路的电源。
三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。
四数字钟的软件设计
4.1系统软件设计内容
本系统的主程序主要完成时间显示和定时输出判断功能。
而年月日显示和各时间单元进位、时间设定时、调定时间设定时等功能全部在中断服务程序中完成。
4.1.1数据与代码转换
由前述可知,从P2口输出位选码,从P0口输出段选码,LED就会显示出数字来。
但P0口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。
可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数据的段选代码送入P0口,去驱动数码管显示。
具体转换过程如下:
我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD码,再放回A中,然后将A中的值输出。
如:
有一个单元存储了45这样一位数,则需转换成四位的BCD码:
(0100)(0101)然后放入A中。
A中BCD码,高位四位代表¡
4¡
低四位代表¡
5¡
同时送给两个译码器中,译码后“45”字就在两个LED中显示出来。
4.1.2计时功能的实现与中断服务程序
时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。
计数器T0打开后,进入计时,满100毫秒后,重装定时。
中断一次,满一秒后秒进位,满60秒后即为1分钟,分钟单元进位,60分到了后,时单元进位,24小时满后,天单元进位。
这样然后根据进率,得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED中显示出来,实现时钟计时功能。
累加是用指令INC来实现的。
进入中断服务程序以后,执行PUSHPSW和PUSHA将程序状态寄存器PSW的内容和累加器A中的数据保存起来,这便是所谓的”保护现场”.以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。
在软件的控制之下,堆栈可在片内RAM中的任一区间设定,而堆栈的数据存取与一般的RAM存取又有区别,对它的操作,要遵循”后进先出”的原则。
五总结
本电路硬件以AT89S51单片机为核心控制部件,以四位七段LED数码管为核心显示部件,以石英振荡器为主要计时部件,以4*4键盘为主要按键驱动部件。
然后通过程序实现对年、月、日、时、分、秒的数字显示,周期循环,走时精确,并具有校时功能、闹铃提示功能的多功能数字电子钟。
本设计系统规模虽然比较小,但是可扩展功能较多,操作简单,造价低,应用也会很广泛。
在此次的数字钟设计过程中,让我更进一步地熟悉了AT89S51芯片、数码管、键盘的结构和对S51学习板的各部分电路分析,并且还熟练地掌握了各个模块间的工作原理和其具体的使用方法,让我们深化了我们曾经所学过的关于单片机的构造和其使用的知识
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于AT89S51电子时钟毕业设计 gai 基于 AT89S51 电子 时钟 毕业设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)