读数据程序:
;入口条件:DPTR中放入起始位、命令码、指定单元地址
;出口条件:读出数据存于R0间址单元
ORG 0000H
AJMP READ
READ: CLR P3.0 ;CS=0,DO恢复高阻态
NOP
SETB P3.0 ;CS=1
MOV R7,#08H
MOV DPH,#00000011B
LOOP0: CLR P1.7 ;CLK=0
MOV A,DPH
RLC A
MOV DPH,A
MOV P1.6,C ;DI=C
NOP
SETB P1.7 ;CLK=1
DJNZ R7,LOOP0
MOV R7,#08H
LOOP1: CLR P1.7 ;CLK=0
MOV A,DPL
RLC A
MOV DPL,A
MOV P1.6,C
NOP
SETB P1.7 ;CLK=1
DJNZ R7,LOOP1
SETB P1.5 ;准备读入单片
NOP
JB P1.5,EER ;没有前导0,转故障指示
MOV R7,#08H
LOOP2: CLR P1.7 ;CLK=0
NOP
SETB P1.7 ;DO输出1位
NOP
MOV C,P1.5
MOV A,@R0
RLC A ;C移入最低位保存
MOV @R0,A
DJNZ R7,LOOP2
CLR P3.0
SETB P2.3
SJMP $
EER: CLR P2.3
SJMP $
END