亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sht11.h

?? 溫濕度傳感器SHT11與單片機連接的代碼
?? H
字號:

#include "math.h"         /*Keil library*/ 
#include "stdio.h"        /*Keil library*/
#include "absacc.h"

#define ACK 1
#define noACK 0
#define measure_temp 0x03 //測量溫度命令
#define measure_humi 0x05 //測量濕度命令
#define RESET        0x1e //軟啟動

#define     uchar    unsigned   char
#define     uint     unsigned   int
#define     ulong    unsigned   long

sbit   DATA = P1^0;
sbit   SCK  = P1^1;

uint sht11[2];

typedef union                      /*保存所測得的溫度&濕度值*/
{ 
  uint  i;
  float f;
}value;

typedef struct __SHT11__
{
	unsigned char gewei;
	unsigned char shiwei;
	unsigned char DateString1[5];
    unsigned char DateString2[5];
}SHT11;

char write_byte(unsigned char value)
// writes a byte on the Sensibus and checks the acknowledge 
{ 
  unsigned char i,error=0;  
  for (i=0x80;i>0;i/=2)             /*連續向右移動8位*/
  { 
    if (i & value) DATA=1;          /*把相應的位送數據線*/
    else DATA=0;                        
    SCK=1;                          /*時序脈沖,應嚴格按著此標準*/
    _nop_();
    _nop_();
    _nop_();                        /*大約0.5us*/	
    SCK=0;
  }
  DATA=1;                           /*釋放數據線*/
  SCK=1;                            /*第9位作為響應位*/
  error=DATA;                       /*檢測響應情況,如果有響應數據線就會被SHT10拉低*/
  SCK=0;        
  return error;                     /*返回1表示沒響應*/
}

char read_byte(unsigned char ack)
{ 
  unsigned char i,val=0;
  DATA=1;                           /*釋放數據線*/
  for (i=0x80;i>0;i/=2)             /*連續向右移動8位*/
  { SCK=1;                          /*clk for SENSI-BUS*/
    if (DATA) val=(val | i);        /*read bit */ 
    SCK=0;  					 
  }
  DATA=!ack;                        /*當ack=1時拉低數據線*/
  SCK=1;                            /*clk #9 for ack*/
  _nop_();_nop_();_nop_();          /*pulswith approx. 5 us */
  SCK=0;						    
  DATA=1;                           /*釋放數據線*/
  return val;
}

void transstart(void)
{
    DATA=1; 
    SCK=0;                   //初始狀態
    _nop_();
    SCK=1;
    _nop_();
    DATA=0;
    _nop_();
    SCK=0;
    _nop_();_nop_();_nop_();
    SCK=1;
    _nop_();
    DATA=1;
	_nop_();
    SCK=0;
}

void connectionreset(void)//復位:當DATA線處于高低平時,觸發SCK9次以上(含9次),此后應接發一個"傳輸開始"命令
{  
  unsigned char i; 
  DATA=1; SCK=0;                    /*Initial state*/
  for(i=0;i<9;i++)                  /*9 SCK cycles*/
  { 
    SCK=1;
    SCK=0;
  }
  transstart();                   /*transmission start*/
}

char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)

/*makes a measurement (humidity/temperature) with checksum*/ 
{ 
  unsigned error=0;
  unsigned int i;

  transstart();                   /*transmission start*/
  switch(mode){                     /*send command to sensor*/
    case 0	: error+=write_byte(measure_temp); break;
    case 1	: error+=write_byte(measure_humi); break;
    default     : break;	 
  }
  for (i=0;i<65535;i++) if(DATA==0) break; /*wait until sensor has finished the measurement*/
  if(DATA) error+=1;                       /*or timeout (~2 sec.) is reached*/ 
  *(p_value)  =read_byte(ACK);           /*read the first byte (MSB)*/
  *(p_value+1)=read_byte(ACK);           /*read the second byte (LSB)*/
  *p_checksum =read_byte(noACK);         /*read checksum*/
  return error;
}

