POP B ; 2 us
JB DO, EE41
DJNZ B, EE40
SETB C
JMP EE42
EE41:
CLR C
EE42:
CLR CS
POP B
RET
;==========================================================
INDATA:
SETB DO
CALL SHIN
JNB SIZE, EE21 ; SIZE=0时,8bit; SIZE=1时,16bit
MOV DATA_HI, A ; SAVE HIGH BYTE
; SIZE=1时,16bit
CALL SHIN
EE21: ; SIZE=0时,8bit
MOV DATA_LO, A ; SAVE LOW BYTE
RET
;==========================================================
;读一个字节子程序, 读回的数据在A中
;----------------------------------------------------------
SHIN:
PUSH B
CLR SK
MOV B,#8
EE30:
SETB SK
NOP
MOV C,DO
RLC A
CLR SK
DJNZ B,EE30
POP B
RET
;==========================================================
;向AT93CXX 写入地址
;----------------------------------------------------------
OUTDATA:
PUSH B
MOV A,B
CLR C
SUBB A,#8
JC EE6
JZ EE5
MOV B,A
CLR C
SUBB A,#8
JC EE2
JNZ EE9
MOV A,DPH
JMP EE4
EE2:
PUSH B
MOV A,DPH
EE3:
RR A
DJNZ B,EE3
POP B
EE4:
CALL SHOUT
MOV B,#8
EE5:
MOV A, DPL
JMP EE8
EE6:
PUSH B
MOV A,DPL
EE7:
RR A
DJNZ B,EE7
POP B
EE8:
CALL SHOUT
EE9:
SETB DO
POP B
RET
;==========================================================
; 写一个字节子程序
; 入口: 写入数据须事先存入A中.
;----------------------------------------------------------
SHOUT:
EE50:
CLR SK
RLC A
MOV DI,C
NOP ; DELAY MIN 400 ns
SETB SK
DJNZ B,EE50
CLR SK
RET
;==========================================================
;==========================================================
END
上一页 [1] [2] [3] [4]
本文关键字:程序 51单片机,单片机-工控设备 - 51单片机