单片机LED数码管电子钟Word文档格式.docx
《单片机LED数码管电子钟Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机LED数码管电子钟Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
单片机的应用属于芯片级应用,需要用户(单片机学习者与使用者)了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使该芯片具备特定的功能。
不同的单片机有着不同的硬件特征和软件特征,即它们的技术特征均不尽相同,硬件特征取决于单片机芯片的内部结构,用户要使用某种单片机,必须了解该型产品是否满足需要的功能和应用系统所要求的特性指标。
这里的技术特征包括功能特性、控制特性和电气特性等等,这些信息需要从生产厂商的技术手册中得到。
软件特征是指指令系统特性和开发支持环境,指令特性即我们熟悉的单片机的寻址方式,数据处理和逻辑处理方式,输入输出特性及对电源的要求等等。
开发支持的环境包括指令的兼容及可移植性,支持软件(包含可支持开发应用程序的软件资源)及硬件资源。
要利用某型号单片机开发自己的应用系统,掌握其结构特征和技术特征是必须的。
单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
本文就以电子钟设计为例,了解单片机应用特点。
目录
前言
一、基本内容概述
1.1电子钟系统硬件组成………………………………………………………(5)
1.1.1AT89C51单片机简介………………………………………………(5)
1.1.2LED数码管简介………………………………………………………(5)
1.1.3硬件连接……………………………………………………………(5)
二、软件设计
2.1汇编语言……………………………………………………………………(6)
2.2C语言编程…………………………………………………………………(9)
三、误差修正
3.1走时误差……………………………………………………………………(12)
3.2原因分析……………………………………………………………………(12)
3.3解决方法……………………………………………………………………(13)
3.3.1高精度晶振方案………………………………………………………(13)
3.3.2动态同步修正方案……………………………………………………(13)
四、思路创新
4.1自动调整方案………………………………………………………………(14)
五、总结
参考文献…………………………………………………………………………(15)
LED数码管电子钟
LED数码管电子钟由硬件、软件组成,本文着重讲述软件汇编与C语音。
1.1电子钟系统硬件组成
AT89C51单片机、LED数码管、按键电路
1.1.1AT89C51单片机简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.1.2LED数码管简介
LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。
1.1.3硬件连接
以AT89C51为核心连接LED数码管以及按键,图为单片机电子钟电路图。
单片机电子钟软件部分采用汇编语言与C语音编程。
2.1汇编语言
S_1EQU30H;
秒寄存器
M_1EQU31H;
分寄存器
H_1EQU32H;
時寄存器
A_1EQU33H;
自动调整寄存器
ORG00H
LJMPSTART
ORG03H
RETI
ORG0BH;
定时中断入口
LJMPTIMER
ORG13H
ORG1BH
ORG30H
START:
MOVS_1,#0;
秒、分、時寄存器清0
MOVM_1,#0
MOVH_1,#0
MOVA_1,#0
MOV20H,#10;
0.5秒钟中断次数,0.5s=500ms=50msx10
MOV21H,#2;
2个0.5秒即为1秒
MOVSP,#40H;
堆栈指针设置
MOVIE,#82H;
开定时器0中断及总中断
MOVTMOD,#01H;
定时器0模式1
MOVTH0,#03CH;
50ms初值
MOVTL0,#0B0H
SETBTR0;
启动定時器0
LOOP:
ACALLDISP;
调试显示
JNBP3.4,MT;
查询分调整键
JNBP3.5,HT;
查询时调整键
AJMPLOOP
MT:
;
分调整
ACALLDISP
JNBP3.4,MT;
键消抖
INCM_1;
分加1
MOVA,M_1
CJNEA,#60,LOOP;
没到60分返回,到60分清0
HT:
时调整
JNBP3.5,HT
INCH_1
MOVA,H_1
CJNEA,#24,LOOP
DISP:
;
显示子程序
MOVDPTR,#NUMTAB;
表地址送数据指针
MOVA,M_1;
分送A
MOVB,#10
DIVAB;
十进制调整
ADDA,R0;
查表偏移量调整
MOVCA,@A+DPTR;
查表
MOVP1,A;
分十位送p1口显示
CLRP3.2;
开分十位显示
ACALLD1MS;
延時1ms
SETBP3.2;
关显示
MOVA,B;
分个位p1口显示
ADDA,R0
MOVCA,@A+DPTR
MOVP1,A
CLRP3.3
ACALLD1MS
SETBP3.3
MOVA,H_1;
时送A
MOVB,#10
DIVAB
ADDA,R0
MOVP1,A
CLRP3.0;
显示时十位
SETBP3.0
MOVA,B
CLRP3.1;
显示时个位
SETBP3.1
RET;
返回
TIMER:
定時中断程序
PUSHACC;
数据保护
PUSHPSW
MOVA,#0B1H;
同步修正
ADDA,TL0
MOVTL0,A;
重置50ms定時值
MOVTH0,#03CH
DJNZ20H,RETI_1;
到0.5秒了嗎?
MOV20H,#10
CPL25H.0;
取反秒点闪烁
JNB25H.0,T_1;
标志位为0转T_1
MOVR0,#0;
查表偏移量寄存器置0(不显示秒点)
AJMPT_2
T_1:
MOVR0,#10;
查表偏移量寄存器置10(显示秒点,秒点每秒闪烁1次)
T_2:
DJNZ21H,RETI_1;
到1秒了嗎?
MOV21H,#2
INCS_1;
秒加1
MOVA,S_1
CJNEA,#60,RETI_1;
到60秒了?
到60秒清0
INCM_1;
MOVA,M_1
到60分了?