ORG 00H
START:
MOV 30H,#40H
MOV 31H,#79H
MOV 32H,#24H
MOV 33H,#30H
MOV 34H,#19H
MOV 35H,#12H
MOV 36H,#02H
MOV 37H,#78H
MOV 38H,#00H
MOV 39H,#10H
MOV R7,#00H ;秒10位数据保存
YUN: MOV P1,#0FFH;将p1口置高电平
MOV R0,#30H ;把数码管显示数据表首地址传送到工作寄存器R0,R0作为数码管间接地址指针使用
MOV R1,#30H
MOV R2,#10 ;作为p1.3数码管从0-9循环显示计数
MOV R3,#10 ;
SAN: ;此为计时p1.3从0-9循环显示子程序
MOV P0,@R0;向p0写入数码管现实数据表第一位,也就是p1.3此时应该显示地址30h中的数据40h,此时数码管显示0
CLR P1.3 ;置低电平,准备向P1.3写入数据
CALL YAN
SETB P1.3
MOV P0,@R1
CLR P1.2
CALL YAN
SETB P1.2;将p1.2置高电平
INC R0
DJNZ R2,SAN
MOV R0,#30H
MOV R2,#10
INC R1
DJNZ R3,SAN
MOV R1,#30H
MOV R3,#10
JMP YUN
YAN: MOV R4,#100
D1:MOV R6,#50
D: MOV R5,#200
DJNZ R5,$
DJNZ R6,D
DJNZ R4,D1
RET
END |