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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)—IIC—EEPROM(CAT24WCXX)—03

          51單片機(jī)—IIC—EEPROM(CAT24WCXX)—03

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏

          4.IIC的總線讀寫操作

          先介紹一下在IIC讀寫一個(gè)字節(jié)的數(shù)據(jù)~~~這樣以后說(shuō)起來(lái)就方便了

          發(fā)送字節(jié)子程序:

          先是asm文件形式:

          ;字節(jié)數(shù)據(jù)放入ACC
          ;每發(fā)送一個(gè)字節(jié)筪掉用一次CACK(檢測(cè)應(yīng)答子程序),取應(yīng)答位
          WRBYTE:
          MOVR0,#08H
          WLP:
          RLCA
          JCWR_1
          SJMPWR_0
          WLP1:
          DJNZR0,WLP
          NOP
          RET
          WR_1: ;發(fā)送1
          SETBSDA
          NOP
          SETBSCL
          NOP
          NOP
          NOP
          NOP
          NOP
          CLRSCL
          SJMPWLP1
          WR_0: ;發(fā)送0
          CLRSDA
          NOP
          SETBSCL
          NOP
          NOP
          NOP
          NOP
          NOP
          CLRSCL
          SJMPWLP1

          然后就是c文件:

          void send_byte(uchar c)
          {
          uchar bit_cnt;
          for(bit_cnt=0;bit_cnt<8;bit_cnt++)//循環(huán)傳送8位
          {
          if((c< //取當(dāng)前發(fā)送位
          sda=1;
          else
          sda=0;
          _nop_();
          scl=1;//發(fā)送到數(shù)據(jù)線上
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          scl=0;
          }
          IIC_ack();
          }

          ~~~~~~~~~接收子程序

          匯編:

          ;讀出的值再ACC中
          ;每取一個(gè)字節(jié)要發(fā)送一個(gè)應(yīng)達(dá)或者非應(yīng)答信號(hào)(要知道你讀取就成了從機(jī),就要發(fā)送一個(gè)信號(hào)告訴主機(jī))
          RDBYTE:
          MOVR0,#08H
          RLP:
          SETBSDA
          NOP
          CLRSCL;置時(shí)鐘線為低電平,準(zhǔn)備接收數(shù)據(jù)
          NOP
          NOP
          NOP
          NOP
          NOP
          SETBSCL
          NOP
          MOVC,SDA;讀取數(shù)據(jù)位
          RLCA;進(jìn)行數(shù)據(jù)位的處理
          NOP
          DJNZR0,RLP;沒(méi)有到8位,再來(lái)一次
          RET

          c代碼:

          //返回接收的8位數(shù)據(jù)
          uchar rec_byte()
          {
          uchar temp;
          uchar bit_cnt;
          temp=0;
          sda=1; //置數(shù)據(jù)線為輸入方式
          for(bit_cnt=0;bit_cnt<8;bit_cnt++)
          {
          _nop_();
          scl=0; //置時(shí)鐘線為低電平,準(zhǔn)備接收數(shù)據(jù)
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          scl=1;
          _nop_();
          _nop_();
          temp<<=1;
          if(sda==1)//接收當(dāng)前數(shù)據(jù)位,接收內(nèi)容放入temp中
          temp+=1;
          _nop_();
          _nop_();
          }
          scl=0;
          _nop_();
          _nop_();
          return(temp);
          }

          好了,下面的就好說(shuō)了~~~~哎。。。累死了

          IIC總線的讀寫操作主要是三個(gè)(主要的表格與時(shí)序圖自己可以在網(wǎng)上搜的~~一搜一大片,我也就不要再贅述了)

          (1)當(dāng)前地址讀

          該操作將從所選期間的當(dāng)前地址讀,讀的字節(jié)數(shù)不指定

          (2)指定單元讀

          該操作將從指定所選期間指定地址讀,讀的字節(jié)數(shù)不指定

          (4)指定字節(jié)寫(不說(shuō)了,一看就明白了)

          二、IIC總線EEPROM芯片與單片機(jī)的接口

          1.串行EEPROM電路CAT24WCXX概述

          美國(guó)CATALYST公司出品的CAT24WCXX 是一個(gè)1-256K位的支持I2C總線數(shù)據(jù)傳送協(xié)議的串行CMOS E2PROM,可用電擦除,可編程自定時(shí)寫周期(包括自動(dòng)擦除時(shí)間不超過(guò)10ms,典型時(shí)間為5ms)的。串行E2PROM一般具有兩種寫入方式,一種是字節(jié)寫入方式,還有另一種頁(yè)寫入方式。允許在一個(gè)寫周期內(nèi)同時(shí)對(duì)1個(gè)字節(jié)到一頁(yè)的若干字節(jié)的編程寫入,1頁(yè)的大小取決于芯片內(nèi)頁(yè)寄存器的大小。其中,CAT24WC01具有8字節(jié)數(shù)據(jù)的頁(yè)面寫能力,CAT24WC02/04/08/16具有16字節(jié)數(shù)據(jù)的頁(yè)面寫能力,CAT24WC32/64具有32字節(jié)數(shù)據(jù)的頁(yè)面寫能力,CAT24WC128/256具有64字節(jié)數(shù)據(jù)的頁(yè)面寫能力。美國(guó)CALAYST公司先進(jìn)的CMOS技術(shù)實(shí)質(zhì)上是降低了器件的功耗,可在電源電壓低到1.8V的條件下工作,等待電流和額定電流分別為0和3mA。該系列器件提高商業(yè)級(jí)、工業(yè)級(jí)、汽車級(jí)芯片。CALAYST公司特有的噪聲保護(hù)施密特觸發(fā)輸入技術(shù)和ESD最小達(dá)到2000V,從而保證CAT24WCXX系列E2PROM有極強(qiáng)的干擾下數(shù)據(jù)不丟失,因此CAT24WCXX系列E2PROM在汽車電子及電度表、水表、煤氣表中得到了廣泛的話應(yīng)用(個(gè)人感覺(jué)這些應(yīng)用還是對(duì)自己有很大用途,可以好好看看,對(duì)自己那是相當(dāng)?shù)挠袔椭?。(下面的表格看看~~)



          (注意頁(yè)寫,還要注意一個(gè)MCU上可以擴(kuò)展的數(shù)量,后面有介紹為什么可以擴(kuò)展這么多,其實(shí)就是因?yàn)橐玫巾?yè)寫,呵呵,別的就不用太注意了)



          關(guān)鍵詞: 51單片機(jī)IICEEPRO

          評(píng)論


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