国产三级在线看完整版-内射白嫩大屁股在线播放91-欧美精品国产精品综合-国产精品视频网站一区-一二三四在线观看视频韩国-国产不卡国产不卡国产精品不卡-日本岛国一区二区三区四区-成年人免费在线看片网站-熟女少妇一区二区三区四区

儀器網(wǎng)(yiqi.com)歡迎您!

| 注冊2 登錄
網(wǎng)站首頁-資訊-話題-產(chǎn)品-評測-品牌庫-供應商-展會-招標-采購-知識-技術(shù)-社區(qū)-資料-方案-產(chǎn)品庫-視頻

問答社區(qū)

100分,求溫濕度傳感器SHT11的源程序(51單片機語言)

小Q740593168 2008-06-02 21:46:45 390  瀏覽
  • 謝謝了,在線等.... 謝謝了,在線等. 展開

參與評論

全部評論(3條)

  • gfgftgfygfty 2008-06-03 00:00:00
    你好! 我的博客里有<<SHT11溫度濕度傳感器的詳細資料包獲C代碼和使用方法>> 請留下郵箱!

    贊(19)

    回復(0)

    評論

  • 鑼鼓愛好人 2012-08-14 00:00:00
    #include <reg52.h> #define uchar unsigned char #define uint unsigned int //數(shù)碼管位定義 sbit dula = P2^6; sbit wela = P2^7; #define OK 1 #define ERROR 0 #define NUMBER 20 #define SIZE 5 sbit dht11 = P2^0; uchar status; //存放五字節(jié)數(shù)據(jù)的數(shù)組 uchar value_array[SIZE]; /*可在其他的文件引用溫濕度值,實際是溫度的整數(shù)的10 倍 如dht11 讀回的溫度是26,則temp_value = 260, 濕度同理*/ uchar flag; //數(shù)碼管編碼 uchar code array[]= { 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f }; int temp_value, humi_value; void InitTime(void); //void Delay_1ms(uint ms); void SMG_Display(uint value); void Delay_1ms(uint ms) { uint x, y; for(x = ms; x > 0; x--) { for(y = 124; y > 0; y--); } } void Delay_10us(void) { unsigned char i; i--; i--; i--; i--; i--; i--; } /*讀一個字節(jié)的數(shù)據(jù)*/ uchar ReadValue(void) { uchar count, value = 0, i; status = OK; //設定標志為正常狀態(tài) for(i = 8; i > 0; i--) { //高位在先 value <<= 1; count = 0; //每一位數(shù)據(jù)前會有一個50us 的低電平時間.等待50us 低電平結(jié)束 while(dht11 == 0 && count++ < NUMBER); if(count >= NUMBER) { status = ERROR; //設定錯誤標志 return 0; //函數(shù)執(zhí)行過程發(fā)生錯誤就退出函數(shù) } //26-28us 的高電平表示該位是0,為70us 高電平表該位1 Delay_10us(); Delay_10us(); Delay_10us(); //延時30us 后檢測數(shù)據(jù)線是否還是高電平 if(dht11 != 0) { //進入這里表示該位是1 value++; //等待剩余(約40us)的高電平結(jié)束 while(dht11 != 0 && count++ < NUMBER) { dht11 = 1; } if(count >= NUMBER) { status = ERROR; //設定錯誤標志 return 0; } } } return (value); } //讀一次的數(shù)據(jù),共五字節(jié) uchar ReadTempAndHumi(void) { uchar i = 0, check_value = 0,count = 0; EA = 0; dht11 = 0; //拉低數(shù)據(jù)線大于18ms 發(fā)送開始信號 Delay_1ms(20); //需大于18 毫秒 dht11 = 1; //釋放數(shù)據(jù)線,用于檢測低電平的應答信號 //延時20-40us,等待一段時間后檢測應答信號,應答信號是從機拉低數(shù)據(jù)線80us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); if(dht11 != 0) //檢測應答信號,應答信號是低電平 { //沒應答信號 EA = 1; return ERROR; } else { //有應答信號 while(dht11 == 0 && count++ < NUMBER); //等待應答信號結(jié)束 if(count >= NUMBER) //檢測計數(shù)器是否超過了設定的范圍 { dht11 = 1; EA = 1; return ERROR; //讀數(shù)據(jù)出錯,退出函數(shù) } count = 0; dht11 = 1;//釋放數(shù)據(jù)線 //應答信號后會有一個80us 的高電平,等待高電平結(jié)束 while(dht11 != 0 && count++ < NUMBER); if(count >= NUMBER) { dht11 = 1; EA = 1; return ERROR; //退出函數(shù) } //讀出濕.溫度值 for(i = 0; i < SIZE; i++) { value_array[i] = ReadValue(); if(status == ERROR)//調(diào)用ReadValue()讀數(shù)據(jù)出錯會設定status 為ERROR { dht11 = 1; EA = 1; return ERROR; } //讀出的Z后一個值是校驗值不需加上去 if(i != SIZE - 1) { //讀出的五字節(jié)數(shù)據(jù)中的前四字節(jié)數(shù)據(jù)和等于第五字節(jié)數(shù)據(jù)表示成功 check_value += value_array[i]; } }//end for //在沒用發(fā)生函數(shù)調(diào)用失敗時進行校驗 if(check_value == value_array[SIZE - 1]) { //將溫濕度擴大10 倍方便分離出每一位 humi_value = value_array[0] * 10; temp_value = value_array[2] * 10; dht11 = 1; EA = 1; return OK; //正確的讀出dht11 輸出的數(shù)據(jù) } else { //校驗數(shù)據(jù)出錯 EA = 1; return ERROR; } } } void main(void) { uchar mark = 0; //先等上電穩(wěn)定 Delay_1ms(1000); //因為讀一次數(shù)據(jù)dht11 才會觸發(fā)一次采集數(shù)據(jù). //即在先使用數(shù)據(jù)時采集一次數(shù)據(jù) ReadTempAndHumi(); //因為在兩次采集數(shù)據(jù)需一定的時間間隔,這里還可減少 Delay_1ms(3000); //設定定時器 InitTime(); while(1) { //三秒讀一次溫濕度 if(flag == 60) { flag = 0; mark++; /* //讀溫濕度,可檢測函數(shù)調(diào)用是否失敗, //函數(shù)返回OK(1)表示成功,返回ERROR(0)表示失敗 //OK和ERROR是在DHT11.H中定義的宏 */ ReadTempAndHumi(); } if(mark % 2 == 0) { //顯示溫度 SMG_Display(temp_value); } else { //顯示濕度 SMG_Display(humi_value); } } } //設定定時器 void InitTime(void) { TH0 = (65535 - 50000)/256; TL0 = (65535 - 50000)%256 ; TMOD = 0X01; TR0 = 1; ET0 = 1; EA = 1; } //數(shù)碼管顯示函數(shù) void SMG_Display(uint value) { uchar ge, bai, shi; ge = value % 10; shi = value % 100 / 10; bai = value % 1000 / 100; wela=1; P0 = 0XFE; wela=0; P0 = 0XFF; dula=1;; P0 = array[bai]; dula=0; Delay_1ms(2); wela=1; P0 = 0XFD; wela=0; P0 = 0XFF; dula=1; P0 = array[shi]; P0 |= 0x80; /*顯示小數(shù)點*/ dula=0; Delay_1ms(2); wela=1; P0 = 0XFB; wela=0; P0 = 0XFF; dula=1; P0 = array[ge]; dula=0; Delay_1ms(2); } //中斷函數(shù) void timer(void) interrupt 1 { TH0 = (65535 - 50000)/256; TL0 = (65535 - 50000)%256; flag++; }

    贊(2)

    回復(0)

    評論

  • 航錐臘媒頓么 2016-06-09 00:00:00
    #define DATA P1_1 #define SCK P1_0 #define ACK 1 #define noACK 0 #define MEASURE_TEMP 0x03 //測量溫度命令 #define MEASURE_HUMI 0x05 //測量濕度命令 //讀溫濕度數(shù)據(jù) char s-measure(unsigned char *p- value, un-signed char *p_checksum, unsigned char mode) { unsigned char error=0; unsigned int i; s_transstart(); //傳輸開始 switch(mode){ case TEMP:error+=s_write_byte(measure_temp); break; case HUMI:error+=s_write_byte(measure_humi);break; default:break; } for(i=0;i<65535;i++) if(DATA==0) break; if (DATA) reeor+=1; *(p_value)=s_read_byte(ACK); *(p_value+1)=s_read_byte(ACK); *p_checksum=s_read_byte(noACK); return error; } //溫濕度值標度變換及溫度補償 void calc_sth15(float *p_humidity,float *p_tempera-ture) { const float c1=-4.0; const float c2=0.0405; const float c3=-0.0000028; const float t1=-0.01; const float t2=0.00008; float rh=×p_humidity; float t=×p_temperature; float rh_lin; float th_ture; float t_c; t_c=t×0.01-40; rh_lin=c3×rh×rh+c2×rh+c1; trh_ture=(t_c-25)×(t1+t2×rh)+rh_lin; ×p_temperature=t-c; ×p_humidity=rh_ture; } //從相對溫度和濕度計算露點 char calc_dewpoint(float h,float t) {float logex,dew_point;
    logex=0.66077+7.5×t/(237.3+t)+[log10(h)-2];
    dew_point=(logex-0.66077)×237.3/(0.66077+7.5-logex);
    return dew_point;
    }

    贊(20)

    回復(0)

    評論

