在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于24C08帶掉電記憶功能的兩路電子跑表

      基于24C08帶掉電記憶功能的兩路電子跑表

      作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
      #include

      #include
      #define uchar unsigned char
      #define uint unsigned int
      uchar tent,tent1,secbf,secbf1;sec,min,sec1,min1;

      bit write_secbf=0,write_secbf1=0;

      本文引用地址:http://www.biyoush.com/article/201612/324662.htm

      sbit scl_24=P2^6;
      sbit sda_24=P2^7;
      sbit en=P1^2;
      sbit rs=P1^0;
      sbit rw=P1^1;
      sbit gnd=P2^5;
      sbit puss=P2^3;
      sbit clear=P2^2;
      sbit puss1=P2^1;
      sbitstart=P2^0;
      void delay(int i)
      {uchar x,y;
      for (x=i;x>0;x--)
      for(y=110;y>0;y--);
      }

      /**********1602子程序****************************/

      void write_com(uchar com)
      {
      rs=0;
      P0=com;
      delay(5);
      en=1;
      delay(5);
      en=0;
      }

      void write_dat(uchar dat)
      {
      rs=1;
      P0=dat;
      delay(5);
      en=1;
      delay(5);
      en=0;

      }


      void init_1602()
      {
      en=0;
      rw=0;
      write_com(0x38);
      write_com(0x0c);//如果輸入0X0F會是什么效果
      write_com(0x06);
      write_com(0x01);
      write_com(0x80);
      }


      /**************************延時子程序***********************/


      void usdelay()
      {
      _nop_();_nop_();_nop_();
      _nop_();_nop_();_nop_();
      }

      /***************以下開始為24CXX用子程序**********************/


      void star24()//開始信號
      {//時鐘線在高電平時,數(shù)據(jù)線由高變低即為開始信號由高變低即為開始信號
      sda_24=1;
      usdelay();
      scl_24=1;
      usdelay();
      sda_24=0;//數(shù)據(jù)線由高變低即為開始信號
      usdelay();
      scl_24=0;
      }

      void stop24()//結(jié)束信號
      {//時鐘線在高電平時,數(shù)據(jù)線由低變高即為結(jié)束信號
      sda_24=0;
      usdelay();
      scl_24=1;
      usdelay();
      sda_24=1;
      usdelay();
      sda_24=0;//這句可有可無
      scl_24=0;//這句可有可無
      }

      void Ack24()
      {uchar i;
      scl_24=1;
      usdelay();
      while((sda_24==1)&&(i<200))i++;
      scl_24=0;
      usdelay();
      }
      /*
      void NoAck24() //不應(yīng)答
      {
      sda_24=1;//時鐘線高電平時,數(shù)據(jù)線高,即為不應(yīng)答
      usdelay();
      scl_24=1;
      usdelay();
      scl_24=0;
      usdelay();
      } */

      void init_24()
      {
      sda_24=1;
      usdelay();
      scl_24=1;
      usdelay();
      }


      void write_byte(uchar dat)
      {
      uchar i,temp;
      temp=dat;
      //scl_24=0;//低電平可以變數(shù)據(jù),為高時是讀,且不能變
      for(i=0;i<8;i++)
      {
      temp=temp<<1;
      scl_24=0;
      usdelay();
      sda_24=CY;//CY是PSW寄存器中的CY位,再把CY賦給SDA,再由SCL控制發(fā)出去
      //sda_24=(bit)(temp&0x80);//用這句也可以換掉上一句(bit)是強(qiáng)制轉(zhuǎn)換命令,把數(shù)據(jù)轉(zhuǎn)成非0即1
      usdelay();
      scl_24=1;
      usdelay();
      }
      scl_24=0;
      usdelay();
      sda_24=1;//釋放總線
      usdelay();
      }

      uchar read_byte()
      {

      uchar i,k;
      scl_24=0; //這句可有可無
      usdelay(); //這句可有可無
      sda_24=1; //釋放總線
      usdelay();
      for(i=0;i<8;i++)
      {
      scl_24=1;
      usdelay();
      k=(k<<1)|sda_24;//判斷8次,移位7次
      scl_24=0;
      usdelay();

      }
      return k;
      }

      void write_add(uchar add,uchar dat)
      {
      star24();
      write_byte(0xa0);//呼叫器件,高四位為定了的1010,即A,低四位三個接了地,所以為000,最后一個0是寫標(biāo)志
      Ack24();//寫了后要馬上應(yīng)答
      write_byte(add);//寫要往哪個地址寫數(shù)據(jù)00-1023
      Ack24();//每寫一次要給一個應(yīng)答位
      write_byte(dat);//把數(shù)據(jù)寫入
      Ack24();
      stop24();//給一個停止位,結(jié)束寫數(shù)據(jù)
      }


      uchar read_add(uchar add)
      {
      uchar dat;
      star24();
      write_byte(0xa0);//呼叫器件,高四位為定了的1010,即A,低四位三個接了地,所以為000,最后一個0是寫標(biāo)志
      Ack24();//寫了后要馬上應(yīng)答
      write_byte(add);//寫入要往哪個地址讀數(shù)據(jù)00-1023
      Ack24();//每寫一次要給一個應(yīng)答位
      star24();
      write_byte(0xa1);//呼叫器件,高四位為定了的1010,即A,低四位三個接了地,所以為000,最后一個1是讀標(biāo)志
      Ack24();//寫了后要馬上應(yīng)答
      dat=read_byte();
      stop24();//給一個停止位,結(jié)束讀數(shù)據(jù)
      return dat;
      }

      void display_secbf(uchar dat)
      {

      write_com(0x80+13);
      write_dat(0x30+dat);

      }

      void display_secbf1(uchar dat)
      {

      write_com(0x80+0x40+13);
      write_dat(0x30+dat);

      }


      上一頁 1 2 下一頁

      關(guān)鍵詞: 24C08帶掉電記憶電子跑

      評論


      技術(shù)專區(qū)

      關(guān)閉