CW DATA 0F9FCH ;写指令 CR DATA 0F9FEH ;读状态 DIW DATA 0F9FDH ;写数据 DIR DATA 0F9FFH ;读数据 ORG 0000H AJMP START ORG 0030H PANYAO: DB 01111110b,'C51',0 START: MOV R3,#38H LCALL XIEZL MOV R3,#01H LCALL XIEZL MOV R3,#0FH LCALL XIEZL MOV R3,#06H LCALL XIEZL
PAN1: MOV DPTR,#PANYAO MOV A,R2 MOVC A,@A+DPTR;按理说应该是显示 C ,但是实际上A的数值是0FFH
mov p1,a jmp $ JZ PAN2 LCALL XIESJ INC R2 LCALL DELAY JMP PAN1 PAN2: CLR P1.0 JMP $
XIEZL: MOV DPTR,#CW MOV A,R3 ;1111B MOVX @DPTR,A LCALL BF RET XIESJ: MOV DPTR,#DIW MOVX @DPTR,A LCALL BF RET BF: MOV DPTR,#CR MOVX A,@DPTR JB ACC.7,BF RET DELAY: MOV R6,#50 D1:MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET END
|