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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機學習——IIC總線及EEPROM實驗之一

          單片機學習——IIC總線及EEPROM實驗之一

          作者: 時間:2016-11-23 來源:網絡 收藏
          題目:簡單的流水燈實驗。用EEPROM實現。

          解決方案:(c語言編程)

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

          #include
          #include
          #define uchar unsigned char
          #define uint unsigned int
          uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f
          ,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
          void delay1(uint);
          sbit scl=P3^3;
          sbit sda=P3^4;
          void delay() //短延時子程序
          {
          ;;
          }
          void init()//初使化子程序
          {
          sda=1;
          scl=1;
          }

          void start() //開始子程序
          {
          sda=1;
          delay();
          scl=1;
          delay();
          sda=0;
          delay();
          }

          void stop()
          {
          sda=0;
          delay();
          scl=1;
          delay();
          sda=1;
          delay();
          }
          void write_byte(uchar dat) //寫入字節(jié)子程序
          {
          uchar a,temp;
          temp=dat;
          for(a=0;a<8;a++)
          {
          temp=temp<<1;
          scl=0;
          delay();
          sda=CY;
          delay();
          scl=1;
          delay();
          }
          scl=0;
          delay();
          sda=1;
          delay();
          }

          uchar read_byte() //讀出字節(jié)子程序
          {
          uchar a,b,c;
          scl=0;
          delay();
          sda=1;
          delay();
          for(a=0;a<8;a++)
          {
          scl=1;
          delay();
          b=sda;
          c=(c<<1)|b;
          scl=0;
          delay();
          }
          return c;
          }

          void respon()//響應子程序
          {
          uchar a;
          scl=1;
          delay();
          while((sda==1)&&(a<100))a++;
          scl=0;
          delay();

          }
          void write(uchar add,uchar dat) //寫入子程序
          {
          start();
          write_byte(0xa0);
          respon();
          write_byte(add);
          respon();
          write_byte(dat);
          respon();
          stop();
          }
          uchar read(uchar add) //讀出子程序
          {
          uchar dat;
          start();
          write_byte(0xa0);
          respon();
          write_byte(add);
          respon();
          start();
          write_byte(0xa1);
          respon();
          dat=read_byte();
          respon();
          stop();
          return dat;
          }
          void main() //main 函數
          {
          uchar i;
          init();
          while(1)
          {
          for(i=0;i<16;i++)
          {
          write(3,table[i]);
          delay1(10);
          P0=read(3);
          }
          }
          }
          void delay1(uint a) { //延時子函數
          uint i,j;
          for(j=a;j>0;j--)
          for(i=2500;i>0;i--) ;
          }



          評論


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