⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2c.txt

📁 这是一个i2c程序,经过多次应用都能成功实现功能,而且简要实用
💻 TXT
字号:

#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 + -