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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 專題 > I2C串行總線標(biāo)準(zhǔn)驅(qū)動(dòng)程序(C51)-萬(wàn)能程序

          I2C串行總線標(biāo)準(zhǔn)驅(qū)動(dòng)程序(C51)-萬(wàn)能程序

          作者: 時(shí)間:2008-02-01 來(lái)源: 收藏
          *------------------------------------------------------------------------------------------
          [文件名] .c
          [版本] 1.1b
          [作者] 鞠春陽(yáng)
          ===========================================================================================*/#include "reg51.h"
          #include "intrins.h"
          unsigned char SystemError;
          sbit SCL= P1^6; //定義串行時(shí)鐘線所在口 使用時(shí)根據(jù)自己的需要來(lái)定義
          sbit SDA= P1^7; //定義串行數(shù)據(jù)線所在口 使用時(shí)根據(jù)自己的需要來(lái)定義
          #define SomeNOP(); {_nop_();_nop_();_nop_();_nop_();}
          /*--------------------------------------------------------------------------------
          調(diào)用方式:void AD7416_Start(void) 2003/05/04
          函數(shù)說(shuō)明:私有函數(shù),專用
          ---------------------------------------------------------------------------------*/
          void I2CStart(void)
          {
          EA=0;
          SDA=1; SCL=1; SomeNOP();//數(shù)據(jù)線保持高,時(shí)鐘線從高到低一次跳變,I2C通信開始
          SDA=0; SomeNOP();
          SCL=0;
          }
          /*--------------------------------------------------------------------------------
          調(diào)用方式:void AD7416_I2CStop(void) 2003/05/04
          函數(shù)說(shuō)明:私有函數(shù),I2C專用
          ---------------------------------------------------------------------------------*/
          void I2CStop(void)
          {
          SCL=0; SDA=0; SomeNOP(); //數(shù)據(jù)線保持低,時(shí)鐘線從低到高一次跳變,I2C通信停止
          SCL=1; SomeNOP(); SDA=1;
          EA=1;
          }
          /*--------------------------------------------------------------------------------
          調(diào)用方式:I2CAck(void) 2003/05/13
          函數(shù)說(shuō)明:私有函數(shù),I2C專用,等待從器件接收方的應(yīng)答
          ACK BY AD7416
          ---------------------------------------------------------------------------------*/
          WaitAck(void)
          {
          unsigned char errtime=255;//因故障接收方無(wú)ACK,超時(shí)值為255。
          SDA=1;
          SCL=1;
          SystemError=0x10;
          while(SDA)
          { errtime--;
          if(!errtime)
          { AD7416_I2CStop();
          AD7416_SystemError=0x11; //出錯(cuò)后給全局變量賦值
          return;
          }
          }
          SCL=0;
          }
          /*--------------------------------------------------------------------------------
          調(diào)用方式:void SendAck(void) ﹫2003/05/13
          函數(shù)說(shuō)明:私有函數(shù),I2C專用,主器件為接收方,從器件為發(fā)送方時(shí),應(yīng)答信號(hào)。
          ---------------------------------------------------------------------------------*/
          void SendAck(void)
          {
          SDA=0; SomeNOP(); //數(shù)據(jù)線保持低,時(shí)鐘線發(fā)生一次從高低的跳變 發(fā)送一個(gè)應(yīng)答信號(hào)
          SCL=1; SomeNOP();
          SCL=0;
          }
          /*--------------------------------------------------------------------------------
          調(diào)用方式:void SendAck(void) ﹫2003/05/13
          函數(shù)說(shuō)明:私有函數(shù),I2C專用,主器件為接收方,從器件為發(fā)送方時(shí),非應(yīng)答信號(hào)。
          --------------------------------------------------------------------------------*/
          void SendNotAck(void)
          {
          SDA=1; SomeNOP(); //數(shù)據(jù)線保持高,時(shí)鐘線發(fā)生一次從高低的跳變 沒有應(yīng)答
          SCL=1; SomeNOP();
          SCL=0;
          }
          /*--------------------------------------------------------------------------------
          調(diào)用方式:void I2CSend(uchar ch) 2003/05/13
          函數(shù)說(shuō)明:私有函數(shù),I2C專用
          ---------------------------------------------------------------------------------*/
          void I2CSendByte(Byte ch)
          {
          unsigned char i=8;
          while (i--)
          {
          SCL=0;_nop_();
          SDA=(bit)(ch&0x80); ch


          關(guān)鍵詞: I2C 串行總線 C51

          評(píng)論


          相關(guān)推薦

          技術(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); })();