標(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)行

仿真總電路圖

部分程序:
/*********************************************************/
// 往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