我的是四位七段數碼管,想顯示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 |