ORG 0000H ;在000H单元存放转移指令
AJMP MAIN ;转移到主程序
ORG 0003H ;主程序从0030H开始
LJMP ZD
ORG 0030H ;主程序从0030H开始
MAIN:
SETB EA ;开总中断
SETB EX0 ;开中断0
SETB IT0 ;设置中断0的触发方式为下降沿触发
MOV P1,#00H ;数码管显示初值
SETB P2.0 ;
SETB P2.1
MOV R0,#00H ;开始计时显示
MOV R1,#00H
MOV R2,#140
MOV R3,#0AH
MOV R4,#0AH
MOV DPTR,#TAB ;置共阳字段码表首址
L0: MOV A,R0
MOVC A,@A+DPTR ;查段码表
MOV P2,#040H
MOV P1,A
ACALL DELAY
MOV A,R1
MOVC A,@A+DPTR ;查段码表
MOV P2,#80H
MOV P1,A
ACALL DELAY ;调用延时程序
DJNZ R2,L0
INC R0
MOV R2,#140
DJNZ R3,L0
MOV R0,#00H
MOV R3,#0AH
INC R1
DJNZ R4,L0
AJMP MAIN ;返回主程序
DELAY: ;误差 -0.868055555556us
MOV R6,#0FBH ;延时程序
DL0:
MOV R5,#04H
DJNZ R5,$
DJNZ R6,DL0
RET
ZD:
MOV R0,#30
MOV R1,#200
MOV R2,#200
H:
DJNZ R0,H
MOV R0,#30
CPL P3.2
DJNZ R1,H
MOV R1,#200
DJNZ R2,H
MOV R0,#00H
MOV R1,#00H
MOV R2,#140
MOV R3,#0AH
MOV R4,#0AH
RETI
TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H ;
END
|