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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > I2C總線AT24C02芯片應(yīng)用

          I2C總線AT24C02芯片應(yīng)用

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

          code:

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

          /*
          通訊中 SDA 口通訊雙方都可為輸出,如果一方輸出低,

          另一方則如果輸出高也不能使SDA為高,相當(dāng)于,輸出低的一方占住了SDA口。

          兩個口,一個出高一個出低,則線上電平是低的。

          這是由于,出高的驅(qū)動能力不及出低拉電流的能力。


          所以SDA=1為釋放數(shù)據(jù)線
          */

          #include

          #define uint unsigned int

          #define uchar unsigned char

          sbit sda=P2^0;

          sbit scl=P2^1;

          void delay()//執(zhí)行空語句,微秒級延時函數(shù)

          {;;}

          void delay1ms(uint z)//延時1ms

          {

          uint x,y;

          for(x=z;x>0;x--)

          {

          for(y=0;y<=110;y++)

          {

          }

          }

          }

          void init()//初始化狀態(tài)下SCL和SDA都為高電平

          {

          scl=1;

          delay();

          sda=1;

          delay();

          }

          void start()//在SCL為高電平時SDA由高電平到低電平

          {

          sda=1;

          delay();

          scl=1;

          delay();

          sda=0;

          }

          void respons()

          /*

          應(yīng)答信號,SCL在高電平期間,SDA被從設(shè)備拉為低電平表示應(yīng)答。

          (sda==1)和i<255相與,表示若在一段時間內(nèi)沒有從器件的應(yīng)答則主器件

          默認(rèn)從器件已經(jīng)收到數(shù)據(jù)而不再等待應(yīng)答信號

          */

          {

          uchar i;

          scl=1;

          delay();

          while((sda==1)&&(i<250))

          {

          i++;

          }

          scl=0;

          delay();

          }

          void stop()//SCL在高電平期間,SDA一個上升沿停止信號

          {

          sda=0;

          delay();

          scl=1;

          delay();

          sda=1;

          }

          void write_byte(uchar date)//寫一個字節(jié)

          {

          uchar i,temp;

          temp=date;

          for(i=0;i<8;i++)

          {

          temp=temp<<1;

          scl=0;//只有在SCL為0期間才允許SDA數(shù)據(jù)線上的狀態(tài)才允許變化

          delay();

          sda=CY;//PSW的寄存器的CY進位標(biāo)志位

          delay();

          scl=1; //SCL時鐘信號為高電平期間數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定

          delay();

          }

          scl=0;

          delay();

          sda=1;//釋放總線

          delay();

          }

          uchar read_byte()

          {

          uchar i,k;

          scl=0;

          delay();

          sda=1;//釋放總線

          delay();

          for(i=0;i<8;i++)

          {

          scl=1;

          delay();

          k=(k<<1)|sda;

          scl=0;

          delay();

          }

          //delay();here is a bug

          return k;

          }



          關(guān)鍵詞: I2C總線AT24C02芯

          評論


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