我的是四位七段數(shù)碼管,想顯示99秒計(jì)時(shí),現(xiàn)在秒的低位不顯示,和高位變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位數(shù)據(jù)保存
YUN:MOV P1,#0FFH;將p1口置高電平
MOV R0,#30H ;把數(shù)碼管顯示數(shù)據(jù)表首地址傳送到工作寄存器R0,R0作為數(shù)碼管間接地址指針使用
MOV R1,#10 ;作為p1.3數(shù)碼管從0-9循環(huán)顯示計(jì)數(shù)
SAN: ;此為計(jì)時(shí)p1.3從0-9循環(huán)顯示子程序
SETB P1.2;將p1.2置高電平,
CLR P1.3 ;置低電平,準(zhǔn)備向P1.3寫入數(shù)據(jù)
MOV P0,@R0;向p0寫入數(shù)碼管現(xiàn)實(shí)數(shù)據(jù)表第一位,也就是p1.3此時(shí)應(yīng)該顯示地址30h中的數(shù)據(jù)40h,此時(shí)數(shù)碼管顯示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 |