//溫濕度值標度變換及溫度補償
void calc_sth11(float *p_humidity ,float *p_temperature)      
{ const float C1=-4.0;              /*for 12 Bit*/ 
  const float C2=+0.0405;           /*for 12 Bit*/ 
  const float C3=-0.0000028;        /*for 12 Bit*/ 
  const float T1=+0.01;             /*for 14 Bit @ 5V*/ 
  const float T2=+0.00008;           /*for 14 Bit @ 5V*/ 	

  float rh=*p_humidity;             /*rh:      Humidity [Ticks] 12 Bit */ 
  float t=*p_temperature;           /**t:       Temperature [Ticks] 14 Bit*/ 
  float rh_lin;                     /*rh_lin:  Humidity linear*/ 
  float rh_true;                    /*rh_true: Temperature compensated humidity*/ 
  float t_C;                        /*t_C   :  Temperature [癈]*/ 

  t_C=t*0.01 - 40;                     /*calc. temperature from ticks to [癈]*/
  rh_lin=C3*rh*rh + C2*rh + C1;        /*calc. humidity from ticks to [%RH]*/
  rh_true=(t_C-25)*(T1+T2*rh)+rh_lin;  /*calc. temperature compensated humidity [%RH]*/
  if(rh_true>100)rh_true=100;          /*cut if the value is outside of*/
  if(rh_true<0.1)rh_true=0.1;          /*the physical possible range*/

  *p_temperature=t_C;                  /*return temperature [癈]*/
  *p_humidity=rh_true;                 /*return humidity[%RH]*/
}
/*************************************************************************************/
void DateToString(SHT11 *SHT,float datax,float datax1)
{
	uint i;
    i=(int)datax;
	SHT->shiwei=i/10;
	SHT->gewei =i%10;
    SHT->DateString1[0] = SHT->shiwei + '0';
	SHT->DateString1[1] = SHT->gewei + '0';
	i=(int)((datax-i)*10); 
	SHT->DateString1[2] ='.';
	SHT->DateString1[3] = i + '0';
	SHT->DateString1[4] = '\0'; 
    if(0<=i<=4)
      sht11[0] = (int)datax;
    else
      sht11[0] = (int)(datax+1);

    i=(int)datax1;
	SHT->shiwei=i/10;
	SHT->gewei =i%10;
    SHT->DateString2[0] = SHT->shiwei + '0';
	SHT->DateString2[1] = SHT->gewei + '0';
	i=(int)((datax1-i)*10); 
	SHT->DateString2[2] ='.';
	SHT->DateString2[3] = i + '0';
	SHT->DateString2[4] = '\0';
    if(0<=i<=4)
      sht11[1] = (int)datax1;
    else
      sht11[1] = (int)(datax1+1);
}

