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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機模擬I2C總線讀寫EEPROM(24CXX)程序一

          單片機模擬I2C總線讀寫EEPROM(24CXX)程序一

          作者: 時間:2016-11-11 來源:網絡 收藏
          下面是一個最簡單的讀寫程序,可以用來檢測線路狀況。先附上程序和電路,后面附有說明。

          電路:

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

          說明:P2口的LED都是我用來檢測電路執(zhí)行到哪一步的,個人覺得一目了然。

          程序:

          #include
          #define unit unsigned int
          #define uchar unsigned char
          int ok;
          sbit scl=P0^0;
          sbit sda=P0^1;
          sbit led0=P2^0;
          sbit led1=P2^1;
          sbit led2=P2^2;
          sbit led3=P2^3;
          sbit led4=P2^4;
          sbit led5=P2^5;
          sbit led6=P2^6;
          sbit led7=P2^7;

          delay(void) //delay
          {
          int i;
          led1=1;
          for(i=0;i<1;i++) led1=0;
          }

          start(void) //start
          {
          sda=1;
          scl=1;
          delay();
          sda=0;
          delay();
          scl=0;
          led0=0;
          }

          stop(void) //stop
          {
          sda=0;
          scl=1;
          delay();
          sda=1;
          delay();
          scl=0;
          }

          checkanswer(void) //check answer
          {
          sda=1;
          scl=1;
          if(sda==1)
          {
          F0=1;
          led7=0;
          }
          scl=0;
          led3=0;
          }

          sendabyte(int temps) //send a byte
          {
          uchar n=8;
          while(n--)
          {
          led2=1;
          if((temps&0x80)==0x80)
          {
          sda=1;
          scl=1;
          delay();
          scl=0;
          }
          else
          {
          sda=0;
          scl=1;
          delay();
          scl=0;
          }
          temps=temps<<1;
          led2=0;
          }
          }

          reciveabyte() //recive a byte
          {
          uchar n=8,tempr;
          while(n--)
          {//uchar idata *abyte
          scl=1;
          tempr=tempr<<1;
          if(sda==1)
          tempr=tempr|0x01;
          else
          tempr=tempr&0xfe;
          scl=0;
          }
          ok=tempr;
          return(ok);
          }

          main(void) //MAIN
          {
          start();

          sendabyte(0xa0);
          checkanswer();
          if(F0==1) return;

          sendabyte(0x00);
          checkanswer();
          if(F0==1) return;

          sendabyte(0x11);
          checkanswer();
          if(F0==1) return;
          /*-----------------------*/
          start();

          sendabyte(0xa0);
          checkanswer();
          if(F0==1) return;

          sendabyte(0x00);
          checkanswer();
          if(F0==1) return;

          start();

          sendabyte(0xa1);
          checkanswer();
          if(F0==1) return;

          reciveabyte();
          if(ok==0x11) led6=0;
          stop();
          }

          說明:

          1、寫驅動程序之前建議了解清楚24CXX系列芯片的讀寫時序,中文資料可以到我的網盤下載,免注冊下載鏈接:http://wdpvip.qupan.com/6293600.html

          2、程序功能:先在地址0x00寫入一個數(shù)據(jù)0x11,然后再讀出來,若寫入的數(shù)據(jù)和讀出的數(shù)據(jù)一樣就點亮led6。



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();