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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DS18B20延時函數(shù)版

          DS18B20延時函數(shù)版

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          程序運行效果圖:



          //晶振12MHZ 常溫下測量0--99.9度

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

          #include
          #include
          #define uchar unsigned char
          #define uint unsigned int
          sfr wdtrst=0xa6;
          uchar code seg7[]={0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60}; //數(shù)碼管整數(shù)
          sbit dec=P0^5;//數(shù)碼管小數(shù)位
          sbit Dq=P3^4; //DS18B20讀寫口
          sbit alarm=P3^3; //喇叭報警位
          uint warning=0;//報警溫度變量
          //-------------------
          void rst() //看門狗系統(tǒng)復(fù)位函數(shù)晶振是12MHZ則看門狗自動復(fù)位時間為16ms
          {
          wdtrst=0x1e;
          wdtrst=0xe1;
          }
          //----------------------------
          void alarmstart()interrupt 3 //報警中斷子函數(shù)
          {
          if(warning>270)//溫度大于27度喇叭報警
          {alarm=~alarm;}
          TH1=0xff;
          TL1=0x60;
          TF1=0;
          EA=1;
          ET1=1;
          }

          //-----------------------------延時函數(shù)集---------------------
          void delay10us() //延時10us
          {
          _nop_(); _nop_(); _nop_(); _nop_();
          _nop_(); _nop_();
          }
          //----------
          void delay610us() //延時610us
          {
          uchar i,j;
          for(i=0;i<2;i++)
          for(j=0;j<100;j++);
          }

          //----------
          void delay34us() //延時34us
          {
          uchar i,j;
          for(i=0;i<2;i++)
          for(j=0;j<3;j++);
          }
          //----------
          void delay(uint k) //常用延時函數(shù)
          {
          uchar i,j;
          for(i=0;ifor(j=0;j<100;j++);
          }

          //-----------------DS18B20初始化函數(shù)----------
          uchar init18b20()
          {
          uint k=0;
          Dq=0;
          delay610us(); //延時610us
          Dq=1; //釋放總線
          delay10us(); //延時10us
          while(Dq==1) //18b20應(yīng)答信號判斷是否超時
          {
          if(k<800)k++;
          else return 1;
          }
          k=0;
          while(Dq==0) //18b20是否釋放判斷
          {
          if(k<800)k++;
          else return 2;
          }
          return 3; //啟動成功返回 3
          }


          上一頁 1 2 下一頁

          關(guān)鍵詞: DS18B20延時函

          評論


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