熱門問答

100分,求溫濕度傳感器SHT11的源程序(51單片機語言)
謝謝了,在線等.... 謝謝了,在線等. 展開
2008-06-02 21:46:45 390 3
溫濕度傳感器SHT10與51單片機連接電路
 
2009-08-08 05:29:07 339 4
哪位大俠有51單片機控制直流電機的源程序
 
2017-12-13 05:13:18 290 1
急求 基于51單片機 yl69土壤濕度傳感器 lcd1602顯示濕度c語言程序
 
2016-11-10 05:49:23 476 2
溫濕度傳感器SHT10和SHT11的區(qū)別?
想知道sht10和sht11有什么區(qū)別?除了精度以外?他們的性能.工作原理.程序是不是都可以通用?麻煩詳細點.謝謝!滿意還會加分的.... 想知道sht10和sht11有什么區(qū)別? 除了精度以外? 他們的性能.工作原理.程序是不是都可以通用? 麻煩詳細點.謝謝! 滿意還會加分的. 展開
2009-03-15 07:26:02 579 2
求基于51單片機YL69土壤濕度傳感器的C語言代碼,包括AD轉(zhuǎn)換,謝謝。
 
2018-11-29 07:57:23 347 0
單片機通過溫濕度傳感器sht11控制草坪噴水,程序怎么寫?。?
 
