;8位數(shù)碼管顯示秒計時(使用本論壇的51hei-5型板,硬件連接簡述:晶振12M,PO口并接兩個74HC573驅(qū)動8位數(shù)碼管,P2.6為段選通位,P2.7為位選通位.)
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV SP,#60H
MOV R1,#00H ;位計數(shù)清0
MOV R2,#00H ;緩沖區(qū)清0
CLR P2.0 ;段選通清0
CLR P2.1 ;位選通清0
LOOP2:MOV A,R2
LCALL DELAY1S
ADDC A,#01H
MOV R2,A
LOOP1:MOV B,#10
DIV AB
JNZ LOOP ;A不為0轉(zhuǎn)移到LOOP
LCALL DISPLAY
LJMP LOOP2
LOOP:INC R1
LCALL DISPLAY
LCALL LOOP1
DISPLAY:SETB P2.1 ;位處理
MOV A,R1
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
CLR A
SETB P2.0 ;段處理
MOV A,B
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
LCALL DELAY5MS
RET
DELAY1S: MOV R5,#100
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
DELAY5MS: MOV R3,#50
D3:MOV R4,#49
DJNZ R3,$
DJNZ R4,D3
RET
TAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共陰顯示字庫0-9
TAB2:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH ;位選通字符表
END
我是一個初學者,在此程序調(diào)試中,發(fā)現(xiàn)數(shù)碼管僅顯示“1”,不累加了,請過路的高手幫忙看一下,謝謝!
|