一个开关用来按下后 开始执行倒计时程序,其他两个用来暂停计时和停止计时(停止计时就显示00吧),求大神帮忙
ORG 0000HSTART: MOV R0,#20 MOV R4,#15LP0: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV DPTR,#TABLE SETB TR0LP1: JBC TF0,LP2 ACALL DISP AJMP LP1LP2: DJNZ R0,LP0
CLR TR0 MOV R0,#20 MOV A,R4 CJNE A,#0,DEC1 MOV R4,#15 AJMP JP1DEC1: DEC A
MOV R4,AJP1: ACALL DISP
AJMP LP0DISP: MOV A,R4
MOV B,#10
DIV AB MOV 20H,A MOV 21H,B MOV A,20H MOVC A,@A+DPTR MOV P2,A SETB P3.1 LCALL DELAY CLR P3.1 MOV A,21H MOVC A,@A+DPTR
MOV P2,A
SETB P3.0
LCALL DELAY
CLR P3.0
RET
DELAY: MOV R6,#10
DL0: MOV R5,#50 DJNZ R5,$ DJNZ R6,DL0 RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H END
程序写的可以,但是在硬软件资源使用上不科学。
1.位寻址寄存器20H~2FH应专做为寻址用,平时的字节寄存器应从30H开始不较好。
2.P3口各个引脚都有第二功能,能不用尽量不用。比如这次的电路:数码管a~g用P2口,位选用P1.0~P1.1,按键用P1.2~P1.4,完全够用。
3.汇编编程要适当添加注释,提高程序可读性!
我是在你的程序基础上改的,用注释标注了!
0
本回答被提问者和网友采纳