誰能發(fā)張溫濕度傳感器sht11和單片機(jī)連接原理圖,現(xiàn)成的也可以。謝謝
-
w6722288013@126.com基于AT89c51,外接sht11溫濕度采集程序,用1602顯示?。。?!... w6722288013@126.com 基于AT89c51,外接sht11溫濕度采集程序,用1602顯示?。。?! 展開
全部評論(1條)
-
- 二十三畫生_凡 2017-10-03 00:00:00
- 原理圖很簡單 就是把sht11的數(shù)據(jù)口和時(shí)鐘口就到單片機(jī)的兩個(gè)端口,關(guān)鍵是編程啊,下面一段是我之前寫的一段關(guān)于sht11的程序,希望能幫到你,有問題交流下的 #include <reg52.h> //頭文件 #include <intrins.h> #include <stdio.h> // #include <math.h> //Keil library //************************************** #define uchar unsigned char //定義一下方便使用 #define uint unsigned int //定義一下方便使用 #define ulong unsigned long //定義一下方便使用 #define TEMP_ML 0x03 //000 0001 1 溫度命令 #define HUMI_ML 0x05 //000 0010 1 溫度命令 unsigned char error ;//全局錯(cuò)誤變量 unsigned char ack ;//全局應(yīng)答變量 //float temp_zi ;//全局應(yīng)答變量 //float humi_zi ;//全局應(yīng)答變量 unsigned char temp_h ;//全局應(yīng)答變量 unsigned char temp_LL ;//全局應(yīng)答變量 unsigned int xianzhi_t=0;//溫度顯值 unsigned int xianzhi_h=0;//濕度顯值 uchar setzhi_h,setzhi_l; bit setbz_h,setbz_l,setkey; sbit DATA =P2^6;//數(shù)據(jù) sbit SCK=P2^7;//時(shí)鐘 sbit hot =P2^0;// 加熱 sbit motor =P2^1;// 電機(jī) sbit speek =P2^2;// 聲音 sbit set =P0^0;// 設(shè)置 sbit setup =P0^1;// 設(shè)置+ sbit setdown =P0^2;// 設(shè)置- sbit gwei =P3^4;//個(gè)位 sbit swei =P3^3;//十位 sbit bwei =P3^2;//百位 sbit qwei =P3^1;//千位 unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共陽 //*******************************基本驅(qū)動(dòng)程 ///////////////// ////////////////////// char read() //讀一個(gè)字節(jié) 返回應(yīng)答信號 //---------------------------------------------------------------------------------- // reads a byte form the Sensibus and gives an acknowledge in case of "ack=1" { unsigned char i,val=0; temp_LL=0; temp_h=0; DATA=1; //釋放數(shù)據(jù)總線 for (i=0x80;i>0;i/=2) //位移8位 { SCK=1; //上升沿讀入 if (DATA) val=(val | i); //確定值 SCK=0; } DATA=0; //讀應(yīng)答信號,有應(yīng)答為1,為應(yīng)答為0 通過CPU下拉為應(yīng)答 SCK=1; //第9個(gè)脈沖 _nop_(); _nop_(); _nop_(); //pulswith approx. 5 us SCK=0; DATA=1; //釋放數(shù)據(jù)總線 temp_h=val; val=0; ////低8位///////////////////////////// DATA=1; //釋放數(shù)據(jù)總線 for (i=0x80;i>0;i/=2) //位移8位 { SCK=1; //上升沿讀入 if (DATA) val=(val | i); //確定值 SCK=0; } DATA=1;//0; //不需要應(yīng)答 通過CPU下拉為應(yīng)答 SCK=1; //第9個(gè)脈沖 _nop_(); _nop_(); _nop_(); //pulswith approx. 5 us SCK=0; DATA=1; //釋放數(shù)據(jù)總線 temp_LL=val; } //////////// char write(unsigned char value) //寫一個(gè)字節(jié) 返回應(yīng)答信號 //--------------------------------------------------------- { unsigned char i ; ack=0; for (i=0x80;i>0;i/=2) //釋放數(shù)據(jù)總線 { if (i & value) DATA=1; //寫入值 else DATA=0; SCK=1; //上升沿寫入 _nop_(); _nop_(); _nop_(); //延時(shí) SCK=0; } DATA=1; //釋放數(shù)據(jù)總線 SCK=1; //第9個(gè)脈沖 if (DATA==1) ack=1; //讀應(yīng)答信號 SCK=0; return ack; //error=1 表示沒有應(yīng)答 } //////// void start_sht11(void) //啟動(dòng) //-------------------------------------------------------- { DATA=1; SCK=0; //數(shù)據(jù)為1,SCK=0 _nop_(); SCK=1; //diyi個(gè)脈沖 _nop_(); DATA=0; //數(shù)據(jù)跌落 _nop_ (); SCK=0; //完成一個(gè)脈沖 _nop_(); _nop_(); _nop_(); SCK=1; //再一個(gè)脈沖 _nop_(); DATA=1; //數(shù)據(jù)變?yōu)? _nop_(); SCK=0; //完成該脈沖 } ////////////////////////////////// void sht_rest(void) //復(fù)位 { unsigned char i; DATA=1; SCK=0; //數(shù)據(jù)為1 時(shí)鐘為0 for(i=0;i<9;i++) //9 個(gè)脈沖為 復(fù)位 { SCK=1; SCK=0; } start_sht11(); //啟動(dòng) } //////////////////////////////// //測量溫度或者是溫度,返回校驗(yàn)值 text_a(unsigned char ml) { unsigned int i; start_sht11(); //啟動(dòng) write(ml);//寫入測溫度 if (ack==1) { sht_rest() ;//復(fù)位 write(ml);//寫入測溫度 } //判斷是否處于忙 // DATA=1;//釋放數(shù)據(jù)總線 //for (i=0;i<65535;i++) if(DATA==0) break; for (i=0;i<55535;i++){ if(DATA==0) break;else {xianshi();} } read();//讀溫度 } /////////溫濕度處理////// text_jishuan_temp11() { error=0; ack=0; sht_rest() ;//復(fù)位 text_a(TEMP_ML); text_jishuan_temp(); key(); text_a(HUMI_ML); text_jishuan_humi(); } ///// //////////計(jì)算溫度//// text_jishuan_temp() { float aa=0,bb=0,temp_zi; int abcd=0; aa=(float)temp_h*256+(float)temp_LL; temp_zi=0.01*aa-40; // if (temp_zi<0) { temp_zi=0; } temp_zi=temp_zi*10; xianzhi_t=(int)temp_zi;//給顯示值 } ///////計(jì)算濕度////// text_jishuan_humi() { float aa=0,bb=0,humi_zi; int abcd=0; aa=(float)temp_h*256+(float)temp_LL; bb=aa*aa*2.8/1000000; aa=0.0405*aa; aa=aa-4-bb; humi_zi=aa; // humi_zi=humi_zi*10; xianzhi_h=(int)humi_zi; } ///////延時(shí)/////// delay(int i) { while(--i); } ///////顯示處理/////// xianshi() { int abcd=0; int i; for (i=0;i<1;i++) { abcd=xianzhi_h; gwei=1; swei=1; bwei=1; qwei=1; P1=dispcode[abcd/100]; qwei=0; delay(40); qwei=1; abcd=abcd%100 ; P1=dispcode[abcd/10]; bwei=0; delay(40); bwei=1; if(setbz_h^setbz_l) { if(setbz_h) abcd=setzhi_h; if(setbz_l) abcd=setzhi_l; P1=dispcode[abcd/10]; swei=0; delay(40); swei=1; P1=dispcode[abcd%10]; gwei=0; delay(40); gwei=1; } else { abcd=xianzhi_t; P1=dispcode[abcd/100]; swei=0; delay(40); swei=1; abcd=abcd%100 ; P1=dispcode[abcd/10]; gwei=0; delay(40); gwei=1; } } } doing() { char xianzhi_mi; xianzhi_mi=xianzhi_t/10; if((xianzhi_mi<setzhi_h)&(xianzhi_t>setzhi_l)) { motor=0;hot=0;speek=0;} if(xianzhi_mi>setzhi_h) { motor=1;hot=0;speek=1;} if(xianzhi_mi<setzhi_l) { motor=0;hot=1;speek=1;} } key() { if(set&setkey) { setkey=0; if(setbz_l) {setbz_l=0;setbz_h=0;} else { if(!setbz_h) setbz_h=1; else {setbz_h=0;setbz_l=1;} } } if(!set) setkey=1; if(setup==0) { if(setbz_h==1) { if (setzhi_h<=99) setzhi_h++;} if(setbz_l==1) { if ((setzhi_l<setzhi_h)&(setzhi_l<=99)) setzhi_l++;} } if(setdown==0) { if(setbz_h==1) { if ((setzhi_h>setzhi_l)&(setzhi_h>=1)) setzhi_h--;} if(setbz_l==1) { if (setzhi_l>=1) setzhi_l--;} } } //系統(tǒng)初始化/// csh() { P0=0XFF; P1=1; P2=0; P3=0XFF; } ///////////////////////////////// /////////////////////// main() { setzhi_h=22;//設(shè)置高溫 setzhi_l=20;//設(shè)置低溫 csh();//系統(tǒng)初始化 while(1) { text_jishuan_temp11();//測溫濕度 //xianshi();//顯示 doing();//處理 key();//鍵處理 // xianshi();//顯示 } }
-
贊(19)
回復(fù)(0)
熱門問答
- 誰能發(fā)張溫濕度傳感器sht11和單片機(jī)連接原理圖,現(xiàn)成的也可以。謝謝
- w6722288013@126.com基于AT89c51,外接sht11溫濕度采集程序,用1602顯示?。。?!... w6722288013@126.com 基于AT89c51,外接sht11溫濕度采集程序,用1602顯示!?。?! 展開
2017-10-02 22:55:09
338
1
- 誰能給個(gè)溫濕度傳感器sht11和單片機(jī)連接圖 要具體的圖
2012-04-11 12:12:34
436
3
- 溫濕度傳感器SHT10和SHT11的區(qū)別?
- 想知道sht10和sht11有什么區(qū)別?除了精度以外?他們的性能.工作原理.程序是不是都可以通用?麻煩詳細(xì)點(diǎn).謝謝!滿意還會(huì)加分的.... 想知道sht10和sht11有什么區(qū)別? 除了精度以外? 他們的性能.工作原理.程序是不是都可以通用? 麻煩詳細(xì)點(diǎn).謝謝! 滿意還會(huì)加分的. 展開
2009-03-15 07:26:02
579
2
- 100分,求溫濕度傳感器SHT11的源程序(51單片機(jī)語言)
- 謝謝了,在線等.... 謝謝了,在線等. 展開
2008-06-02 21:46:45
390
3
- 集成溫濕度傳感器SHT11和SHT10的區(qū)別~
- 是不是僅僅只有性能上的區(qū)別?使用和設(shè)計(jì)方法是不是一樣?如果不一樣,請說明不一樣在哪... 是不是僅僅只有性能上的區(qū)別? 使用和設(shè)計(jì)方法是不是一樣?如果不一樣,請說明不一樣在哪 展開
2009-02-28 13:53:05
457
3
- 單片機(jī)。溫濕度傳感器和土壤濕度傳感器
- 你好,是這樣的,做了一個(gè)自動(dòng)澆水和補(bǔ)光的,單片機(jī)上用的是溫濕度傳感器,電路還有模塊信息都弄焊接好了。就是在原先放溫濕度傳感器的地方可以直接換成土壤濕度傳感的嗎?... 你好,是這樣的,做了一個(gè)自動(dòng)澆水和補(bǔ)光的,單片機(jī)上用的是溫濕度傳感器,電路還有模塊信息都弄焊接好了。 就是在原先放溫濕度傳感器的地方 可以 直接換成土壤濕度傳感的嗎? 展開
2017-11-06 09:55:32
530
1
- C51單片機(jī)可以單總線連接多個(gè)AM2301溫濕度傳感器嗎?
2015-03-27 13:09:19
347
2
- 單片機(jī)通過溫濕度傳感器sht11控制草坪噴水,程序怎么寫???
2012-12-12 10:50:58
498
4
- 溫濕度傳感器SHT10與51單片機(jī)連接電路
2009-08-08 05:29:07
339
4
- SHT10(SHT11)溫濕度傳感器輸出數(shù)據(jù)不穩(wěn)定
- SHT10(或SHT11)測量濕度時(shí),輸出的數(shù)據(jù)不穩(wěn)定,比如測量74%濕度時(shí),在67%~82%之間跳動(dòng),測量溫度則偏高離普:測量22度時(shí),輸出為95度左右亂跳,也不穩(wěn)定。排除器件損壞的問題,因?yàn)閾Q... SHT10(或SHT11)測量濕度時(shí),輸出的數(shù)據(jù)不穩(wěn)定,比如測量74%濕度時(shí),在67%~82%之間跳動(dòng),測量溫度則偏高離普:測量22度時(shí),輸出為95度左右亂跳,也不穩(wěn)定。排除器件損壞的問題,因?yàn)閾Q了一個(gè)還是一樣,焊好之后也放置了24小時(shí)了,請哪位大師幫忙解決,感激不盡! 展開
2018-11-25 06:39:54
383
0
- DHT22 SHT11 這兩種溫濕度傳感器哪一種好
2017-08-02 23:06:41
266
1
- 溫濕度傳感器sht11芯片的封裝形式是什么
2012-07-17 09:56:43
432
2
- 單片機(jī)與溫濕度傳感器
- 板子是430F149芯片是DHT11LCD是1602求完整的main函數(shù),dht11驅(qū)動(dòng)函數(shù)和1602顯示函數(shù)琢磨半天了程序就是編譯不通過要能用的不要隨便抄的!大神直接聯(lián)系546709472濫竽充數(shù)的就不一一回復(fù)... 板子是430F149 芯片是DHT11 LCD是1602 求完整的main函數(shù),dht11驅(qū)動(dòng)函數(shù)和1602顯示函數(shù) 琢磨半天了 程序就是編譯不通過 要能用的不要隨便抄的! 大神直接聯(lián)系546709472 濫竽充數(shù)的就不一一回復(fù)了 展開
2014-12-11 09:58:06
348
3
- SHT11溫濕度傳感器能在protus里面仿真嗎?
- 有看到網(wǎng)上寫了關(guān)于SHT11在protus里面仿真的文章,但我自己沒在protus里面找到SHT11這個(gè)元件。和版本有關(guān)嗎?我的似乎是7.1的。如果不行,是否可以給我推薦個(gè)可以在protus里面仿真的濕... 有看到網(wǎng)上寫了關(guān)于SHT11在protus里面仿真的文章,但我自己沒在protus里面找到SHT11這個(gè)元件。和版本有關(guān)嗎?我的似乎是7.1的。 如果不行,是否可以給我推薦個(gè)可以在protus里面仿真的濕度傳感器或者溫濕度傳感器。。 先謝了! 展開
2009-11-24 03:10:39
455
5
- 請問SHT11是不是目前Z好的溫濕度傳感器
2012-04-04 12:01:56
398
6
- 關(guān)于sht11溫濕度傳感器不返回ACK的問題
- 單片機(jī)用的是STC90C516RD+,想通過軟件模擬I2C的方法接受sht11的溫濕度信號,并把數(shù)值用7段數(shù)碼管顯示出來,目前問題是傳感器不工作,不響應(yīng)ack信號,C程序和接線圖我都不知道哪里錯(cuò)誤... 單片機(jī)用的是STC90C516RD+,想通過軟件模擬I2C的方法接受sht11的溫濕度信號,并把數(shù)值用7段數(shù)碼管顯示出來,目前問題是傳感器不工作,不響應(yīng)ack信號,C程序和接線圖我都不知道哪里錯(cuò)誤,求幫助,我的郵箱是fgh0809@gmail.com 展開
2014-10-26 19:55:55
474
1
- 液位傳感器怎么和單片機(jī)連接,傳感器的哪里和單片機(jī)哪個(gè)串口連接
2018-05-07 12:43:43
437
1
- 單片機(jī)和水位傳感器如何連接?
- 想做一個(gè)水位監(jiān)測裝置,請問單片機(jī)和圖中這種水位傳感器如何相連?... 想做一個(gè)水位監(jiān)測裝置,請問單片機(jī)和圖中這種 水位傳感器如何相連? 展開
2015-03-03 09:57:04
572
3
- 誰能解釋一下SHT71溫濕度傳感器
2012-05-13 16:21:33
338
1
- I2C總線上可以接多個(gè)SHT11溫濕度傳感器嗎?SHT11好像沒有器件地址,是嗎?
2014-03-11 17:14:56
453
1
4月突出貢獻(xiàn)榜
推薦主頁
最新話題





參與評論
登錄后參與評論