ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV SP,#60H
MOV R1,#00H ;位计数清0
MOV R2,#00H ;缓冲区清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转移到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
我是一个初学者,在此程序调试中,发现数码管仅显示“1”,不累加了,请过路的高手帮忙看一下,谢谢!
DELAY5MS:
MOV R3,#50
D3: MOV R4,#49
DJNZ R3,$
DJNZ R4,D3
RET
这个5ms延时永远循环不完!
DELAY5MS:
MOV R4,#49
D3: MOV R3,#50
DJNZ R3,$
DJNZ R4,D3
RET
好像还有别的问题!
1>2>3>4>5>6>7>8>9>6>6>6>6>66666666>77777777>.....
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |