基于单片机的数字钟设计Word文档下载推荐.docx
- 文档编号:16707517
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:22
- 大小:499.65KB
基于单片机的数字钟设计Word文档下载推荐.docx
《基于单片机的数字钟设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字钟设计Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
引言
在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品到大的工业控制,单片机都起到了举足轻重的作用。
单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。
而数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做单片机数字钟就是为了了解数字钟及单片机的原理,从而学会制作数字钟。
而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法,且由于数字钟包括组合逻辑电路和时叙电路,通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与理论方法。
一系统设计方案
1设计要求
1.1设计任务:
本课题要求设计出一种小型的数字钟,以单片机为主要部件,实现电子钟的计时功能。
要求至少完成完成电路的设计,并详细的阐述系统的工作原理;
列出组成设备的元器件及器材清单;
元器件及器材相关参数要求及检测方法。
1.2技术指标
时间以60分种为一个周期,电子钟的格式为:
XXXX,由左向右分别为:
分、秒。
完成显示由秒01一直加1至59,再恢复为00;
分加1,由00至01,一直加1至59,再恢复00
2单片机的基本原理
2.1单片机的基本结构:
运算器:
用于实现算术和逻辑运算。
计算机的运算和处理都在这里进行;
控制器:
是计算机的控制指挥部件,使计算机各部份能自动协调的工作;
存储器:
用于存放程序和数据(又分为内存储器和外存储器,内存储器就如我们电脑的硬盘,外存储器就如我们的U盘);
输入设备:
用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪);
输出设备:
输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。
中央处理器(CPU):
MCS-51的CPU能处理8位二进制数或代码;
内部数据存储器(RAM):
8051芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。
因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。
地址范围为00H~FFH(256B)。
是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。
内部程序存储器(ROM):
在前面也已讲过,8051内部有4KB的ROM,用于存放程序、原始数据或表格。
因此称之为程序存储器,简称内部RAM。
地址范围为0000H~FFFFH(64KB)。
定时器/计数器:
8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。
并行I/O口:
MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。
具体功能在后面章节中将会详细论述。
串行口:
MCS-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。
该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。
RXD(P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。
中断控制系统:
MCS-51单片机的中断功能较强,以满足不同控制应用的需要。
共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。
时钟电路:
MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。
时钟电路为单片机产生时钟脉冲序列。
系统允许的晶振频率为12MHZ。
2.2单片机型号的选择
1、型号:
MCS–51系列
2、51系列的有很多厂家的,AT公司的、STC公司的等只有几块钱到几十块钱,当然C8051F的从十块钱左右至几百块钱,也就是说C8051F的稍微贵一点。
3、由于本次设计要求不是很高所以选用中等价位的比较合适。
2.3译码器原理
显示译码器CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码—七段码译码器,特点如下:
具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。
可直接驱动LED显示器。
用CD4511实现LED与单片机的并行接口方法如下图
(2)
图
(1)CD4511引脚
其功能介绍如下:
BI:
4脚是消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示字。
图
(2)CD4511引脚
LT:
3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮,显示“8”。
它主要用来检测数码管是否损坏。
LE:
锁定控制端,当LE=0时,允许译码输出。
LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。
A1、A2、A3、A4、为8421BCD码输入端。
a、b、c、d、e、f、g:
为译码输出端,输出为高电平1有效。
CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。
1.CD4511的引脚
CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。
其引脚图如3所示。
各引脚的名称:
其中7、1、2、6分别表示A、B、C、D;
5、4、3分别表示LE、BI、LT;
13、12、11、10、9、15、14分别表示
a、b、c、d、e、f、g。
左边的引脚表示输入,右边表示输出,还有两个引脚8、16分别表示的是VDD、VSS。
2.CD4511的工作原理
(1)锁存功能
译码器的锁存电路由传输门和反相器组成,传输门的导通或截止由控制端LE的电平状态。
当LE为“0”电平导通,TG2截止;
当LE为“1”电平时,TG1截止,TG2导通,此时有锁存作用。
(2)译码
CD4511译码用两级或非门担任,为了简化线路,先用二输入端与非门对输入数据B、C进行组合,得出
、
四项,然后将输入的数据A、D一起用或非门译码。
(3)消隐
BI为消隐功能端,该端施加某一电平后,迫使B端输出为低电平,字形消隐。
消隐控制电路如图3-4所示。
消隐输出J的电平为
J=
=(C+B)D+BI
如不考虑消隐BI项,便得J=(B+C)D
据上式,当输入BCD代码从1010---1111时,J端都为“1”电平,从而使显示器中的字形消隐。
8421BCD码对应的显示见下图:
图(3)
选用共阴极数码管,对于CD4511,它与数码管的基本连接方式如下图(4):
图(4)
二系统的硬件设计
1显示原理
电路原理见下图6。
由6个共阴极的数码管组成时、分、秒的显示。
P0口的8条数据线P0.0至P0.7分别与两个CD4511译码的ABCD口相接,P2口的P2.0至P2.2分别通过电阻R10至R13与VT1至VT3的基极相连接。
这样通过P0口送出一个存储单元的高位、低位BCD显示代码,通过P2口送出扫描选通代码轮流点亮LED1至LED6,就会将要显示的数据在数码管中显示出来。
从P0口输出的代码是BCD码,从P2口输出的就是位选码。
这是扫描显示原理。
2数码管结构及代码显示
共阴LED数码管由8只发光二极管VD1至VD8共阴连接并按.8.字形结构排列而成。
这样,我们将这些二极管的正极接高低不同的电位,把所有的负极接地,当正极为高电位时相应的二极管就会导通而发光,从而使数码管呈现不同的字符。
而只有P2相应呈现高电位,VT个管导通,LED1的GND与地相接,LED位被选中才具备发光的使能条件;
可见,在利用P2口送出位选码,使各位轮流得到发光使能条件的同时,通过P0口分别送出不同的段选码,就会在LED1至LED4中显示出不同的数字来。
3键盘及读数原理
键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。
可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms.
4连击功能的实现
按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则执行下一条对应程序。
利用连击功能,能实现快速调时操作。
图(5)电路原理图
三系统的软件设计
1程序流程图
图(6):
实验主程序流程图
2中断程序流程图
图(7):
定时中断流程图
中断方式应注意的问题:
采用中断的方式,最好将定时器中断的优先级设置为最高级,关于程序数据的稳定性应注意两个问题:
一,在低优先级中断响应时,应在入栈保护数据时禁止高优先级的中断响应。
二,在入栈保护有关数据后,对中断程序执行有影响的状态位,寄存器,必须恢复为复位状态的值。
例如,在以下程序中,由于用到了十进制调整,所以在中断进入时,将PSW中的AC,CY位清零,否则,十进制调整出错。
3调整功能流程图
(8)调整功能流程图
四调试结果说明
在调试的过程中出现拉很多的问题,真对这些问题我进行拉系统的分析.
1数据与代码转换
由前述可知,从P2口输出位选码,从P0口输出段选码,LED就会显示出数字来。
但P0口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。
可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数据的段选代码送入P0口,给CD4511译码后去驱动数码管显示。
具体转换过程如下:
我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD码,再放回A中,然后将A中的值输出。
如:
有一个单元存储了45这样一位数,则需转换成四位的BCD码:
(0100)(0101)然后放入A中。
A中BCD码,高位四位代表.4.低四位代表.5.同时送给两个译码器中,译码后.45.字就在两个LED中显示出来。
2计时功能的实现与中断服务程序
时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。
计数器T0打开后,进入计时,满100毫秒后,重装定时。
中断一次,满一秒后秒进位,满60秒后即为1分钟,分钟单元进位,60分到了后,时单元进位,24小时满后,天单元进位。
这样然后根据进率,得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED中显示出来,实现时钟计时功能。
累加是用指令INC来实现的。
进入中断服务程序以后,执行PUSHPSW和PUSHA将程序状态寄存器PSW的内容和累加器A中的数据保存起来,这便是所谓的.保护现场..以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。
在软件的控制之下,堆栈可在片内RAM中的任一区间设定,而堆栈的数据存取与一般的RAM存取又有区别,对它的操作,要遵循.后进先出.的原则。
3时钟误差分析
开启定时器/计数器0,使之开始计时,中断后进入中断程序。
自停止计数到、计数又开始,中间执行了7条指令,也就是延迟了13个单周期共用时间26us,这样,每个中断的总时间应为为100.026sm,而原来定时是100ms,,所以,也就是说每次中断定时多了26um.这样,可改变计数重装值,使每次中断定时时间为99.974sm,加上原来的7条指令所用的时间,正好100sm.计数10次得1s.这样就可得到较精确的计时秒数,然后根据进率,得到时、分的值。
4时间控制功能与比较指令
系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:
先将执行设备开启的时间和关闭时间置入RAM某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR指令,将对应的那路P3置为高电位,开启;
如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB对应的P3置低电位,二极管截止,。
实现此控制功能用到的比较指令为CJNEA,#direct,rel,其转移条件是累加器A中的值与立即数不等则转移。
五总结
这次对数字钟的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念。
在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法.
在连接单片机与其他外部电路的实验中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了.在设计电路中,对单片机的编程的进一步的熟悉与学习让我明白拉许多自己没有掌握的功能,对单片机有拉更深刻的理解。
在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的。
接线的时候一定要细心,不要接错,同时也要学会如何判别芯片的好坏,要是芯片坏了即使接线再正确也出不来结果。
对自己的设计图要仔细考虑,反复调试只有这样我们才能找到自己的不足从不足中学习。
通过这次数字钟的设计,让我对各种电路都有了大概的了解,也学会了常用绘图软件的使用。
所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解,才会有收获。
致谢
通过此次毕业设计培养了我综合运用所学的基础理论课、技术基础课、专业课的知识和实践技能去分析和解决实际工作中的一般工程技术问题的能力,使我建立了正确的设计思想,学会了如何把三年所学的理论知识运用到实践当中去。
掌握了单片机的数字时钟设计的一般程序、规范和方法,并进一步巩固、扩大和深化了我所学的基本理论,基本知识和基本技能,提高了我设计计算、计算机制图、设计说明书、正确使用技术资料,标准手册等工具书的能力。
在毕业设计的过程中,虽然本人在指导老师的帮助下对所设计的问题有初步的实习调研。
但由于本人缺少实际工作经验,遇到了一些设计和实际加工中的问题,受到师傅和指导老师的指导与帮助,从而得到了全面的解决同时也受到各位老师优良工作作风的影响,培养了我严肃认真、一丝不苟和实事求是的工作作风,并树立了正确的生产观、经济观和全局观。
在设计中,由于个人能力有限,设计中漏洞和错误在所难免,敬请各位老师指正批评,以使我对自己的不足得到及时发现并修正。
通过此次毕业设计,希望能把所学的知识有机的联系起来,培养自己分析问题,解决问题的能力,为充实自己,并在未来工作岗位上好好工作打下坚实的基础。
在这里,向在这次毕业设计中给予过帮助我的老师表示衷心的谢意。
薛艳艳
参考文献
张专成赵怀勋.单片机测控系统中的监视定时器.武警技术学院.Mar1007
李红涛,一种单片机控制的多用途定时打铃器。
电子世界。
1990年第二期
张景园,基于单片机的设计与实现。
电子工程师2000年第8期
何亚军李超。
基于单片机控制的高精度定时打铃器的设计。
电子技术。
2001年第七期
关宗安中丛久。
基于单片机实现的多路定时控制器的设计。
沈阳航空工业学院学报2004年6月
Maxim公司.NeweweleadsesDataBook1996
皮红梅李英顺。
单片机开发中的定时方法。
沈阳石油化工高等专科学校学报。
2002年12月
胡汉才。
单片机原理及接口技术,北京:
清华大学出版社。
1996
余永权。
单片机与家用电器智能化设计。
北京:
电子工业出版社。
1995
方晓翠,王金凤。
单片机微型计算机与机电
接口技术。
北京国防工业出版社。
2002
附录一
程序清单
ORG0000H;
程序执行开始地址
LJMPSTART;
跳到标号START执行
ORG0003H;
外中断0中断程序入口
RETI;
外中断0中断返回
ORG000BH;
定时器T0中断程序入口
LJMPINTT0;
跳至INTTO执行
ORG0013H;
外中断1中断程序入口
外中断1中断返回
ORG001BH;
定时器T1中断程序入口
LJMPINTT1;
跳至INTT1执行
ORG0023H;
串行中断程序入口地址
串行中断程序返回
主程序:
START:
MOVR0,#70H;
清70H-7AH共11个内存单元
MOVR7,#0BH;
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;
SETBEA;
总中断开放
SETBET0;
允许T0中断
SETBTR0;
开启T0定时器
MOVR4,#14H;
1秒定时用初值(50MS×
20)
START1:
LCALLDISPLAY;
调用显示子程序
JNBP3.7,SETMM1;
P3.7口为0时转时间调整程序
SJMPSTART1;
P3.7口为1时跳回START1
SETMM1:
LJMPSETMM;
转到时间调整程序SETMM
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;
秒数据放入A(R3为2位十进制数组合)
CLRC;
清进位标志
CJNEA,#60H,ADDMM;
ADDMM:
JCOUTT0;
小于60秒时中断退出
ACALLCLR0;
大于或等于60秒时对秒计时单元清0
MOVR0,#77H;
指向分计时单元(76H-77H)
分计时单元加1分钟
MOVA,R3;
分数据放入A
CLRC;
CJNEA,#60H,ADDHH;
ADDHH:
JCOUTT0;
小于60分时中断退出
大于或等于60分时分计时单元清0
MOVR0,#79H;
指向小时计时单元(78H-79H)
小时计时单元加1小时
时数据放入A
CJNEA,#24H,HOUR;
HOUR:
小于24小时中断退出
大于或等于24小时小时计时单元清0
OUTT0:
MOV72H,76H;
中断退出时将分、时计时单元数据移
MOV73H,77H;
入对应显示单元
MOV74H,78H;
MOV75H,79H;
POPPSW;
恢复状态字(出栈)
POPACC;
恢复累加器
开放T0中断
RETI;
中断返回
闪动调时程序:
T1中断服务程序,用作时间调整时调整单元闪烁指示
INTT1:
中断现场保护
MOVTL1,#0B0H;
装定时器T1定时初值
MOVTH1,#3CH;
DJNZR2,INTT1OUT;
0.3秒未到退出中断(50MS中断6次)
MOVR2,#06H;
重装0.3秒定时用初值
CPL02H;
0.3秒定时到对闪烁标志取反
JB02H,FLASH1;
02H位为1时显示单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 设计