本帖最后由 daiy5210 于 2010-9-15 21:10 编辑
调试了2天的一个51汇编程序,目的是使用数码管显示0到9个数字(每1秒变动一次),但是不知道为什么总是显示的8 P2口选择要亮的数码管,PO口是数据端口,在debug模式下 明明看到P0口数据是不断变化的
可是在数码管总是显示的是8这个数字,非常不理解,希望得到大家的指教。
代码如下:
ORG 0000H ;Start address of the program
LJMP START
START: MOV R5,#0FEH
MOV R4,#0AH
MOV R0,#00H
MOV A,R5
MOV P2,A
MOV A,#00H
MOV DPTR,#TAB
PLAY1: MOVC A,@A+DPTR
MOV P0,A
LCALL DL1S
; LCALL DL1S
INC R0
MOV A,R0
DJNZ R4,PLAY1
AJMP REINPUT
;;;;;;;;;;;;;;Delay Function;;;;;;;;;;;;;
DL1S: LCALL DL05S
LCALL DL05S
RET
DL05S: MOV R3,#60H
DL05S1: DJNZ R3,DL05S1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REINPUT: MOV A,#00H
MOV R4,#0AH
MOV R0,#00H
LJMP PLAY1
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
END |