我的是四位七段数码管,想显示99秒计时,现在秒的低位不显示,和高位变1低位也变1
程序如下
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 3AH,#40H ;保存秒 10位
MOV R7,#00H ;秒10位数据保存
YUN:MOV P1,#0FFH;将p1口置高电平
MOV R0,#30H ;把数码管显示数据表首地址传送到工作寄存器R0,R0作为数码管间接地址指针使用
MOV R1,#10 ;作为p1.3数码管从0-9循环显示计数
SAN: ;此为计时p1.3从0-9循环显示子程序
SETB P1.2;将p1.2置高电平,
CLR P1.3 ;置低电平,准备向P1.3写入数据
MOV P0,@R0;向p0写入数码管现实数据表第一位,也就是p1.3此时应该显示地址30h中的数据40h,此时数码管显示0
SETB P1.3
CLR P1.2
MOV P0,3AH
CLR P1.3
INC R0
CALL YAN
DJNZ R1,SAN
INC R7
CALL MIAOSHI
JMP YUN
YAN: MOV R2,#100
D1:MOV R4,#50
D: MOV R3,#200
DJNZ R3,$
DJNZ R4,D
DJNZ R2,D1
RET
MIAOSHI:CJNE R7,#1,MIAO2
MOV 3AH,31H
SETB P1.3
MOV P0,3AH
CLR P1.3
RET
MIAO2: CJNE R7,#2,MIAO3
MOV 3AH,32H
SETB P1.3
MOV P0,3AH
CLR P1.3
RET
MIAO3:
END |