/*************************************************************************************/
void TEM_HUM_DISP(void)
{
 SHT11 S1;
 value humi_val,temp_val;
 unsigned char error,checksum;
 error=0;
 error+=s_measure((unsigned char*) &humi_val.i,&checksum,1);
 error+=s_measure((unsigned char*) &temp_val.i,&checksum,0); 
 if(error!=0) 
  connectionreset(); 
 else
 { 
  humi_val.f=(float)humi_val.i;
  temp_val.f=(float)temp_val.i;
  calc_sth11(&humi_val.f,&temp_val.f); 
  DateToString(&S1,temp_val.f,humi_val.f);		                  
  setPosition(2,2);
  writeString(S1.DateString1);         
  setPosition(2,6);
  writeString(S1.DateString2);
 }
}
/*************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区导航在线播放| 日韩视频国产视频| 久久综合精品国产一区二区三区| 日韩av电影天堂| 99re热这里只有精品视频| 久久精品欧美日韩| 国产一区二区网址| 精品国产91乱码一区二区三区| 亚洲精品中文字幕在线观看| 99久久99久久免费精品蜜臀| 亚洲区小说区图片区qvod| 99精品视频一区| 亚洲永久精品大片| 不卡在线视频中文字幕| 中文字幕一区二区三区蜜月| 精品一区二区三区久久| 精品欧美一区二区三区精品久久| 亚洲精品成人精品456| 99国产精品久| 亚洲一区二区成人在线观看| 欧美老年两性高潮| 日韩高清不卡一区| 欧美哺乳videos| 久久国产欧美日韩精品| 久久这里只有精品首页| 国产福利一区二区三区在线视频| 欧美国产日韩在线观看| 一本大道久久精品懂色aⅴ| 日本网站在线观看一区二区三区| 久久亚洲综合av| 91福利在线免费观看| 五月天激情综合网| 精品国产91乱码一区二区三区| 99这里只有精品| 精品国产成人系列| 美女mm1313爽爽久久久蜜臀| 日韩精品一区二区三区中文不卡| 国产麻豆9l精品三级站| 亚洲精品国产精华液| 日韩午夜在线影院| 成人理论电影网| 亚洲大片精品永久免费| 日韩欧美国产三级| 国产成人福利片| 国产精品三级电影| 欧美日韩亚洲另类| 成人动漫中文字幕| 婷婷成人激情在线网| 国产亚洲福利社区一区| 欧美精品一二三区| 国产精品一区二区在线播放 | 欧美三级中文字幕| 国产精品一二二区| 亚洲国产欧美一区二区三区丁香婷| 日韩久久久精品| 国产日韩欧美电影| 欧美美女网站色| 国产精品一区二区在线播放| 一区二区三区精品在线| 国产精品污污网站在线观看 | 成人黄色免费短视频| 日本不卡不码高清免费观看| 亚洲视频 欧洲视频| 国产欧美视频一区二区| 欧美高清一级片在线| 99久久国产综合精品麻豆| 国产成人aaa| 麻豆中文一区二区| 亚洲一区二区偷拍精品| 日韩一区欧美小说| 久久嫩草精品久久久久| 99精品桃花视频在线观看| 极品瑜伽女神91| 午夜视频在线观看一区二区| 亚洲午夜激情网页| 亚洲免费观看视频| 色综合久久天天综合网| 久久99精品国产.久久久久久| 一区二区三区91| 国产午夜亚洲精品理论片色戒| 日韩一级完整毛片| 欧美在线影院一区二区| 欧美性生活大片视频| 99久久精品国产一区| 成人一区在线观看| 粉嫩一区二区三区性色av| 日本成人在线电影网| 欧美另类videos死尸| 在线免费不卡电影| av高清不卡在线| 色综合久久六月婷婷中文字幕| 成人app软件下载大全免费| 亚洲免费毛片网站| 亚洲欧美二区三区| 亚洲男同1069视频| 一区在线观看视频| 国产日韩欧美在线一区| 国产欧美日韩精品a在线观看| 中文字幕在线不卡国产视频| 中文字幕中文字幕一区二区| 久久久www成人免费无遮挡大片| 久久一区二区三区国产精品| 久久久99精品免费观看| 国产欧美精品一区二区色综合 | 亚洲男人电影天堂| 亚洲一二三四区不卡| 一区二区三区四区精品在线视频| 国产色一区二区| 一区二区三区在线影院| 亚洲自拍偷拍麻豆| 亚洲午夜视频在线观看| 狠狠色丁香婷婷综合久久片| 韩国一区二区三区| 国产成人啪免费观看软件| 在线观看精品一区| 91精品国产综合久久久久久久 | 欧美成人a∨高清免费观看| 欧美大片顶级少妇| 国产精品久久久久久久久久久免费看 | 亚洲日韩欧美一区二区在线| 亚洲一区二区三区中文字幕在线| 偷窥国产亚洲免费视频| 豆国产96在线|亚洲| 色网综合在线观看| 3751色影院一区二区三区| 欧美mv日韩mv国产网站app| 国产午夜精品一区二区三区嫩草 | 一区二区国产盗摄色噜噜| 亚洲电影中文字幕在线观看| 麻豆久久久久久| 91丨porny丨在线| 欧美日韩成人综合| 日韩精品中文字幕在线不卡尤物 | 日韩欧美国产三级电影视频| 日本一区二区三区电影| 欧美xxxx老人做受| 亚洲人成网站影音先锋播放| 麻豆精品视频在线观看免费| 欧美亚洲综合一区| 久久青草欧美一区二区三区| 国产精品久久久久久久久果冻传媒 | 精品对白一区国产伦| 一区二区三区在线视频播放| 国产米奇在线777精品观看| 欧美日韩国产综合久久| 欧美国产精品久久| 中文字幕欧美一| 国产精一品亚洲二区在线视频| 在线精品视频一区二区三四| 国产精品三级电影| 日本视频一区二区| 色又黄又爽网站www久久| 国产精品久线在线观看| 美女视频网站久久| 欧美一区二区三区免费视频| 一区二区三区国产豹纹内裤在线| 精品亚洲成av人在线观看| 欧美一区2区视频在线观看| 亚洲激情中文1区| 国产在线视视频有精品| 精品国产三级a在线观看| 亚洲永久免费视频| 色婷婷av一区二区三区大白胸 | 欧美丰满少妇xxxbbb| 中文字幕在线不卡国产视频| 成人综合婷婷国产精品久久蜜臀| 欧美一区二区三区男人的天堂| 最近中文字幕一区二区三区| 国模套图日韩精品一区二区| 91精彩视频在线| 玉足女爽爽91| 一本色道a无线码一区v| 欧美电影免费观看完整版| 99精品欧美一区二区蜜桃免费| 国产调教视频一区| 国产成人精品免费| 国产亚洲精品福利| 国产精品1区2区3区| 亚洲精品一区在线观看| 捆绑调教美女网站视频一区| 天天av天天翘天天综合网| 成人动漫中文字幕| 日韩精品一区二区三区在线 | 综合自拍亚洲综合图不卡区| 丁香激情综合国产| 国产喷白浆一区二区三区| 99久久伊人网影院| 久久久久国产成人精品亚洲午夜| 日韩高清在线一区| 日韩三级电影网址| 久久精品国产第一区二区三区| 日本一区二区三区高清不卡| 成人午夜视频网站| 亚洲人成电影网站色mp4| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲精品高清在线观看| 欧美区在线观看| 国内成人自拍视频| 久久久国产综合精品女国产盗摄| 成人黄色软件下载|