标题:
单片机电子时钟汇编语言程序(可调节时间)附Proteus文件
[打印本页]
作者:
gfgFUKGUG
时间:
2023-1-20 14:38
标题:
单片机电子时钟汇编语言程序(可调节时间)附Proteus文件
采用的单片机是89C52,用了两个锁存器74HC573来接入数码管的位选和段码引脚。
部分源码:
Proteus工程图:(下面的4*4按钮、最上面的128*64LCD显示屏和左边的发光二极管非本次内容的必要部分,可以删除)
三个按钮分别对应的功能:按钮1:在”调节时“和”调节分“中间轮换
按钮2:时间数值+1
按钮3:时间数值 -1
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif
(164.87 KB, 下载次数: 36)
下载附件
2023-1-27 17:41 上传
单片机汇编语言源程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTT0
MAIN:
MOV R0,#70H ;70后面的12位地址清零
MOV R7,#0CH
INIT: MOV @R0,#00H
INC R0
DJNZ R7,INIT
MOV 72H,#0AH
MOV 75H,#0AH
MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#4CH
SETB EA
SETB ET0
SETB TR0
START1: LCALL SCAN
LCALL KEYSCAN
SJMP START1
;延时1MS子程序
DL1MS: MOV R6,#14H ;20*25*2us
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
;延时20MS子程序
DL20MS: MOV A,R2
PUSH Acc
MOV R2,#40
DLY:MOV R4,#250
DJNZ R4,$
DJNZ R2,DLY
POP Acc
MOV R2,A
RET
;数码管显示程序
SCAN: MOV A,78H ;时间存入显示缓冲区相应位置
MOV B,#0AH
DIV AB
MOV 71H,A ;秒
MOV 70H,B
MOV A,79H
MOV B,#0AH
DIV AB
MOV 74H,A ;分
MOV 73H,B
MOV A,7AH
MOV B,#0AH
DIV AB
MOV 77H,A ;时
MOV 76H,B
MOV R1,#70H ;循环扫描显示
MOV R5,#7FH
MOV R3,#08H
SCAN1: MOV A,R5
MOV P0,A ;位选信号
SETB P2.7
CLR P2.7
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
CLR P2.6
LCALL DL1MS
INC R1
MOV A,R5
RR A
MOV R5,A
DJNZ R3,SCAN1
MOV P0,#00H ;消影
SETB P2.6
CLR P2.6
MOV P0,#0FFH
SETB P2.7
CLR P2.7
RET
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;“0~9”,“-,_”的共阴极字段码
;定时器/计数器T0中断服务程序
INTT0: PUSH Acc
PUSH PSW
CLR ET0
CLR TR0
MOV TL0,#00H
MOV TH0,#4CH
SETB TR0
INC 7BH
MOV A,7BH
CJNE A,#14H,OUTT0 ;20*50=1s
MOV 7BH,#00H
INC 78H
MOV A,78H
CJNE A,#3CH,OUTT0 ;1s*60=1min
MOV 78H,#00H ;秒计数器清零
INC 79H ;分计数器+1
MOV A,79H
CJNE A,#3CH,OUTT0
MOV 79H,#00H
INC 7AH ;时计数器+1
MOV A,7AH
CJNE A,#18H,OUTT0
MOV 7AH,#00H ;计到24后时计数器清零
OUTT0:
SETB ET0
POP PSW
POP Acc
RETI
;按键处理程序
KEYSCAN: CLR EA
JNB P2.0,KEYSCAN0
JNB P2.1,KEYSCAN1
JNB P2.2,KEYSCAN2
KEYOUT: SETB EA
RET
KEYSCAN0: LCALL DL20MS
JB P2.0,KEYOUT
WAIT0: JNB P2.0,WAIT0
INC 7CH
MOV A,7CH
CLR ET0
CLR TR0
CJNE A,#03H,KEYOUT
MOV 7CH,#00H
SETB ET0
SETB TR0
SJMP KEYOUT
KEYSCAN1: LCALL DL20MS
JB P2.1,KEYOUT
WAIT1: JNB P2.1,WAIT1
MOV A,7CH
CJNE A,#02H,KSCAN11
INC 79H
MOV A,79H
CJNE A,#3CH,KEYOUT
MOV 79H,#00
SJMP KEYOUT
KSCAN11: INC 7AH
MOV A,7AH
CJNE A,#18H,KEYOUT
MOV 7AH,#00
SJMP KEYOUT
KEYSCAN2: LCALL DL20MS
JB P2.2,KEYOUT
WAIT2: JNB P2.2,WAIT2
MOV A,7CH
CJNE A,#02H,KSCAN21
DEC 79H
MOV A,79H
CJNE A,#0FFH,KEYOUT
MOV 79H,#3BH
SJMP KEYOUT
KSCAN21: DEC 7AH
MOV A,7AH
CJNE A,#0FFH,KEYOUT
MOV 7AH,#17H
SJMP KEYOUT
END
复制代码
所有资料51hei附件下载:
Proteus仿真8.13和汇编程序.7z
(64.52 KB, 下载次数: 32)
2023-1-27 17:43 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1