2012-12-12 10:50:58 498 4
51單片機讀取溫濕度傳感器數(shù)據(jù),顯示在1602上
求電路圖···... 求電路圖··· 展開
2014-02-09 06:49:05 400 3
誰能給個溫濕度傳感器sht11和單片機連接圖 要具體的圖
 
2012-04-11 12:12:34 436 3
c語言的單片機控制的空調(diào)溫度控制系統(tǒng)的源程序
 
2012-02-15 01:32:02 383 2
請問有誰寫過htu21d溫濕度傳感器的51單片機 c程序嗎,求參考一下
 
2018-11-14 00:47:32 282 0
SHT10(SHT11)溫濕度傳感器輸出數(shù)據(jù)不穩(wěn)定
SHT10(或SHT11)測量濕度時,輸出的數(shù)據(jù)不穩(wěn)定,比如測量74%濕度時,在67%~82%之間跳動,測量溫度則偏高離普:測量22度時,輸出為95度左右亂跳,也不穩(wěn)定。排除器件損壞的問題,因為換... SHT10(或SHT11)測量濕度時,輸出的數(shù)據(jù)不穩(wěn)定,比如測量74%濕度時,在67%~82%之間跳動,測量溫度則偏高離普:測量22度時,輸出為95度左右亂跳,也不穩(wěn)定。排除器件損壞的問題,因為換了一個還是一樣,焊好之后也放置了24小時了,請哪位大師幫忙解決,感激不盡! 展開
2018-11-25 06:39:54 383 0
DHT22 SHT11 這兩種溫濕度傳感器哪一種好
 
