📄 learn.asm
字号:
;////////////////////////////////////////
WRITEBYTE_1: LCALL STARTBIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C ;WRITE COMMAND
LCALL DATABIT
LCALL ACKBIT ;/// 1 0 1 0 A2 A1 A0 1/0 /////
MOV A,DPH
MOV C,ACC.7
LCALL DATABIT
MOV C,ACC.6
LCALL DATABIT
MOV C,ACC.5
LCALL DATABIT
MOV C,ACC.4
LCALL DATABIT
MOV C,ACC.3
LCALL DATABIT
MOV C,ACC.2
LCALL DATABIT
MOV C,ACC.1
LCALL DATABIT
MOV C,ACC.0
LCALL DATABIT
LCALL ACKBIT
MOV A,DPL
MOV C,ACC.7
LCALL DATABIT
MOV C,ACC.6
LCALL DATABIT
MOV C,ACC.5
LCALL DATABIT
MOV C,ACC.4
LCALL DATABIT
MOV C,ACC.3
LCALL DATABIT
MOV C,ACC.2
LCALL DATABIT
MOV C,ACC.1
LCALL DATABIT
MOV C,ACC.0
LCALL DATABIT
LCALL ACKBIT
MOV A,WR_IIC_DATA1
MOV C,ACC.7
LCALL DATABIT
MOV C,ACC.6
LCALL DATABIT
MOV C,ACC.5
LCALL DATABIT
MOV C,ACC.4
LCALL DATABIT
MOV C,ACC.3
LCALL DATABIT
MOV C,ACC.2
LCALL DATABIT
MOV C,ACC.1
LCALL DATABIT
MOV C,ACC.0
LCALL DATABIT
LCALL ACKBIT
LCALL STOPBIT
RET
;///////////
WRITEBLOCK: lcall level1
lcall query
LCALL STARTBIT
SETB C
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
CLR C
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
SETB C
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
CLR C
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
lcall level1
lcall query
CLR C
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
CLR C
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
CLR C
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
CLR C ;WRITE COMMAND
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
LCALL ACKBIT ;/// 1 0 1 0 A2 A1 A0 1/0 /////
MOV A,DPH
MOV C,ACC.7
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.6
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
lcall level1
lcall query
MOV C,ACC.5
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.4
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.3
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.2
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.1
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.0
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
lcall level1
lcall query
LCALL ACKBIT
MOV A,DPL
MOV C,ACC.7
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.6
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.5
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.4
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.3
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
lcall level1
lcall query
MOV C,ACC.2
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.1
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.0
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
LCALL ACKBIT
lcall level1
lcall query
MOV R1,#0C0H
WR_LOOP: MOV A,@R1
MOV C,ACC.7
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.6
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.5
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.4
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.3
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.2
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.1
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
MOV C,ACC.0
; LCALL DATABIT
MOV SDA,C
nop
SETB SCL
NOP
CLR SCL
lcall level1
lcall query
LCALL ACKBIT
INC DPTR
INC R1
CJNE R1,#0E0H,WR_LOOP
LCALL STOPBIT
jnb f_exit,repet_end
clr f_exit
setb f_return
repet_end: RET
READBYTE: LCALL STARTBIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C ;write COMMAND
LCALL DATABIT
LCALL ACKBIT
MOV A,DPH
MOV C,ACC.7
LCALL DATABIT
MOV C,ACC.6
LCALL DATABIT
MOV C,ACC.5
LCALL DATABIT
MOV C,ACC.4
LCALL DATABIT
MOV C,ACC.3
LCALL DATABIT
MOV C,ACC.2
LCALL DATABIT
MOV C,ACC.1
LCALL DATABIT
MOV C,ACC.0
LCALL DATABIT
LCALL ACKBIT
MOV A,DPL
MOV C,ACC.7
LCALL DATABIT
MOV C,ACC.6
LCALL DATABIT
MOV C,ACC.5
LCALL DATABIT
MOV C,ACC.4
LCALL DATABIT
MOV C,ACC.3
LCALL DATABIT
MOV C,ACC.2
LCALL DATABIT
MOV C,ACC.1
LCALL DATABIT
MOV C,ACC.0
LCALL DATABIT
LCALL ACKBIT
LCALL STARTBIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
SETB C ;READ COMMAND
LCALL DATABIT
NOP
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
NOP
NOP
NOP
LCALL IIC_RD_BIT
MOV ACC.7,C
LCALL IIC_RD_BIT
MOV ACC.6,C
LCALL IIC_RD_BIT
MOV ACC.5,C
LCALL IIC_RD_BIT
MOV ACC.4,C
LCALL IIC_RD_BIT
MOV ACC.3,C
LCALL IIC_RD_BIT
MOV ACC.2,C
LCALL IIC_RD_BIT
MOV ACC.1,C
LCALL IIC_RD_BIT
MOV ACC.0,C
LCALL STOPBIT
MOV IIC_RD_DATA,A
RET
;//////////////////////////////////
; READ OPERATOR
;//////////////////////////////////
READBLOCK: SETB F_FIRST_READ
SETB F_SECOND_READ
mov stop_count,#00h
LCALL STARTBIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
SETB C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C
LCALL DATABIT
CLR C ;write COMMAND
LCALL DATABIT
LCALL ACKBIT
MOV A,DPH
MOV C,ACC.7
LCALL DATABIT
MOV C,ACC.6
LCALL DATABIT
MOV C,ACC.5
LCALL DATABIT
MOV C,ACC.4
LCALL DATABIT
MOV C,ACC.3
LCALL DATABIT
MOV C,ACC.2
LCALL DATABIT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -