单片机计时时钟制作Word文档格式.docx
- 文档编号:19891827
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:27
- 大小:26.58KB
单片机计时时钟制作Word文档格式.docx
《单片机计时时钟制作Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机计时时钟制作Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
2)具有显示“时时分分”
3)按键功能:
分调整,时调整。
2发挥部分:
1)能设定闹钟功能。
2)能演奏音乐。
四、电路组成及工作原理
本文时钟设计原理主要利用AT89C51单片机,由单片机的P0口控制数码管的位显示,P2口控制数码管的段显示,P1口与按键相接用于时间的校正。
在设计中引入两个电源电路,一个是外部电源系统产生+5V电压,用于给CPU及显示电路提供工作电压,这是数字时钟正常工作时的总电压。
另一个是备用电源,当外部电源关断时由它提供工作电压使CPU继续工作,利用单片机的空闲方式降低功耗,数码管不显示但能使计时保持正常,不会造成掉电时计时清零的现象。
针对内外两个电源情况又加入了MC34064电压检测电路,用于时实判断是哪各电源在工作。
整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
显示电路将“时”、“分”、“秒”计数器的输出,通过六个七段LED显示器显示出来。
校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”电路组成及工作原理
五、单片机系统
单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。
这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
本文采用的单片机为AT89C51,AT89C51是一种低功耗、高性能的片内含有4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
它的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
六、AT89C51的主要性能参数:
与MCS-51产品指令系统完全兼容
4k字节可重擦写FLASH闪速存储器
1000次擦写周期
全静态操作:
0Hz—24MHz
三级加密程序存储器
128×
8字节内部RAM
32个可编程I/O口线
2个16位定时/计数器
6个中断源
可编程串行URAR通道
低功耗空闲和掉电模式
AT89C51提供以下标准功能:
4k字节FLASH闪速存储器,128字节内部RAM,32个I/O口线,2个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式。
空闲方式体制CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复
七、显示部分
单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED(LightEmittingDiode);
它具有显示清晰、亮度高、使用电压低、寿命长的特点
单片机中通常用七段LED构成字型“8”,另外,还有一个小数点发光二极管以显示小数位!
这种显示器有共阴和共阳两种!
发光二极管的阳极连在一起的(公共端)称为共阳极显示器,阴极连在一起的称为共阴极显示器。
(如下图所示)
一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划(段)
a_g,另一个小数点为dp发光二极管。
当在某段发光二极管上施加一定的正向电压时,该段笔画即亮;
不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
由于共阴极连接需加驱动,故在这里我采用的是共阳阳极连接。
以共阳极LED为例,如图(b)所示,各LED公共阳极K0接高电平,若向各控制端a,b, ┄,g,dp顺次送入00011110信号,则该显示器显示“⒎”字型。
共阴极7段LED显示数字0~F、文字、符号及小数点的编码(a段为最地位,dp点为最高位)如(图2-1)所示。
共阴极7段LED显示字型编码表
显示字符
共阴极段选码
共阴极段选码
0
3FH
5
6DH
1
06H
6
7DH
2
5BH
7
07H
3
4FH
8
7FH
4
66H
9
6FH
“灭”(黑)
00H
LED显示器接口及显示方式
LED显示器有静态显示方式和动态显示方式两种。
静态显示就是当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另一个字符为止。
LED显示器工作于静态显示方式时,各位的共阴极接地;
若为共阳极则接+5V电源。
每位的段选线分别与一个8位锁存器的输出口相连,显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。
正因为如此,静态显示器的亮度较高。
这种显示方式编程容易,管理也较简单,但占用I/O口线资源较多。
因此,在显示位数较多的情况下,一般都采用动态显示方式。
由于所有6位段皆由一个I/O口控制,因此,在每一瞬间,6位LED会显示相同的字符。
要想每位显示不同的字符,就必须采用扫描方法流点亮各位LED,即在每一瞬间只使某一位显示字符。
在此瞬间,段选控制I/O口输出相应字符段选码(字型码),而位选则控制I/O口在该显示位送入选通电平(因为LED为共阴,故应送低电平),以保证该位显示相应字符。
如此轮流,使每位分时显示该位应显示字符。
例如,要求显示“LL0-20”时,I/O1和I/O2轮流送入段选码、位选码
系统调试
硬件调试:
主要检查了电路板有无虚焊、短路、连线是否正常,尤其是单片机的各使能端的接线,I/O接口连线是否有误。
由于我们采用了六个数码管并联接入P2口的段选端,因此接线较多,经常容易出现管脚间短路现象。
这是硬件设计不足之处,今后将注意元件的选配使设计更简洁实用。
软件调试:
在LCA51仿真机上,对定时中断程序、显示子程序、按键中断子程序进行了分段调试,结果功能正常。
九、时钟计时检测
通过与其它计时器对比观察发现数字时钟走时过快,检查定时中断程序发现T0的初始值设定有误,因此重新设置:
根据T0选择工作模式1,定时时间为50ms,
focs=12MHz,
由
T=(2^16-T0初始值)×
振荡周期×
12
设T0的初始值为X,
则:
(2^16-X)×
1/12×
10^6s×
12=50ms
X=15625,
转化二进制值为:
X=0011110010111010,
即TH=#3CH,TL=#0BAH
十、数码管动态显示汇编程序例子,显示12(时)34(分)
H10
EQU35H
H1
EQU36H
M10
EQU37H
M1
EQU38H
SHOUR
EQU39H
SMIN
EQU3AH
DISH10EQU3FH
DISH1
EQU40H
DISM10EQU41H
DISM1
EQU42H
MEMA
EQU
45H
MEMB
49H
ORG
0000H
AJMP
STAR
0030H
数码管数据表格
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
DB90H,88H,83H,0C6H,0A1H,86H,8EH
ORG0050H
STAR:
MOVSHOUR,#12;
设为12时
MOVSMIN,#34;
设为34分
MOVMEMA,#0
MOVMEMB,#0
MOVSP,#60H
MOVPSW,#00H
MAIN:
MOVPSW,#00H
MOVMEMA,SHOUR
MOVMEMB,SMIN
ACALLTLED;
把要显示的数转换成数码管代码
ACALLDISPLAY;
显示小时,分钟
MOVP0,#0FFH
MOVP2,#0FFH
AJMPMAIN
显示小时,分钟
DISPLAY:
MOVP0,DISH10
MOVP2,#11011111B
ACALLD1MS
MOVP0,DISH1
MOVP2,#11101111B
MOVP0,DISM10
MOVP2,#11110111B
MOVP0,DISM1
MOVP2,#11111011B
RET
把要显示的数转换成数码管代码
TLED:
MOVA,MEMA
MOVB,#10
DIVAB
MOVH10,A
MOVH1,B
MOVA,MEMB
MOVM10,A
MOVM1,B
MOVA,H10
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDISH10,A
MOVA,H1
MOVDISH1,A
MOVA,M10
MOVDISM10,A
MOVA,M1
MOVDISM1,A
RET
延时
D1MS:
MOVR7,#0AH
LOOP1:
MOVR6,#32H
LOOP2:
DJNZR6,LOOP2
DJNZR7,LOOP1
END
新的12时34分显示程序
ORG0000H
MOVPSW,#00H
AA:
MOVR2,#1
MOVDPTR,#TAB
MOVA,R2
MOVCA,@A+DPTR
MOVP0,A
MOVR1,#11011111B
MOVP2,R1
ACALLD1MS
MOVR2,#2
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVR1,#11101111B
MOVP2,R1
MOVR2,#3
MOVA,R2
MOVR1,#11110111B
MOVR2,#4
MOVR1,#11111011B
LJMPAA
DB90H,88H,83H,0C6H,0A1H,86H,8EH
十一、秒信号程序
LJMPMain
ORG000BH
Ljmplto
Org0100h
Main:
MOVtmod,#01h
MOVth0,#0d8h
MOVtl0,#0f0h
MOVie,#10000010b
MOVr3,#100
Setbtr0
Sjmp$
Org0200h
Lto:
Djnzr3,goret
Cplp1.0
MOVr3,#100
Goret:
reti
End
十二、时分秒时钟程序
h10equ35h
h1equ36h
m10equ37h
m1equ38h
dh10equ3fh
dh1equ40h
dm10equ41h
dm1equ42h
saequ45h
sbequ49h
org00h
ljmpstart
org0bh
ljmptime0
;
DB90H,88H,83H,0C6H,0A1H,86H,8EH;
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
start:
movr1,#0;
秒计数器清零
movr2,#0;
分计数器清零
movr3,#0;
时计数器清零
movr4,#0;
10ms计数器清0
movsa,#0
movsb,#0
movsp,#60h
movpsw,#00h
movtmod,#01h;
定时器0,方式1
movth0,#0d8h;
定时初值为10ms
movtl0,#0f0h
movie,#82h
setbtr0
main:
movsa,r3
movsb,r2
acalltled
acalldisplay
movp0,#0ffh
movp2,#0ffh
ajmpmain
display:
movp0,dh10
movp2,#11011111b
acalld1ms
movp0,dh1
movp2,#11101111b
movp0,dm10
movp2,#11110111b
movp0,dm1
movp2,#11111011b
ret
tled:
movp0,#0ffh
mova,sa
movb,#10
divab
movh10,a
movh1,b
mova,sb
movm10,a
movm1,b
mova,h10
movdptr,#tab
movca,@a+dptr
movdh10,a
mova,h1
movdh1,a
mova,m10
movdm10,a
mova,m1
movdm1,a
time0:
pushacc
pushpsw
movth0,#0d8h
movtl0,#0f0h
mova,r4
inca
movr4,a
cjnea,#100,loop
cplp1.0
movr4,#00
mova,r1
movr1,a
cjnea,#60,loop
movr1,#00
mova,r2
movr2,a
movr2,#00
mova,r3
movr3,a
cjnea,#24,loop
movr3,#00
djnzr5,loop;
中断100次到否
movr5,#100
loop:
poppsw;
中断返回
popacc
ret
d1ms:
movr7,#0ah
loop1:
movr6,#32h
loop2:
djnzr6,loop2
djnzr7,loop1
end
十三、键盘控制时钟程序
SECOND10MSEQU33H
SECONDEQU34
H10EQU35H
H1EQU36H
M10EQU37H
M1EQU38H
SHOUREQU39H
SMINEQU3AH
DISH10EQU3FH
DISH1EQU40H
DISM10EQU41H
DISM1EQU42H
MEMAEQU45H
MEMBEQU49H
AJMPSTART
LJMPTIME0
ORG0030H
START:
MOVSECOND10MS,#00
MOVSECOND,#00
MOVSHOUR,#00;
设为00时
MOVSMIN,#00;
设为00分
MOVTMOD,#01H
MOVTL0,#0F0H
MOVTH0,#0D8H
MOVIE,#82H
SETBTR0
JNBP3.2,HOURSET
JNBP3.3,MINSET
AJMPMAIN
HOURSET:
LCALLDELAY10MS
JBP3.2,MAIN
JNBP3.2,$
INCSHOUR
MOVA,SHOUR
CJNEA,#24,MAIN
MOVSHOUR,#00
LJMPMAIN
MINSET:
JBP3.3,MAIN
JNBP3.3,$
INCSMIN
MOVA,SMIN
CJNEA,#60,MAIN
MOVSMIN,#00
LJMPMAIN
显示小时,分钟
MOVP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 计时 时钟 制作