急,哪位大仙帮忙看看这个小程序?我实在看不出来哪儿有毛病(初学者)
关于8255扩展的。。。。。A口C口分别控制8个LED灯循环亮ORG 00H
CLR P2.2
SETB P2.2 ;8255复位
CLR P2.2
SETB P2.0 ;A1A0=11,处于写控制字状态
SETB P2.1
;MOV R0 ,#0FH ;控制寄存器口地址设为FFH
MOV A ,#80H ;方式控制字送A
MOVX @R0 ,A ;将方式控制字写入控制寄存器
START: CLR P2.0 ; A1A0=00将从A口写入数据
CLR P2.1
MOV A ,#0FEH
MOV R2, #08H
LOOP: MOVX @R0 ,A ;二极管循环亮,从最低位到最高位
RL A ;左移
CALL DELAY ;延时
DJNZ R2 , LOOP
SETB P2.1 ;A1A0=10,选中C口工作
CLR P2.0
MOV R2 ,#08H
;LOOP1:
; MOVX @R0 ,A ;将数据写入C口
; RL A
; CALL DELAY ;调用延时子程序
; DJNZ R2 , LOOP1
; JMP START
DELAY: ;延时
D1: MOV R1 , #0FFH
LOOP2: MOV R2 , #0FFH
LOOP3: MOV R3 , #0FFH
DJNZ R3 , LOOP3
DJNZ R2 , LOOP2
DJNZ R1 , D1
RET
END