51单片机led电子时钟的设计大学论文.docx
- 文档编号:9143949
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:26
- 大小:230.07KB
51单片机led电子时钟的设计大学论文.docx
《51单片机led电子时钟的设计大学论文.docx》由会员分享,可在线阅读,更多相关《51单片机led电子时钟的设计大学论文.docx(26页珍藏版)》请在冰豆网上搜索。
51单片机led电子时钟的设计大学论文
摘要
设计用AT89C51芯片的单片机作为控制部件的核心,显示方式使用动态扫描的方式,通过AT89C51单片机的控制,并结合7407驱动电路来作为显示电路的驱动部分,利用发光二极管来作为显示器件。
从而实现显示日期、定时、显示时间、闹铃等功能的显示通过6个发光二极管显示出来,同时,倒计时、进行调时、设置日期、设定闹铃等功能利用6个按键来实现。
各功能的实现都通过数码管相应的显示出来,定时时间或闹铃时间到时,蜂鸣器会自动响起,当按下定时键或闹铃键时,蜂鸣器声音会停止。
利用汇编语言来编写软件部分的程序,分为闹铃、延迟、调时、显示等部分。
通过软硬件结合来实现整体功能,从而,达到设计目的。
关键词:
电子钟;单片机;动态扫描;汇编语言
Abstract
DesignusingAT89C51chipmicrocontrollerasthecoreofthecontrolunit,displaymodeusingdynamicscanningway,byAT89C51singlechipmicrocomputercontrol,andcombinedwith7407drivenpartofthedrivingcircuitforuseasadisplaycircuit,usinglight-emittingdiodesasadisplaydevice.Soastorealizedisplaydatetime,time,alarmdisplaythrough6leddisplay,atthesametime,thecountdown,adjusting,setdate,setthealarmfunctionssuchasusingsixkeystoimplementation.Therealizationofeachfunctionisthroughdigitaltubedisplaythecorresponding,timeroralarmtimearrives,buzzerrang,automaticallywhenpressthetimerbuttonoralarmbutton,buzzersoundwillstop.Usingassemblylanguagetowritethesoftwarepartoftheprogram,isdividedintoalarm,suchasdelay,adjustment,displaypart.Combiningsoftwareandhardwaretoachievetheoverallfunction,thereby,tomeetthedesignpurpose.
Keywords:
Electricclock;MCU;Dynamicstatescanning;assemblerlanguage
1绪论
1.1电子时钟的研究背景
20世纪后期是电子技术发展的高速时期,毫无疑问,在此基础推动下,各种高科技电子产品大量应用到了社会的各个领域,这大大地促进了生产力的发展、综合科技水平的提高[1],但电子元器件被研发和淘汰的频率也日趋加快。
由于科学技术大力发展,人们生活节奏比较紧和全球化竞争的日益激烈,人们需要功能更加强大的数字钟来满足他们的生活,并且能更好的服务他们的生活。
应社会的需求,各种大的改变不得不发生在电子钟身上,这主要包括用途、性能、样式等方面。
闹钟、秒表等功能已经加在了电子钟身上。
同时人们经常用单片机来实现多功能数字钟[2]。
利用数字电路来对秒、时、分显示数字的电子产品,被叫做数字电子时钟。
其应用场所及其广泛,人们的生活已经和它密不可分,伴随石英晶体振荡器大量使用和数字集成电路大力研发,在精度方面,老式钟表已经无法与电子时钟相比,自从有了数字化钟表以后,人们的时间概念得到了进一步的强化,其中报时功能的进一步发展,让人们生活变的更加方便。
例如定时自动报警、准时开关路灯、定时通断电源、通断火力装置等,所有这些,源于钟表数字化。
因此,研究数字时钟及扩大其应用,有着重大意义[3]。
1.2电子时钟的国内外研究现状
自从数字电子时钟问世以来,它就给我们提供准确的时间,闹钟功能能够准确无误地提醒我们按时做事,就像是我们的家人朋友一样。
工业上的一些自动通断动力装置,能够根据需要及时通断动力,避免因工人的疏忽,而带来经济损失,因此方便了工人的工作。
大街上的自动开关路灯装置,方便了人们的生活。
学校里的电铃,能够根据学生上课时间与休息的需要而设定,这样方便了人为的打铃,也方便了学生的学习生活[4]。
许多种方案可以来设计电子时钟,其中,电子钟可以被中小规模的集成电路构成,还可以利用电子钟芯片,加显示电路和一些外围电路来构成,甚至对单片机编程来构成电子钟[5]。
其中,通过单片机构成的电子时钟外部结构更加简单、内部程序更加多样化、具有的功能也更多。
数字钟主要控制部件是单片机,所以通过单片机的时钟信号实现计时功能,经单片机传输出来的数据,在发光二极管或液晶显示器构成的显示器显示出来。
液晶显示技术或者数码管显示技术都是目前比较成熟的外部显示技术。
2器件概述
2.1MCS-51单片机简介
二十世纪九十年代,作为高科技云集的美国INTE公司开发出了MCS-51单片机,与MCS-48单片机相比,其结构先进,功能强大,更多的电路单元和指令加在MCS-51上,有111条指令,迄今为止,MCS-51系列或其兼容的单片机仍是相当成功的主流产品[6]。
8751、8031和8051等都是MCS-51系列单片机的主要通用产品,其功能主要如下:
程序存储器(ROM)、8位CPU、的数据存储器(RAM)
32条I/O口线、111条指令(大部分为单字节指令)
专用寄存器、可编程定时/计数器
全双工串行通信口
外部数据存储器寻址、外部程序存储器寻址、逻辑操作位寻址功能
单一+5V电源供电AT89C51单片机:
该单片机具有非常强大的功能,在达到基本设计标准的前提下,还能为满足进一步的标准而扩展。
单片机的结构如下:
图2.1单片机引脚图
在使用时上端VCC接+5V的电源,同时GND接地。
P0,P1,P2,P3可作为输入或输出端口,RST是复位输入,因此,接复位电路。
XTAL1和XTAL2接复位电路。
在硬件设计方面这都可以得到显现。
就是由于MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,被堪称为一代“名机”[7],奠定了以后其他单片机的发展基础。
许多厂商考虑到它结构的完善、性能的优越,因此,它的结构体系多被参考、沿用,MCS-51单片机也得到了丰富发展。
近年来C51被大力发展,INTEL公司是C51的鼻祖,在性能方面,PHILIPS公司为其性能的提高,做出了很大的贡献,使高速I/O口在原有基础上得到了发展,A/D转换器,PWM(脉宽调制)、WDT等功能也在很大程度上得到了增强,并在低电压、微功耗的情况下,扩展串行总线(I2C)和控制网络总线(CAN)等功能加以完善。
ATMEL公司推出的AT89Cxx系列兼容C51的单片机,完美地将Flash(非易失闪存技术)EEPROM与80C51内核结合起来,其仍采用C51的总体结构和指令系统,Flash的可反擦写程序存储器能有效地降低开发费用,并能使单片机作多次重复使用[8]。
正是由于51系列单片机的不断改进,使得其有了更为广泛的应用与发展;也正是由于其广泛的应用范围和广泛的发展,促使了51系列单片机的功能的不断完善。
单片机之所以在生活的各个领域都有很大的应用,是因为它所占体积空间不大,质量不笨重,况且非常便宜;同时不易被外界信号干扰;指令还特别多,扩展的功能也很多等优点,因此它在我们的日常生活中占据了重要地位,和我们的生活息息相关,这也成为很多商家和科研机构不断研发出新的单片机的原因,使单片机这个大家族也不断地壮大和发展。
根据目前电子产品的发展趋势,未来的单片机的功能会更多,速度会更快,各方面性能也会更高,而所需工作电压会更低,功率也会有很大的提高,这和未来世界低碳,环保,绿色,低污染,甚至零污染的发展趋势相一致,相信到那个时候,单片机更是我们生活的助手。
2.2电子钟
电子钟即数显钟(数字显示钟),它的时、分、秒的计时是利用数字电路完成的,它更直观,寿命更长,更准确。
电子钟能够用来显示时间这是人们所熟知的、闹钟功能能够提醒人们准确的时间,这也得到了应用,随着工业自动化的加速发展,电子钟也用在了工业设备的控制。
2.3LED数码管的原理
把多数载流子和少数载流子注入到半导体PN结中中合的时候,就会以光能的形式将剩余的能量释放到外部,这样等于说把电能转换成了光能。
当给PN结通上相反的电压时,载流子相互之间进行排斥,不发生能量的中和,不会有剩余的能量释放出来,所以不会亮。
根据加同相电压亮的原理制成的二极管被称作发光二极管,英文简称为LED,全称为LightEmittingDiode。
8字形构成的LED数码管,如图2.2所示,分别由字母A,B,C,D,E,F,G,DP来表示,DP表示小数点,数码管特定的段加上电压后,特定的段就会亮[9]。
发光二极管的阴极连接到一起连接到低电平的称为共阴极数码管,如图2.3所示,发光二极管的阳极连接到一起连接到电源正极的称为共阳极数码管,如图2.4所示。
图2.2数码管
图2.3共阴极数码管
图2.4共阳极数码管
各段码位的对应关系,如表2.1所示:
表2.1码位对应关系
段码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
Dp
g
f
e
d
c
b
a
LED显示断码如表2.2所示:
根据我们所采用的8051单片机的特点,我们选用共阴极数码管。
将8051的P0.0~P0.7通过74LS245芯片与共阴极数码管的a~p相连,高电平的位对应的LED数码管的段亮,低电平的位对应的LED数码管的段暗,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符[10]。
表2.2LED显示段码
字型
共阳极段码
共阴极段码
字型
共阳极断码
共阴极段码
0
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
B0H
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
84H
71H
7
F8H
07H
—
FFH
00H
8
80H
7FH
P
8CH
73H
2.4LED数码管驱动方式
LED数码管要正常显示出所需要的数字,就应该使得所对应的段码用驱动电路来驱动。
所以按照驱动方式分为静态式和动态式。
2.4.1静态显示驱动
静态驱动也称直流驱动。
若数码管显示为某一个字符时相应的发光二极管恒定导通或截止。
静态显示方式时所有数码管同时点亮[11],字符显示的时候加在数码管上的七段码不会改变,也就是说每一个数码管对应一个8位I/O接口,所以占用的硬件资源较多。
2.4.2动态显示驱动
动态显示是轮流点亮各数码段,不断扫描显示器。
任何时刻只给一个数码管通电,通电一定时间后再给下一个数码管通电[12]。
只要刷新率足够高,动态显示方式同样可以实现稳定显示。
动态显示优点是节约I/O口。
3设计方案
这个电子钟的设计工作分以下几步骤,第一,需要清楚知道单片机等硬件的结构,包括引脚的具体作用,甚至明确各寄存器、存储单元的详细用法,要不然,我们根本无法编程,也不能做硬件电路的相关设计。
第二,根据想要实现的功能逐个设计所对应的硬件电路,例如输入的开关电路,输出的显示驱动电路和数码管电路等。
第三,学习并掌握汇编语言编程,之后要编写对应硬件电路所实现功能的程序,再用编好的程序来调试对应的硬件电路,验证能否得到预先想要的结果。
第四,根据软件执行过程画出流程图,并画出设计好的电路图。
第五,进行软件的仿真:
将写好的程序加载到单片机以及一些芯片中,结合外部硬件电路来验证程序部分的对错,以及硬件电路设计的是否合理,不断进行验证修改,直到达到设计目的为止。
第六,功能的扩展:
本设计加进了日期显示功能与调整功能。
4硬件电路设计
根据对电子钟系统的全面把握,和具体各个部分所要完成的任务,对所需要的各个部分的电路做详细的设计。
4.1复位电路
利用外部的复位电路来完成51单片机的复位。
一个斯密特触发器连接了外部的复位电路与RST复位引脚,抑制噪声,是斯密特触发器在此的特殊作用。
上电复位:
上电复位电路是相对比较简单的复位电路,将RST复位引脚和一个电容连接在一起,并连接到VCC端,RST另一端和一个电阻连接起来,并一起接地即可。
上电复位是指在给系统上电时,复位电路就是将一个短暂的高电平信号经过电容加到RST复位引脚的电路。
复位信号会依据VCC给电容的充电而降低,所以RST引脚复位的高电平维持时间的长短决定于电容的充电时间长短[13]。
电路图如下:
图4.1复位电路
上电自动复位是利用电容器的充电完成的。
自动上电复位的条件是VCC的上升时间不超过1ms即可。
4.2按键电路
按键电路是指利用特定的电路将高、低电平状态与按键开关状态建立起一定的联系。
按键闭合就会有一个负脉冲在相应的I/O口出现。
闭合和释放都需要经过一段时间趋于稳定,此现象的原因在于高低电平的抖动造成的。
抖动时间的长短取决于开关的机械特性,维持在5-10ms间。
只有消除抖动,才能防止CPU连续解决按键一次闭合。
为此我们特意采用的是独立式按键,一个按键只占用一条I/O口线只构成一个按键电路,这样工作的时候各个按键不会导致相互干扰。
电路图如图4.2所示:
图4.2按键电路
当P1.0低电平时,说明有健按下,并且是对秒进行调节;当升成高电平时,表示停止调秒。
当P1.1低电平时,同样说明有健按下,并且是对分进行调节;当升成高电平时,表示停止调分。
P1.2变低电平,有健按下进行调时,当升高电平,停止调节。
4.3时钟电路
时钟是单片机的心脏,时钟频率是单片机各结构工作的最小单位,单片机各结构都按照时钟频率的步骤有序地进行各自的工作。
所以,单片机运行速度地快慢在很大程度上受时钟频率影响,干扰单片机系统稳定的另一个因素则是时钟电路的质量。
常用的两种时钟电路方式内部时钟方式和外部时钟方式。
本文用的是内部时钟方式。
电路图如图4.3所示:
图4.3时钟电路
4.4显示控制电路
我们使用发光二极管构成的共阴极结构作为显示结构。
所以,当我们将高电平加到相应的数码管上时,对应的数码管发出光来。
将数码管的数字输入端和总线连接起来,数位控制由单片机来进行,数位数码管同时显示是利用循环扫描技术,再结合人眼视觉暂留来共同实现的效果。
其原理示意图如图4.4所示:
图4.4显示控制电路
4.5数码管显示电路
数码管显示器之所以被普遍采用,是因为其配置灵活多洋,结构简单,造价低廉。
作为单片机的显示部件使用已成为不错的选择。
数码管的工作原理:
数码管的每一个数码段是一个发光二极管,当给发光二极管加正相电压,且足以使其导通时,此发光二极管发光,控制发光二极管发光组合,可以显示所需字符。
由八个发光二极管构成的显示器件。
在数码管中,若将二极管的阳极连在一起,通过阴极控制其显示,则构成共阳极结构;若将各发光二极管的阴极连在一起,通过阳极控制其显示,则构成共阴极结构。
我们用到的八个数码管构成共阴极结构。
若发光二极管导通时发光。
一个发光二极管构成一个笔划,若干个发光的二极管构成一字符。
把控制相应芯片的单片机的输入、输出接口与数码管的a-g相接,此时,输出高电平的端口所接的发光二极管变亮,那么,通过控制I/O口输出代码的不同,就能够让数码管显示出不一样的字符。
本文显示当前时间的数码管均采用的是动态显示方式。
4.6电源电路设计
电源电路通过利用变压器可以将220V的交流电压变为5V的交流电压,再利用桥式整流电路将交流电变成脉动的直流电,然后经过电容的滤波作用,滤去脉动直流中的交流成分,有些电路对电源要求比较高,就要用稳压器的稳压作用,最后输出5V的稳定电压。
我们在设计中可以借助实验室的数字工作箱来设计。
4.7时钟芯片模块
本设计用DS12887时钟芯片,能够提高电子钟的精确度,单片机采取并联总线的方式与时钟芯片实现通信,从而进行显示时间。
4.8综合电路的实现
根据以上各部分电路的分析与设计,再考虑到所设计的电子钟具有实现时,分,秒24小时制的功能,另外还有调时调分调秒的扩展功能。
我们设计出如下的综合电路,如图4.5所示:
图4.5电子钟基本部分参考电路原理图
4.9本章小结
本章介绍的是本设计的硬件结构,单片机的相关I/O口输入输出就可以实现相应的控制功能。
还介绍了单片机的复位电路和时钟电路。
5软件程序设计
5.1设计方案
在硬件设计结束以后,紧接着将是本设计中最重要的软件部分设计。
把对软件的具体需求转换成对软件的具体设计方案,这一过程被叫作软件设计。
本设计是从总体上把握所要实现的功能,然后将大的功能依据要求和硬件设计的结构,分割成各个小的功能模块,根据各个功能模块编写实现其功能的对应程序,这种设计方案被称作模块化结构设计,这样得设计方案能够让系统的整体功能和各部分的功能更加趋于明朗化。
一旦系统有问题,我们就能够从功能设置来发现问题的根源,从而迅速解决问题。
5.2程序流程图
图5.1主程序流程图
上图为主程序流程图,其清晰的反应了整个程序的执行过程。
主程序开始以后,就会进入到设定定时器常数,并且开中断阶段,紧接着会进行一个是否到一秒的判断,如果到了一秒,就会进入显示时间阶段,如果不到一秒则会返回,等到一秒时,再进行显示时间。
由于程序图能够给我们清晰的思路,所以绘制了中断服务程序流程图如下:
图5.2中断服务程序流程图
图5.3时钟调整子程序流程图
5.3源程序
中断入口程序:
ORG0000H;程序执行开始地址
LJMPSTART;跳到标号START执行
ORG0003H;外中断0中断程序入口
RETI;外中断0中断返回
ORG000BH;定时器T0中断程序入口
LJMPINTT0;跳至INTTO执行
ORG0013H;外中断1中断程序入口
RETI;外中断1中断返回
ORG001BH;定时器T1中断程序入口
LJMPINTT1;跳至INTT1执行
ORG0023H;串行中断程序入口地址
RETI;串行中断程序返回
主程序:
START:
MOVR0,#70H;清70H-7AH共11个内存单元
MOVR7,#0;
CLRR3.0;CLEARDISP:
MOV@R0,#00H;
INCR0;
DJNZR7,CLEARDISP;
MOV20H,#00H;清20H(标志用)
MOV7AH,#0AH;放入"熄灭符"数据
MOVTMOD,#11H;设T0、T1为16位定时器
MOVTL0,#0B0H;50MS定时初值(T0计时用)
MOVTH0,#3CH;50MS定时初值
MOVTL1,#0B0H;50MS定时初值(T1闪烁定时用)
MOVTH1,#3CH;50MS定时初值
SETBEA;总中断开放
SETBET0;允许T0中断
SETBTR0;开启T0定时器
MOVR4,#14H;1秒定时用初值(50MS×20)
START1:
LCALDISPLAY;调用显示子程序
JNBP3.7,SETMM1;P3.7口为0时转时间调整程序
SJMPSTART1;P3.7口为1时跳回START1
SETMM1:
LJMPSETMM
T0中断程序:
INTT0:
PUSHACC;累加器入栈保护
PUSHPSW;状态字入栈保护
CLRET0;关T0中断允许
CLRTR0;关闭定时器T0
MOVA,#0B7H;中断响应时间同步修正
ADDA,TL0;低8位初值修正
MOVTL0,A;重装初值(低8位修正值)
MOVA,#3CH;高8位初值修正
ADDCA,TH0
MOVTH0,A;重装初值(高8位修正值)
SETBTR0;开启定时器T0
DJNZR4,OUTT0;20次中断未到中断退出
ADDSS:
MOVR4,#14H;20次中断到(1秒)重赋初值
MOVR0,#71H;指向秒计时单元(71H-72H)
ACALLADD1;调用加1程序(加1秒操作)
MOVA,R3
CLRC;清进位标志
CJNEA,#60H,ADDMM
ADDMM:
JCOUTT0;小于60秒时中断退出
ACALLCLR0
MOVR0,#77H;指向分计时单元(76H-77H)
ACALLADD1;分计时单元加1分钟
MOVA,R3;分数据放入A
CLRC;清进位标志
CJNEA,#60H,ADDHH
ADDHH:
JCOUTT0;小于60分时中断退出
ACALLCLR0
MOVR0,#79H;指向小时计时单(78H-79H)
ACALLADD1;小时计时单元加1小时
MOVA,R3;时数据放入A
CLRC;清进位标志
CJNEA,#24H,HOUR
HOUR:
JCOUTT0;小于24小时中断退出
ACALLCLR0
OUTT0:
MOV72H,76H
MOV73H,77H;入对应显示单元
MOV74H,78H;
MOV75H,79H;
POPPSW;恢复状态字(出栈)
POPACC;恢复累加器
SETBET0;开放T0中断
RETI;中断返回
T1中断服务程序,用作时间调整时调整单元闪烁指示:
INTT1:
PUSHACC;中断现场保护
PUSHPSW;
MOVTL1,#0B0H;装定时器T1定时初值
MOVTH1,#3CH;
DJNZR2,INTT1OUT;0.3秒未到退出中断(50MS中断6次)
MOVR2,#06H;重装0.3秒定时用初值
CPL02H;0.3秒定时到对闪烁标志取反
JB02H,FLASH1;02H位为1时显示单元"熄灭"
MOV72H,76H;02H位为0时正常显示
MOV73H,77H;
MOV74H,78H;
MOV75H,79H;
INTT1OUT:
POPPSW;恢复现场
POPACC;
RETI;中断退出
FLASH1:
JB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 led 电子 时钟 设计 大学 论文