标题:
基于单片机汇编语言的电子时钟程序和仿真
[打印本页]
作者:
木皇PHP
时间:
2017-12-26 13:22
标题:
基于单片机汇编语言的电子时钟程序和仿真
图片1.png
(195.3 KB, 下载次数: 59)
下载附件
2017-12-26 13:22 上传
/*************************************************
*文件名:电子时钟
*说 明:通过T0方式1定时时时更新,晶振:6MHZ
*************************************************/
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP IT0P
ORG 0100H
MAIN: MOV DPTR,#TAB
MOV TMOD,#01H ;设T0为方式一,定时
MOV 30H,#0AH ;装入中断次数
MOV 42H,#55 ;显示55秒位
MOV 41H,#59 ;显示59分位
MOV 40H,#23 ;显示23时位
MOV TH0,#3CH ;给T0装入初值
MOV TL0,#0B0H
SETB ET0 ;允许T0申请中断
SETB TR0 ;启动T0
SETB EA ;开总中断
HERE: MOV R3,42H ;调显示子程序(等待中断)
MOV R2,#00
ACALL DISPLAY
MOV R3,41H
MOV R2,#02
ACALL DISPLAY
MOV R3,40H
MOV R2,#04
ACALL DISPLAY
AJMP HERE
;******1S定时子程序(并显示)******
IT0P: PUSH PSW ;现场保护
PUSH Acc
MOV TH0,#3CH ;重装初值
MOV TL0,#0B0H
DJNZ 30H,RETURN ;1秒未到,返回
MOV 30H,#0AH ;重置中断次数
;******显示秒*********
MOV A,42H ;"秒"单元加1
INC A
MOV 42H,A ;“秒”的BCD码返回“秒”单元
CJNE A,#60,RETURN ;是否到60秒,未到则返回
MOV 42H,#00H ;计满60秒,“秒”单元清零
;******显示分*********
MOV A,41H ;"分"单元加1
INC A
MOV 41H,A ;“分”的BCD码返回“分”单元
CJNE A,#60,RETURN ;是否到60分,未到则返回
MOV 41H,#00H ;计满60分,“分”单元清零
;******显示时*********
MOV A,40H ;"时"单元加1
INC A
MOV 40H,A ;“时”的BCD码返回“时”单元
CJNE A,#24,RETURN ;是否到24小时,未到则返回
MOV 40H,#00H ;计满24小时,“时”单元清零
RETURN: POP Acc ;恢复现场
POP PSW
RETI
;******显示子程序(分两屏显示)******
DISPLAY:MOV A,R3 ;R3存要显示的两位数字
MOV B,#0AH
MOV P2,R2
DIV AB ;A为商,表十位;B为余数,表个位
MOV R3,A
MOV A,B ;显示个位
MOVC A,@A+DPTR
MOV P0,A
ACALL DELY
INC R2 ;显示十位
MOV P2,R2
MOV A,R3
MOVC A,@A+DPTR
MOV P0,A
ACALL DELY
RET
;******延时0.5MS子程序******
DELY: MOV R7,#10
DEL1: MOV R6,#100
DJNZ R6,$
DJNZ R7,DEL1 ;(100*2+2+1)*10+2+1
RET
TAB: DB 3FH,06H,5BH,4FH,66H ;七段共阴显示码
DB 6DH,7DH,07H,7FH,6FH,3FH
END
复制代码
全部资料51hei下载地址:
电子时钟.zip
(182.92 KB, 下载次数: 27)
2017-12-26 13:18 上传
点击文件名下载附件
仿真可用
下载积分: 黑币 -5
作者:
hanzhe
时间:
2017-12-27 19:50
于单片机汇编语言的电子时钟程序和仿真
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1