標(biāo)題: 51單片機(jī)SHT11傳感器溫濕度監(jiān)控系統(tǒng)仿真設(shè)計(jì) [打印本頁]
作者: 交大Boy 時間: 2019-8-18 21:24
標(biāo)題: 51單片機(jī)SHT11傳感器溫濕度監(jiān)控系統(tǒng)仿真設(shè)計(jì)
設(shè)計(jì)要求
1.設(shè)計(jì)一套基于51單片機(jī)的溫濕度Proteus仿真監(jiān)控系統(tǒng);
2.采用SHT11、DHT11或DS18B20傳感器模塊;
3.LCD液晶實(shí)時顯示當(dāng)前環(huán)境溫濕度值;
4.設(shè)計(jì)報警單元,實(shí)現(xiàn)系統(tǒng)對超限溫濕度監(jiān)控報警;
5.設(shè)計(jì)輸入單元,可對系統(tǒng)正常溫濕度范圍進(jìn)行調(diào)節(jié);
6.仿真系統(tǒng)能夠可靠、穩(wěn)定地運(yùn)行;
概述
系統(tǒng)通過SHT11溫濕度傳感器感應(yīng)周圍的環(huán)境的溫度和濕度,通過單片機(jī)對采集到的數(shù)據(jù)進(jìn)行讀取處理,經(jīng)過LCD1602顯示模塊實(shí)時顯示溫濕度數(shù)據(jù),同時可以通過按鍵模塊對溫濕度報警上、下限值進(jìn)行設(shè)定。當(dāng)SHT11讀取的溫濕度值不再設(shè)定范圍內(nèi)時,報警模塊LED燈指示故障信息,同時蜂鳴器報警;當(dāng)溫濕度讀取數(shù)據(jù)正常后,LED燈熄滅,蜂鳴器關(guān)閉。
系統(tǒng)運(yùn)行
資料截圖5.jpg (82.99 KB, 下載次數(shù): 96)
下載附件
2019-8-18 21:20 上傳
仿真總電路圖
模糊化.jpg (195.21 KB, 下載次數(shù): 102)
下載附件
2019-8-18 21:20 上傳
部分程序:
/*********************************************************/
// 往SHT11寫入一個字節(jié)
/*********************************************************/
char ShtWriteByte(unsigned char value)
{
unsigned char i,error=0;
for(i=128;i>0;i>>=1) // 高位為1,循環(huán)右移
{
if (i&value)
Data_P=1; // 和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位
else
Data_P=0;
Sck_P=1;
_nop_(); // 延時3us
_nop_();
_nop_();
Sck_P=0;
}
Data_P=1; // 釋放數(shù)據(jù)線
Sck_P=1;
error=Data_P; // 檢查應(yīng)答信號,確認(rèn)通訊正常
_nop_();
_nop_();
_nop_();
Sck_P=0;
Data_P=1;
return error; // error=1 通訊錯誤
}
/*********************************************************/
// 從SHT11讀出一個字節(jié)
/*********************************************************/
char ShtReadByte(unsigned char ack)
{
unsigned char i,val=0;
Data_P=1; // 釋放數(shù)據(jù)線
for(i=0x80;i>0;i>>=1) // 高位為1,循環(huán)右移
{
Sck_P=1;
if(Data_P)
val=(val|i); // 讀一位數(shù)據(jù)線的值
Sck_P=0;
}
Data_P=!ack; // 如果是校驗(yàn),讀取完后結(jié)束通訊
Sck_P=1;
_nop_(); // 延時3us
_nop_();
_nop_();
Sck_P=0;
_nop_();
_nop_();
_nop_();
Data_P=1; // 釋放數(shù)據(jù)線
return val;
}
/*********************************************************/
// SHT11啟動傳輸
/*********************************************************/
void ShtTransStart(void)
{
Data_P=1;
Sck_P=0;
_nop_();
Sck_P=1;
_nop_();
Data_P=0;
_nop_();
Sck_P=0;
_nop_();
_nop_();
_nop_();
Sck_P=1;
_nop_();
Data_P=1;
_nop_();
Sck_P=0;
}
作者: lipei 時間: 2020-1-9 19:46
可以給完整的仿真圖和程序嗎
作者: 15655555 時間: 2020-2-13 10:02
給sht11的時序圖也行,不然不會用
作者: 迷迷糊糊看世界 時間: 2020-2-13 19:48
這套資料可以分享一下嗎?
作者: 若璃123 時間: 2020-5-26 23:10
師兄?梢
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |