欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: DHT11溫濕度傳感器檢測程序(可運行) [打印本頁]

作者: 天闌一城    時間: 2018-5-14 22:26
標題: DHT11溫濕度傳感器檢測程序(可運行)
#ifndef _DHT11_H_
#define _DHT11_H_
#include"DALAY.H"
#define uchar unsigned char
#define uint unsigned int
uchar RH,RL,TH,TL;          //設置存儲溫濕度的變量
uchar data_byte;
sbit IO=P1^0;         //數據口

//初始化
void start()//開始信號
{
  IO=1;
  delay_10us();
  IO=0;
  delay_1ms(20);  //拉低至少 18ms  保證能檢測到起始信號
  IO=1;          //檢測到開始信號后,將電平拉高20-40us
  delay_10us();        //延時20-40us
  delay_10us();       
  delay_10us();
  delay_10us();
}
uchar receive_byte()//接收一個字節
{
uchar i,temp;
for(i=0;i<8;i++)
{
   while(!IO);//等待50us的低電平開始信號結束   
   delay_10us();    //開始信號結束后,延時26us-28us
   delay_10us();
   delay_10us();
   temp=0;   //如果時間為26us-28us 則表示接收的數據為'0'
   if(IO==1)
    temp=1;//如果時間超過26us-28us 則表示收到的數據為'1'
        while(IO);//等待數據信號高電平, '0'為26us-28us;'1'為70us
        data_byte<<=1;//將接收到的數據向高位左移
        data_byte|=temp;       
}
return data_byte;
}
         
void receive() //接收數據
{
start();//開始信號初始化
IO=1;   //主機設為輸入  判斷從機DHT11的響應信號
if(!IO) //判斷是否有響應信號
{
  while(!IO);//判斷從機發出80us低電平信號是否結束
  while(IO);
  RH= receive_byte();//濕度整數
  RL= receive_byte();//濕度小數
  TH= receive_byte();//溫度整數
  TL= receive_byte();//溫度小數
  IO=0;//當所有的數據接收完成后,將從機電平拉低50us
  delay_10us();        //拉低50us
  delay_10us();
  delay_10us();
  delay_10us();
  delay_10us();
  IO=1;//將從機電平拉高,進入空閑狀態
/*  num_check=R_H+R_L+T_H+T_L;
  if(num_check=check)//判斷讀取的數據與校驗位是否相同
  {
        RH=R_H;
        RL=R_L;
        TH=T_H;
        TL=T_L;
        check=num_check;
  }*/
}
}
#endif



作者: OUPI    時間: 2018-5-25 17:22
好東西
作者: 15576118519    時間: 2019-4-13 19:54
感謝樓主分享!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1