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

          新聞中心

          51單片機(jī)24c02的使用

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

          #include

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

          #define AddWr 0xae //Write Address
          #define AddRd 0xaf //Read Address

          //全局變量
          sbit Sda=P1^2; //定義總線連接端口
          sbit Scl=P1^1;
          sbit WP=P1^0;//No connect here

          void mDelay(unsigned char j)//A normal delay
          {
          unsigned int i;
          for(;j>0;j--)
          {
          for(i=0;i<125;i++)
          {;}
          }
          }

          //啟動(dòng) IIC總線
          void Start(void)
          {
          Sda=1;
          _nop_();_nop_();
          Scl=1;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          Sda=0;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          Scl=0;
          }

          //停止 IIC總線
          void Stop(void)
          {
          Sda=0;
          _nop_();
          Scl=1;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          Sda=1;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          Scl=0;
          }

          //應(yīng)答 IIC總線
          void Ack(void)
          {
          Sda=0;
          _nop_();_nop_();_nop_();
          Scl=1;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          Scl=0;
          _nop_();_nop_();
          }

          //非應(yīng)答 IIC總線
          void NoAck(void)
          {
          Sda=1;
          _nop_();_nop_();_nop_();
          Scl=1;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          Scl=0;
          _nop_();_nop_();
          }

          //發(fā)送一個(gè)字節(jié)
          void Send(unsigned char Data)
          {
          unsigned char BitCounter=8;
          unsigned char temp;

          do
          {
          temp=Data;
          Scl=0;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          if((temp&0x80)==0x80)
          Sda=1;
          else
          Sda=0;


          Scl=1;
          temp=Data<<1;
          Data=temp;
          BitCounter--;
          }
          while(BitCounter);
          Scl=0;
          }

          //讀一個(gè)字節(jié)并返回變量
          unsigned char Read(void)
          {
          unsigned char temp=0;
          unsigned char temp1=0;
          unsigned char BitCounter=8;

          Sda=1;
          do
          {
          Scl=0;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          Scl=1;
          _nop_();_nop_();_nop_();_nop_();_nop_();
          if(Sda)
          temp=temp|0x01;
          else
          temp=temp&0xfe;

          if(BitCounter-1)
          {
          temp1=temp<<1;
          temp=temp1;
          }
          BitCounter--;
          }
          while(BitCounter);
          return(temp);
          }
          //write to ROM
          void WrToROM(unsigned char Data[],unsigned char Address,unsigned char Num)
          {
          unsigned char i;
          unsigned char *PData;
          PData=Data;
          for(i=0;i {
          Start();
          Send(AddWr);//Write Address
          Ack();
          Send(Address+i);//Write sub Address
          Ack();
          Send(*(PData+i));//Write Data
          Ack();
          Stop();
          mDelay(20);
          }
          }
          //read from ROM
          void RdFromROM(unsigned char Data[],unsigned char Address,unsigned char Num)
          {
          unsigned char i;
          unsigned char *PData;
          PData=Data;
          for(i=0;i {
          Start();
          Send(AddWr);//Write Address
          Ack();
          Send(Address+i);//Write sub Address
          Ack();
          Start();
          Send(AddRd);//Read Address
          Ack();
          *(PData+i)=Read();//Read Data
          Scl=0;
          NoAck();
          Stop();
          }
          }

          void main()
          {
          unsigned char Number[4]={0x06,0x5b,0x4f,0x66};// 顯示碼值 1234
          unsigned char i;
          WP=0;//寫保護(hù)關(guān)掉
          P2=0x00;

          WrToROM(Number,4,4);//寫入24c02
          mDelay(200);
          Number[0]=0;//清除當(dāng)前數(shù)據(jù)
          Number[1]=0;
          Number[2]=0;
          Number[3]=0;
          RdFromROM(Number,4,4);//調(diào)用存儲(chǔ)數(shù)據(jù)

          while(1)
          {

          P0=Number[i];//顯示存儲(chǔ)數(shù)據(jù)
          mDelay(200);
          mDelay(200);
          i++;
          if(i==4)
          i=0;
          }
          }



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

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