📄 iic_protocol.asm
字号:
/********************************************************
* Author: hq.yin *
* Copyright: HQ.YIN MicroProcessor Laboratory *
********************************************************/
SCL EQU P1.0
SDA EQU P1.1
/*start*/
START:
SET SDA
SET SCL
CALL DELAY
CLR SDA
CALL DELAY
CLR SCL
CALL DELAY
RET
/*stop*/
STOP:
CLR SDA
CLR SCL
CALL DELAY
SET SCL
CALL DELAY
SET SDA
CALL DELAY
RET
/*
****************************************
* send data
* reference: R6 is you want to send data
****************************************
*/
SEND:
MOV R7,#0x09
MOV A,R6
CLR SDA
CLR SCL
CALL DELAY
blop: RRC A /*8th loop*/
MOV SDA,C
CALL DELAY
SET SCL
CALL DELAY
CLR SCL
CALL DELAY
DJNZ R7,blop
RET
/*
*****************************************
* receive data
* reference: R6 is you receive register
*****************************************
*/
RECEIVE:
CLR A
CLR C
MOV R7,A
CLR SCL
SET SDA
CALL DELAY
wch: SET SCL /*8th loop*/
CALL DELAY
INC R7
MOV C,SDA
RLC A
CALL DELAY
CLR SCL
CALL DELAY
CJNE R7,#0x08,wch
MOV R6,A
RET
/*answer*/
ANS:
CLR SCL
CLR SDA
CALL DELAY
SET SCL
CALL DELAY
CLR SCL
CALL DELAY
RET
/*check ANS*/
CANS:
RET
/*delay*/
DELAY: /*24 Mhz,total time :0.1 ms*/
MOV A,#0x0c8
MOV R7,A
del: DJNZ R7,del
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -