i2c.txt
来自「这是一个i2c程序,经过多次应用都能成功实现功能,而且简要实用」· 文本 代码 · 共 96 行
TXT
96 行
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 + =
减小字号Ctrl + -
显示快捷键?