2017-08-02 23:06:41 266 1
51單片機溫度控制系統(tǒng)的C語言程序
設計基于單片計算機的溫度控制器。用于控制電加熱爐的溫度。具體要求如下1.溫度連續(xù)可調(diào),范圍為30℃~150℃2.超調(diào)量σ%≤20%3.溫度誤差≤±0.5℃4.人-機對話方便5.控制算法采用PID或改... 設計基于單片計算機的溫度控制器。用于控制電加熱爐的溫度。具體要求如下 1. 溫度連續(xù)可調(diào),范圍為30℃~150℃ 2. 超調(diào)量σ%≤20% 3. 溫度誤差≤±0.5℃ 4. 人-機對話方便 5. 控制算法采用PID或改進的PID或其他算法 .請發(fā)至3166109374@qq.com 謝謝幫忙 具體見http://wenku.baidu.com/view/e0feacf0f121dd36a22d822c 展開
2015-06-07 00:06:30 504 3
溫濕度傳感器sht11芯片的封裝形式是什么
 
2012-07-17 09:56:43 432 2
集成溫濕度傳感器SHT11和SHT10的區(qū)別~
是不是僅僅只有性能上的區(qū)別?使用和設計方法是不是一樣?如果不一樣,請說明不一樣在哪... 是不是僅僅只有性能上的區(qū)別? 使用和設計方法是不是一樣?如果不一樣,請說明不一樣在哪 展開
2009-02-28 13:53:05 457 3
嵌入式溫濕度傳感器C語言代碼求幫忙注釋
嵌入式溫濕度無線傳感器,C語言代碼求幫忙注釋,關(guān)鍵的地方注釋一下,越多越好。無線傳感器網(wǎng)絡源代碼發(fā)到百度貼吧了ht\t\p://tieba.baidu.com/p/2801429171... 嵌入式溫濕度無線傳感器,C語言代碼求幫忙注釋,關(guān)鍵的地方注釋一下,越多越好。無線傳感器網(wǎng)絡源代碼發(fā)到百度貼吧了h t \t \p:// ti e ba.baidu.com/p/28 01429 171 展開
2016-07-02 07:25:08 595 1
單片機與溫濕度傳感器
板子是430F149芯片是DHT11LCD是1602求完整的main函數(shù),dht11驅(qū)動函數(shù)和1602顯示函數(shù)琢磨半天了程序就是編譯不通過要能用的不要隨便抄的!大神直接聯(lián)系546709472濫竽充數(shù)的就不一一回復... 板子是430F149 芯片是DHT11 LCD是1602 求完整的main函數(shù),dht11驅(qū)動函數(shù)和1602顯示函數(shù) 琢磨半天了 程序就是編譯不通過 要能用的不要隨便抄的! 大神直接聯(lián)系546709472 濫竽充數(shù)的就不一一回復了 展開
2014-12-11 09:58:06 348 3
求DHT22/AM2302溫濕度傳感器AT89S52單片機程序
求DHT22/AM2302溫濕度傳感器AT89S52單片機程序,就是溫濕度數(shù)據(jù)讀取和處理的哪方面。求具體程序。... 求DHT22/AM2302溫濕度傳感器AT89S52單片機程序,就是溫濕度數(shù)據(jù)讀取和處理的哪方面。求具體程序。 展開
2012-05-29 02:50:34 362 2
SHT11溫濕度傳感器能在protus里面仿真嗎?
有看到網(wǎng)上寫了關(guān)于SHT11在protus里面仿真的文章,但我自己沒在protus里面找到SHT11這個元件。和版本有關(guān)嗎?我的似乎是7.1的。如果不行,是否可以給我推薦個可以在protus里面仿真的濕... 有看到網(wǎng)上寫了關(guān)于SHT11在protus里面仿真的文章,但我自己沒在protus里面找到SHT11這個元件。和版本有關(guān)嗎?我的似乎是7.1的。 如果不行,是否可以給我推薦個可以在protus里面仿真的濕度傳感器或者溫濕度傳感器。。 先謝了! 展開
2009-11-24 03:10:39 455 5

4月突出貢獻榜

推薦主頁

最新話題