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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 寫一個字節(jié)到24c02中(源程序)

          寫一個字節(jié)到24c02中(源程序)

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

          是一個非揮發(fā)eeprom存儲器器件,采用的IIC總線技術(shù)。在許多試驗(yàn)中都有出現(xiàn)。的應(yīng)用,主要在存儲一些掉電后還要保存數(shù)據(jù)的場合,在上次運(yùn)行時,保存的數(shù)據(jù),在下一次運(yùn)行時還能夠調(diào)出。

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

          24c02采用的IIC總線,是一種2線總線,我們在試驗(yàn)中用IO來模擬這種總線,至于總線的時序和原理,請參考相關(guān)資料。如果您不想研究,也沒有關(guān)系,我們在程序中已經(jīng)為你寫好了,現(xiàn)在和今后您都可以只調(diào)用就是,不必花時間和精力去研究。

          一塊24c02中有256個字節(jié)的存儲空間。

          我們將24c02的兩條總線接在了P26和P27上,因此,必須先定義:

          sbit SCL=P2^7;

          sbit SDA=P2^6;

          在這個試驗(yàn)中,我們寫入了一個字節(jié)數(shù)值0x88到24c02的0x02的位置。

          寫入完成后,P10燈會亮起,我們再在下一顆來讀出這個字節(jié)來驗(yàn)證結(jié)果。

          DDDDDDDDDDDDD

          #define uchar unsigned char //定義一下方便使用

          #define uint unsigned int

          #define ulong unsigned long

          #include //包括一個52標(biāo)準(zhǔn)內(nèi)核的頭文件

          //本課試驗(yàn)寫入一個字節(jié)到24c02中

          char code dx516[3] _at_ 0x003b;//這是為了仿真設(shè)置的

          #define WriteDeviceAddress 0xa0 //定義器件在IIC總線中的地址

          #define ReadDviceAddress 0xa1

          sbit SCL=P2^7;

          sbit SDA=P2^6;

          sbit P10=P1^0;

          //定時函數(shù)

          void DelayMs(uint number)

          {

          uchar temp;

          for(;number!=0;number--)

          {

          for(temp=112;temp!=0;temp--) ;

          }

          }

          //開始總線

          void Start()

          {

          SDA=1;

          SCL=1;

          SDA=0;

          SCL=0;

          }

          //結(jié)束總線

          void Stop()

          {

          SCL=0;

          SDA=0;

          SCL=1;

          SDA=1;

          }

          //測試ACK

          bit TestAck()

          {

          bit ErrorBit;

          SDA=1;

          SCL=1;

          ErrorBit=SDA;

          SCL=0;

          return(ErrorBit);

          }

          //寫入8個bit到24c02

          Write8Bit(uchar input)

          {

          uchar temp;

          for(temp=8;temp!=0;temp--)

          {

          SDA=(bit)(input0x80);

          SCL=1;

          SCL=0;

          input=input1;

          }

          }

          //寫入一個字節(jié)到24c02中

          void Write24c02(uchar ch,uchar address)

          {

          Start();

          Write8Bit(WriteDeviceAddress);

          TestAck();

          Write8Bit(address);

          TestAck();

          Write8Bit(ch);

          TestAck();

          Stop();

          DelayMs(10);

          }

          //本課試驗(yàn)寫入一個字節(jié)到24c02中

          void main(void) // 主程序

          {

          Write24c02(0x88,0x02);// 將0x88寫入到24c02的第2個地址空間

          P10=0; //指示運(yùn)行完畢

          while(1); //程序掛起

          }

          DDDDDDDDDDDDDDDDD

          編譯,聯(lián)機(jī)進(jìn)入仿真,等待LED亮起。本課結(jié)束。我們在下一課看結(jié)果。



          關(guān)鍵詞: 24c02 單片機(jī)

          評論


          相關(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); })();