;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;LED 动态显示六位数码管由P0口输出段选码,P1口输出位选码 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0000H AJMP DIS ORG 0030H DIS:MOV R0,#7EH ;显示缓冲区末地址到R0 MOV R2,#01H ;位控字,先点亮最低位(右边) MOV A,R2 MOV DPTR,#TAB LP0:MOV P1,A MOV A,@R0 ;取显示数(R0中的值不是07EH吗,为什么送入后相当于把0送入A?) MOVC A,@A+DPTR MOV P0,A ACALL D1MS DEC R0 MOV A,R2 JB ACC.5,LP1 RL A MOV R2,A AJMP LP0 LP1:RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,40H,00H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;1MS延时程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; D1MS:MOV R7,#02H DL: MOV R6,#0FEH DL1: DJNZ R6,DL1 DJNZ R7,DL RET
|