单片机 我有一篇从99到0倒计时的汇编语言的程序, 求大家帮我加入3个开关, 如下图

2024-11-11 19:34:54
推荐回答(2个)
回答1:

程序写的可以,但是在硬软件资源使用上不科学。
1.位寻址寄存器20H~2FH应专做为寻址用,平时的字节寄存器应从30H开始不较好。
2.P3口各个引脚都有第二功能,能不用尽量不用。比如这次的电路:数码管a~g用P2口,位选用P1.0~P1.1,按键用P1.2~P1.4,完全够用。
3.汇编编程要适当添加注释,提高程序可读性!

我是在你的程序基础上改的,用注释标注了!

回答2:

ORG 0000H
START:
MOV P3, #0
MOV DPTR, #TABLE
MOV TMOD, #01H
SETB TR0

LP0:MOV R4, #100
LP1:MOV R5, #20
LP2:MOV TH0, #3CH
MOV TL0, #0B0H
LP3:CALL DISP
JNB P1.0, K1
JNB P1.1, K2
JNB P1.2, K3
JNB TF0, LP3
CLR TF0
DJNZ R5, LP2
DJNZ R4, LP1
JMP LP0
K1: CALL DISP
JB P1.0, LP3
SETB TR0
JMP LP3
K2: CALL DISP
JB P1.1, LP3
CLR TR0
JMP LP3
K3: CALL DISP
JB P1.2, LP3
CLR TR0
MOV R4, #1
JMP LP3
;---------------------------
DISP:
MOV A, R4
DEC A
MOV B, #10
DIV AB
MOVC A, @A+DPTR
MOV P2, A
SETB P3.1
DJNZ R7, $
DJNZ R7, $
CLR P3.1
MOV A, B
MOVC A, @A+DPTR
MOV P2, A
SETB P3.0
DJNZ R7, $
DJNZ R7, $
CLR P3.0
RET
TABLE:
DB 0C0H, 0F9H, 0A4H, 0B0H, 99H
DB 92H, 82H, 0F8H, 80H, 90H
END