📄 text2.a51
字号:
SDA BIT P1.1
SCL BIT P1.2
PUBLIC START_I2C,STOP_I2C,_ACK_I2C
I2C_DT SEGMENT DATA
I2C_PR SEGMENT CODE
RSEG I2C_DT
STACKSAVE:DS 1
RSEG I2C_PR
START_I2C:
SETB SDA ;发送起始条件的数据信号
NOP
SETB SCL
NOP ;起始条件建立时间大于4.7us,延时
NOP
NOP
NOP
NOP
CLR SDA ;发送起始信号
NOP ;起始条件锁定时间大于4μs
NOP
NOP
NOP
NOP
CLR SCL ;钳住I2C总线,准备发送或接收数据
NOP
NOP
RET
STOP_I2C:
CLR SDA ;发送结束条件的数据信号
NOP ;发送结束条件的时钟信号
SETB SCL ;结束条件建立时间大于4μs
NOP
NOP
NOP
NOP
NOP
SETB SDA ;发送I2C总线结束信号
NOP
NOP
NOP
NOP
RET
_ACK_I2C:
MOV A,R7
JZ ACK
SETB SDA
SJMP NO_ACK
ACK: CLR SDA
NO_ACK: NOP
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
NOP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -