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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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)             /*連續(xù)向右移動8位*/
  { 
    if (i & value) DATA=1;          /*把相應(yīng)的位送數(shù)據(jù)線*/
    else DATA=0;                        
    SCK=1;                          /*時序脈沖,應(yīng)嚴格按著此標準*/
    _nop_();
    _nop_();
    _nop_();                        /*大約0.5us*/	
    SCK=0;
  }
  DATA=1;                           /*釋放數(shù)據(jù)線*/
  SCK=1;                            /*第9位作為響應(yīng)位*/
  error=DATA;                       /*檢測響應(yīng)情況,如果有響應(yīng)數(shù)據(jù)線就會被SHT10拉低*/
  SCK=0;        
  return error;                     /*返回1表示沒響應(yīng)*/
}

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

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

void connectionreset(void)//復(fù)位:當DATA線處于高低平時,觸發(fā)SCK9次以上(含9次),此后應(yīng)接發(fā)一個"傳輸開始"命令
{  
  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);
 }
}
/*************************************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产精品人| 美女网站色91| 亚洲视频一二三| 亚洲丝袜美腿综合| 成人黄色在线网站| 欧美日韩亚洲综合在线 | 婷婷中文字幕一区三区| 国内一区二区在线| 在线观看av不卡| 久久亚洲精品小早川怜子| 一区二区三区中文字幕精品精品| 日本成人在线看| av一区二区三区| 欧美一区午夜视频在线观看| 国产精品成人免费| 免费欧美高清视频| 欧美日韩国产精选| 亚洲少妇屁股交4| 在线视频欧美区| 美女www一区二区| 国产精品欧美久久久久无广告 | 日本91福利区| 国产女人18水真多18精品一级做| 蜜桃久久av一区| 国产精品免费人成网站| 在线观看一区二区视频| 精品亚洲porn| 久久久久综合网| 91丨porny丨蝌蚪视频| 国产精品久久久久天堂| 欧美日韩精品高清| 国产精品亚洲第一区在线暖暖韩国| 欧美精品日韩综合在线| 日韩国产精品久久久| 日本一区二区久久| 国产呦萝稀缺另类资源| 精品国产3级a| 狠狠色2019综合网| 亚洲精品日产精品乱码不卡| 色素色在线综合| 中文字幕不卡在线观看| 在线成人免费观看| 丁香一区二区三区| 国产精品国产三级国产普通话三级| 欧美亚洲国产一区二区三区| 一区二区三区国产精品| 国产欧美一区二区精品性| 欧美系列在线观看| 国产99一区视频免费 | 亚洲国产精品成人综合色在线婷婷 | 狠狠色狠狠色综合| 亚洲成人黄色影院| 欧美伦理视频网站| 色女孩综合影院| 不卡在线观看av| 国产精品一区二区黑丝| 裸体健美xxxx欧美裸体表演| 91精品国产综合久久久蜜臀粉嫩 | 亚洲国产精品人人做人人爽| 欧美疯狂性受xxxxx喷水图片| 不卡的av在线| 国产乱理伦片在线观看夜一区| 婷婷亚洲久悠悠色悠在线播放| 一区二区三区中文免费| 中文字幕在线不卡一区| 7777精品伊人久久久大香线蕉经典版下载| 成人h动漫精品一区二区| 国产精品亚洲午夜一区二区三区| 老司机精品视频一区二区三区| 婷婷开心激情综合| 亚洲国产视频一区| 亚洲精品伦理在线| 亚洲色欲色欲www| 樱花草国产18久久久久| 亚洲欧美日韩国产手机在线| 日韩欧美国产不卡| av在线不卡观看免费观看| 国产黑丝在线一区二区三区| 午夜私人影院久久久久| 亚洲va韩国va欧美va| 丝袜美腿高跟呻吟高潮一区| 国产精品视频观看| 国产精品国产成人国产三级| 国产精品久久久久久久岛一牛影视| 久久久99精品久久| 91.麻豆视频| 欧美一区二区视频在线观看2020| 日韩欧美你懂的| 久久久不卡影院| 中文一区二区完整视频在线观看| 国产精品久久久久一区二区三区| 亚洲免费在线观看| 亚洲另类春色国产| 亚洲成人免费影院| 看片的网站亚洲| 国产精品2024| 91丨国产丨九色丨pron| 欧美日本免费一区二区三区| 欧美精品在欧美一区二区少妇| 6080yy午夜一二三区久久| 久久久美女毛片| 日本一区二区三区高清不卡| 亚洲欧美偷拍卡通变态| 亚洲成人av电影在线| 久久精品国产**网站演员| 国产99久久久久久免费看农村| 91麻豆swag| 制服.丝袜.亚洲.另类.中文| 久久九九影视网| 有码一区二区三区| 奇米精品一区二区三区在线观看| 成人性生交大片免费看中文网站| 国产在线播放一区三区四| 99re6这里只有精品视频在线观看| 国产成人综合网| 欧洲国内综合视频| 欧美成人r级一区二区三区| 日韩亚洲欧美在线观看| 7777精品伊人久久久大香线蕉完整版| 欧美mv日韩mv国产| 亚洲乱码中文字幕| 久久av资源网| 日本高清不卡视频| 欧美偷拍一区二区| 久久久亚洲国产美女国产盗摄 | 国内成+人亚洲+欧美+综合在线| av中文字幕亚洲| 精品国产乱码久久久久久牛牛 | 欧美不卡一二三| 一区二区三区**美女毛片| 国产高清成人在线| 欧美精品精品一区| |精品福利一区二区三区| 久久99国产乱子伦精品免费| 欧美性色综合网| 中文字幕视频一区二区三区久| 日本亚洲视频在线| 91久久精品一区二区三| 欧美国产丝袜视频| 精品一区二区三区久久| 欧美喷水一区二区| 有坂深雪av一区二区精品| 成人不卡免费av| 久久嫩草精品久久久精品一| 日韩精品三区四区| 色综合婷婷久久| 777xxx欧美| 亚洲一区电影777| 国产在线日韩欧美| 91精品国产综合久久久久久久| 亚洲综合在线第一页| 91在线视频播放地址| 欧美极品美女视频| 国产美女一区二区| 久久久久久久久免费| 国内成人免费视频| 精品美女一区二区三区| 青青草国产成人99久久| 在线综合视频播放| 日韩精品免费视频人成| 制服丝袜亚洲播放| 日本va欧美va精品| 日韩三级视频中文字幕| 美国欧美日韩国产在线播放| 日韩一区二区不卡| 蜜臀久久久久久久| 91精品国产aⅴ一区二区| 美女视频免费一区| 精品免费99久久| 国产麻豆精品theporn| 久久久亚洲高清| 不卡区在线中文字幕| 亚洲欧美国产三级| 欧美在线综合视频| 日本麻豆一区二区三区视频| 日韩一二三区视频| 狠狠色狠狠色综合| 亚洲国产精品成人综合| www.欧美亚洲| 玉米视频成人免费看| 555夜色666亚洲国产免| 久久成人久久爱| 国产精品色婷婷| 日本二三区不卡| 日韩精品午夜视频| 久久综合九色综合97_久久久| 成人精品免费视频| 亚洲男同性恋视频| 91精选在线观看| 国产精品影音先锋| 亚洲色图欧洲色图| 色av一区二区| 久久精品国产免费| 国产精品久久久久久久久图文区| 欧美亚日韩国产aⅴ精品中极品| 美腿丝袜亚洲色图| 国产精品久久精品日日| 欧美日韩在线电影| 韩国欧美国产1区| 一区二区三区在线视频免费 |