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

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > IIC記憶單片機(jī)開機(jī)次數(shù)

      IIC記憶單片機(jī)開機(jī)次數(shù)

      作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
      IIC具有記憶功能,其實(shí)之前沒有體會(huì)好為什么會(huì)記憶,因?yàn)榫幍某绦蚴亲専糸W爍的,所以理解不出它可以所謂記憶的原理,今天通過數(shù)碼管讓其記憶單片機(jī)開機(jī)次數(shù),終于明天了它的真正原理,其實(shí)是單片機(jī)控制它的時(shí)候,程序不斷運(yùn)行,把程序運(yùn)行得到的數(shù)據(jù)不斷地寫入IIC寄存器中,而寄存器是掉電后不數(shù)據(jù)不會(huì)丟失的,所以當(dāng)我們把程序關(guān)了,也就是掉電了以后數(shù)據(jù)被保存了下來,下次再開機(jī)運(yùn)行的時(shí)候,程序是從頭開始的,但是地址是從我們上次我們寄存器儲(chǔ)存地址開始的,所以就達(dá)到了記憶的功能。這個(gè)的應(yīng)用在數(shù)據(jù)的存儲(chǔ)和保護(hù)是很大的,比如交通燈記憶違章車輛,賬戶儲(chǔ)存,數(shù)據(jù)累積等可以靠它進(jìn)行儲(chǔ)存。

      下面是IIC記憶單片機(jī)開機(jī)次數(shù)的程序:

      本文引用地址:http://www.biyoush.com/article/201611/323771.htm

      程序如下:
      //版權(quán)所有:單片機(jī)網(wǎng)http://www.51hei.com
      #include
      #include
      #define uchar unsigned char//宏定義
      #define uint unsigned int
      sbit scl=P2^0;//這兩個(gè)位定義是控制IIC的引腳
      sbit sda=P2^1;
      uchar number[10]={ //數(shù)碼管數(shù)組定義
      0x3f,
      0x06,
      0x5b,
      0x4f,
      0x66,
      0x6d,
      0x7d,
      0x07,
      0x7f,
      0x6f
      };
      void delayt(void)//數(shù)碼管的延時(shí)
      {
      uint x,y;
      for(x=0;x<5;x++)
      for(y=0;y<120;y++);
      }
      void delay(void)//IIC的適應(yīng)延時(shí)
      {
      _nop_();_nop_();_nop_();_nop_();
      _nop_();_nop_();_nop_();_nop_();
      }
      void start()//開始
      {
      sda=1;
      delay();
      scl=1;
      delay();
      sda=0;
      delay();
      }
      void stop()//停止
      {
      sda=0;
      delay();
      scl=1;
      delay();
      sda=1;
      delay();
      }
      void init()//初始化設(shè)置
      {
      sda=1;
      scl=1;
      }
      void answer()//應(yīng)答
      {
      uchar i;
      scl=1;
      while((sda==1)&&(i<250))i++;
      scl=0;
      delay();
      }
      void noanser()//非應(yīng)答
      {
      scl=1;
      delay();
      sda=1;
      delay();
      scl=0;
      delay();
      }
      void writebyte(uchar dat)//寫字節(jié)
      {
      uchar i;
      scl=0;
      delay();
      for(i=0;i<8;i++)
      {
      if(dat&0x80)
      {
      sda=1;
      }
      else
      {
      sda=0;
      }
      dat=dat<<1;
      delay();
      scl=1;
      delay();
      scl=0;
      delay();
      }
      sda=1;

      }

      uchar readbyte()//讀字節(jié)
      {
      uchar i,dat;
      scl=0;
      delay();
      sda=1;
      delay();
      for(i=0;i<8;i++)
      {
      scl=1;
      delay();
      dat=dat<<1;
      if(sda)
      {
      dat++;
      }
      scl=0;
      delay();
      }
      return dat;
      }


      void write_byte(uchar add,uchar dat)//寫字節(jié)的封裝
      {
      init();
      start();
      writebyte(0xae);
      answer();
      writebyte(add);
      answer();
      writebyte(dat);
      answer();
      stop();
      }
      uchar read_byte(uchar add)//讀字節(jié)的封裝
      {
      uchar value;
      init();
      start();
      writebyte(0xae);
      answer();
      writebyte(add);
      answer();
      start();
      writebyte(0xaf);
      answer();
      value=readbyte();
      noanser();
      stop();
      return value;
      }
      void main()
      {


      uchar temp,k,j;

      temp=read_byte(0x10);//數(shù)碼管個(gè)位和十們的操作
      k=temp/10;
      j=temp%10;
      temp++;
      write_byte(0x10,temp);
      delay();
      while(1)//數(shù)碼管顯示
      {
      P1=number[k];
      P0=0;
      delayt();
      P1=number[j];
      P0=1;
      delayt();
      }
      }



      關(guān)鍵詞: IIC單片機(jī)開機(jī)次

      評(píng)論


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

      關(guān)閉