📄 i2c.txt
字号:
C
#include <AT89X52.h>
#include "iic.h"
#include "intrins.h"
void StartIIC() /*启动IIC总线*/
{
SDA=1;
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
return;
}
void StopIIC() /*停止IIC总线*/
{
SDA=0;
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
return;
}
void IICMcuAcknowledge() /*IIC总线上发送MCU应答位*/
{
SDA=0;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
SDA=1; /* ???????????????*/
return;
}
void IICMcuNonAcknowledge() /*IIC总线上发送MCU非应答位*/
{
SDA=1;
SCL=1;
_nop_();
_nop_();
SCL=0;
SDA=0;
return;
}
unsigned char IICCheckAcknowledge() /*IIC总线检测从机应答位*/
{
unsigned char IICAckFlag;
SDA=1; /*SDA=1; 线与吗?应为SDA=0?*/
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
IICAckFlag=0;
if(SDA==0) /*应答正常*/
{
_nop_();
_nop_();
SCL=0;
return(IICAckFlag);
}
else
{
IICAckFlag=1; /*应答不正常*/
_nop_();
_nop_();
SCL=0;
return(IICAckFlag);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -