<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > I2C通信模塊c語言庫文件

          I2C通信模塊c語言庫文件

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          文件名i2c.h


          /***************************************************
          名稱:I2C通信模塊修改版
          編寫:YuMin_Dong
          時間:2012.11.17
          ***************************************************/
          #ifndef _I2C_H_
          #define _I2C_H_
          sbit SDA=P1^0;
          sbit SCL=P1^1;
          uint8 ACK;

          本文引用地址:http://www.ex-cimer.com/article/201611/323826.htm


          //開啟I2C總線
          void I2C_Start()
          {
          SDA=1;
          //_nop_();
          //_nop_();
          //_nop_();
          _nop_();
          _nop_();
          SCL=1;
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          SDA=0;
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          SCL=0;//鉗主總線
          _nop_();
          _nop_();
          }

          //停止I2C總線
          void I2C_Stop()
          {
          SDA=0;
          //_nop_();
          //_nop_();
          //_nop_();
          _nop_();
          _nop_();
          SCL=1;
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          SDA=1;
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          SCL=0;
          }

          //I2C通信主機發(fā)送字節(jié)
          void I2C_SendByte(uint8 byte)
          {
          uint8 i;
          for(i=0;i<8;i++)
          {
          if(byte&0x80)
          SDA=1;
          else SDA=0;
          _nop_();
          SCL=1;//使SDA數(shù)據(jù)有效
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          SCL=0;
          byte<<=1;
          _nop_();
          _nop_();
          }
          SDA=1;//數(shù)據(jù)線浮高
          _nop_();
          _nop_();
          SCL=1;//使讀取的數(shù)據(jù)有效,判斷是否應(yīng)答或非應(yīng)答
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          if(SDA==1)
          ACK=0;//收到非應(yīng)答信號
          else ACK=1;//收到應(yīng)答信號
          SCL=0;//鉗總線
          _nop_();
          _nop_();
          }

          //I2C通信主機接收字節(jié)
          uint8 I2C_ReceiveByte()
          {
          uint8 i;
          uint8 byte;

          for(i=0;i<8;i++)
          {
          SDA=1;//拉高準備接收
          _nop_();
          SCL=1;
          byte<<=1;
          if(SDA==1)
          byte|=0x01;
          else byte&=0xfe;
          SCL=0;
          _nop_();
          _nop_();
          }
          return byte;
          }


          上一頁 1 2 下一頁

          關(guān)鍵詞: I2C通信模塊c語言庫文

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();