📄 i2c.h
字号:
#include <REGX52.H>
sbit sda=P2^4;
sbit scl=P2^3;
void sta(){
sda=1;
scl=1;
_nop_();_nop_();_nop_();_nop_();
sda=0;
_nop_();_nop_();_nop_();_nop_();
}
void stop(){
sda=0;
scl=1;
_nop_();_nop_();_nop_();_nop_();
sda=1;
_nop_();_nop_();_nop_();_nop_();
}
void ack(){
sda=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
void no_ack(){
sda=1;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
void wri_one_char(unsigned char ch){
unsigned char tempchar;
unsigned char bitshift;
for(bitshift=0;bitshift<8;bitshift++)
{
scl=0;
tempchar=ch&0x80;
if(tempchar==0){sda=0;}
else sda=1;
_nop_();
_nop_();
_nop_();
_nop_();
scl=1;
_nop_();
_nop_();
scl=0;
sda=0;
_nop_();
_nop_();
ch=ch<<1;
}
}
unsigned char read(){
unsigned char bitcounter=8,temp=0;
sda=1;
while(bitcounter){
scl=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
if(sda) temp=temp*2+0x01;
else temp=temp*2+0x00;
bitcounter--;
}
return temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -