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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DS18B20與數(shù)碼管程序

          DS18B20與數(shù)碼管程序

          作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit DQ=P2^0;//P2^0
          uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//不帶小數(shù)點(diǎn)
          uchar code tab1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//帶小數(shù)點(diǎn)
          sbit wei0=P0^0;//P3^2
          sbit wei1=P0^1;//P3^3
          //sbit wei2=P1^2;
          //sbit wei3=P1^3;
          uchar disdata[2];
          uint tvalue;
          uchar tflag;
          void delay(uint i)
          {
          while(i--);
          }
          void ds1820rst()//復(fù)位
          {
          DQ=1;
          delay(4);
          DQ=0;
          delay(100);
          DQ=1;
          delay(40);
          }
          uchar ds1820rd()//讀數(shù)據(jù)
          {
          uchar i;
          uchar dat=0;
          for(i=8;i>0;i--)
          {
          DQ=0;
          dat>>=1;
          DQ=1;
          if(DQ)
          dat|=0x80;//dat=DQ;dat&=0x80;
          delay(10);
          }
          return(dat);
          }
          void ds1820wr(uchar wdata)//寫數(shù)據(jù)
          {
          uchar i=0;
          for(i=8;i>0;i--)
          {
          DQ=0;
          DQ=wdata&0x01;
          delay(10);
          DQ=1;
          wdata>>=1;
          }
          }
          read_temp()/*讀取溫度值并轉(zhuǎn)換*/
          {
          uchar a,b;
          ds1820rst();
          ds1820wr(0xcc);//*跳過讀序列號*/
          ds1820wr(0x44);//*啟動溫度轉(zhuǎn)換*/
          ds1820rst();
          ds1820wr(0xcc);//*跳過讀序列號*/
          ds1820wr(0xbe);//*讀取溫度*/
          a=ds1820rd();
          b=ds1820rd();
          tvalue=b;
          tvalue<<=8;
          tvalue=tvalue|a;
          if(tvalue<0x0fff)
          tflag=0;
          else
          {tvalue=~tvalue+1;
          tflag=1;
          }
          tvalue=(tvalue*0.0625);//0.625溫度值擴(kuò)大10倍,精確到1位小數(shù)
          return(tvalue);
          }


          void ds1820disp()//溫度值顯示
          {
          disdata[0]=tvalue/10;//十位數(shù)
          disdata[1]=tvalue%10;//個(gè)位數(shù)
          wei0=0;
          P1=tab[disdata[0]];
          delay(250);
          wei0=1;
          wei1=0;
          P1=tab[disdata[1]];
          delay(250);
          wei1=1;
          }

          void main()
          {
          while(1)
          {

          read_temp();//讀取溫度

          ds1820disp();//顯示
          }
          }


          關(guān)鍵詞: DS18B20數(shù)碼

          評論


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