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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AT89C2051+ds18b20的溫度計程序設(shè)計

          基于AT89C2051+ds18b20的溫度計程序設(shè)計

          作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          //本程序我己經(jīng)通過使用,大家可以放心參考,不過這個程序只能顯示二位,后兩位是顯示一個溫度的符號!
          #include
          #include
          #define uchar unsigned char
          #define uint unsigned int

          uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
          uint tempe;

          sbit DQ=P3^5;
          sbit p=P3^1;
          sbit q=P3^2;
          sbit r=P3^3;
          sbit s=P3^4;

          void delay1(uint z) //延時函數(shù)
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=110;y>0;y--) ;
          }

          void delay(uint t)
          {
          while(t--);
          }

          void display(void)
          {
          p=0;
          P1=table[tempe/10];
          delay1(1);
          P1=0xff;
          p=1;

          q=0;
          P1=table[tempe];
          delay1(1);
          P1=0xff;
          q=1;

          r=0;
          P1=0x9c;
          delay1(1);
          P1=0xff;
          r=1;

          s=0;
          P1=0xc6;
          delay1(1);
          P1=0xff;
          s=1;
          }

          void init_ds18b20(void)
          {
          uchar sample;
          DQ=1;
          delay(8);
          DQ=0;
          delay(80);
          DQ=1;
          delay(8);
          sample=DQ; //return(sample)帶返回檢測器件響應(yīng)
          delay(4);
          }

          void wr_ds18b20(uchar dat)
          {
          uchar i;
          for(i=0;i<8;i++)
          {
          DQ=0;
          DQ=dat&0x01;
          delay(4);
          DQ=1;
          dat>>=1;
          }
          delay(4);
          }

          uchar re_ds18b20(void)
          {
          uchar i;
          uchar result;
          for(i=0;i<8;i++)
          {
          DQ=0;
          result>>=1;
          _nop_();
          DQ=1;
          if(DQ)
          result|=0x80;
          delay(4);
          }
          return(result);
          }

          uchar rd_temperature(void)
          {
          uchar a,b;
          init_ds18b20();
          wr_ds18b20(0xcc); //跳過ROM
          wr_ds18b20(0x44); //啟動溫度測量
          delay(300);

          init_ds18b20();
          wr_ds18b20(0xcc);
          wr_ds18b20(0xbe);
          a=re_ds18b20();
          b=re_ds18b20();
          b<<=4;
          b+=(a&0xf0)>>4;
          return(b);
          }

          void main()
          {
          while(1)
          {
          tempe=rd_temperature();
          display();
          delay(1);
          display();
          delay(1);
          }
          }


          關(guān)鍵詞: AT89C2051ds18b20溫度

          評論


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