張海紅,史丹青,武建衛(wèi),郭夕琴
(南京機電職業(yè)技術(shù)學(xué)院,江蘇南京,211135)
在測量的對象領(lǐng)域內(nèi),溫度和濕度是非常重要的。無論是人類的生存,還是生活環(huán)境,工農(nóng)業(yè)生產(chǎn),軍事,氣象觀測,溫度的測量和控制以及濕度的測量和控制都是很重要的環(huán)節(jié)。隨著計算機技術(shù)、通信技術(shù)、電子技術(shù)、傳感器和傳感器材料技術(shù)的進步,溫度和濕度檢測都取得了跨越式發(fā)展。對溫度和濕度的測量與監(jiān)控也是十分有意義的。
通過對智能溫濕度傳感器特性的研究,設(shè)計出合理的硬件電路,編寫高效的處理器軟件,顯示溫濕度信息,然后根據(jù)溫濕度信息控制加熱換氣裝置。溫濕度信息由傳感器的敏感元件獲得,其輸出經(jīng)過信號調(diào)理電路放大、線性化、去除干擾等并獲得與A/D轉(zhuǎn)換器相適配的模擬信號,此信號通過A/D轉(zhuǎn)換器轉(zhuǎn)換為微處理器可接受的數(shù)字信號。以單片機為核心的軟硬件處理電路對采集到的信號進行編程處理后輸出到顯示模塊,實時反映溫濕度值。瑞士Sensiri-on公司生產(chǎn)的SHT11是具有二線串行接口的單片全校準數(shù)字式新型相對溫度和濕度傳感器。它將傳感器技術(shù)與CMOS芯片技術(shù)相融合,可用來測量零點、相對溫度、相對濕度等參數(shù),具有數(shù)字式輸出、免標定、免外圍電路、免調(diào)試及全互換的特點,最終為開發(fā)高精度、高可靠性、高集成度的溫濕度測控系統(tǒng)提供了解決方案。
本設(shè)計以AT89C52單片機系統(tǒng)為核心,首先通過SHT11溫濕度傳感器采集現(xiàn)場的溫濕度數(shù)據(jù),然后經(jīng)過SHT11溫濕度傳感器自身的A/ D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字代碼;再通過51單片機利用LCD1602顯示當(dāng)前現(xiàn)場的溫濕度值,同時設(shè)置上下限;當(dāng)前溫濕度超過預(yù)設(shè)最高上限時,報警并且燈亮,同時啟動加熱換氣裝置工作;當(dāng)溫濕度低于預(yù)設(shè)最低下限時,報警并且燈亮,同時啟動加熱換氣裝置工作??梢愿鶕?jù)不同的要求設(shè)置不同的越限值從而使其寬廣的測溫濕度范圍能夠廣泛地應(yīng)用到溫濕度監(jiān)測當(dāng)中去。
2.2.1 SHT11簡介
瑞士Scnsirion 公司推出的SHT11是一款集溫度傳感器和濕度傳感器于一體的數(shù)字溫濕度傳感器芯片。因此在進行溫濕度實時監(jiān)測的系統(tǒng)采用SHT11傳感器,就具備成本低、體積小、精度高、接口簡單等特點。而且SHT11芯片的抗干擾能力也比同類芯片高,因為該芯片內(nèi)部集成了14位A/D轉(zhuǎn)換器,且采用了數(shù)字信號輸出。
2.2.2 SHT11與單片機的接口電路
MCU(單片機)和SHT11傳感器通信采用串行二線接口DATA和SCK,其中DATA為數(shù)據(jù)線,SCK則為時鐘線,然而I2C協(xié)議與該二線串行通信協(xié)議是不兼容的。在程序開始時,MCU需要用一組“啟動傳輸”時序表示數(shù)據(jù)傳輸?shù)膯印H鐖D2-3所示,當(dāng)SCK時鐘為高電平時,DATA翻轉(zhuǎn)為低電平;緊接著SCK變?yōu)榈碗娖剑S后又變?yōu)楦唠娖?;在SCK時鐘為高電平時,DATA再次翻轉(zhuǎn)為高電平。
圖2-3 數(shù)據(jù)傳輸啟動時序
如圖2-4所示,為SHT11傳感器與單片機的接口電路。SHT11只有二個引腳,一個數(shù)字串行引腳接單片機P1.0口,SCK引腳接單片機P1.1口。電源與數(shù)字串行引腳間要接一個4K的電阻R2。R2是上拉電阻,因為單片機的P1口驅(qū)動能力有限,目的是為了使傳感器接收的數(shù)據(jù)能夠可靠的進行。
圖2-4 SHT11與單片機接口電路
軟件設(shè)計是在硬件設(shè)計的基礎(chǔ)上進行的,良好的軟件設(shè)計是實現(xiàn)系統(tǒng)功能的重要環(huán)節(jié)。系統(tǒng)能否正常運行,除了硬件的合理設(shè)計外,很大程度上取決于功能完善、算法先進的軟件設(shè)計。本系統(tǒng)是以AT89C52為硬件設(shè)計系統(tǒng)的核心,系統(tǒng)軟件部分主要包括數(shù)據(jù)采集模塊、數(shù)據(jù)顯示模塊、報警模塊,其中數(shù)據(jù)采集模塊包括溫濕度的采集、數(shù)據(jù)處理A/D轉(zhuǎn)換,報警模塊包括報警指示和報警處理。數(shù)據(jù)采集模塊將接收到的傳感器發(fā)出的模擬信號采集到單片機。數(shù)據(jù)處理模塊通過對接收到的采樣信號進行實時處理轉(zhuǎn)換、最后實現(xiàn)數(shù)據(jù)通信、驅(qū)動顯示等,軟件系統(tǒng)框圖如下圖所示:
這些程序相互獨立,在主程序中依次被調(diào)用。單片機處理的是數(shù)字信號,對接受的數(shù)據(jù)進行采集即可得到數(shù)字信號;數(shù)據(jù)處理模塊由單片機實現(xiàn),對采樣信號進行實時控制、數(shù)據(jù)通信、驅(qū)動顯示、驅(qū)動運行等;顯示部分主要用LCD顯示,LCD由單片機驅(qū)動。
3.2.1 主程序流程圖
主程序是設(shè)計的主體,是由功能不同的子程序組成。本系統(tǒng)主程序的運行如下操作:串口初始化,完成初始化操作后,循環(huán)掃描鍵盤,當(dāng)有相應(yīng)按鍵時對應(yīng)不同的功能,SHT11開始采集溫濕度數(shù)據(jù),經(jīng)LCD1602數(shù)碼管顯示讀數(shù),判斷溫濕度是否超出設(shè)定范圍,如若超出則報警,并且報警指示燈亮,蜂鳴器報警,同時啟動加熱換氣電路。主程序流程圖如圖3-2所示。
圖3-2 主程序流程圖
圖3-3 報警電路程序流程圖
3.2.2 報警電路程序流程圖
報警模塊具備兩項功能,即為報警燈和聲音報警。聲音報警是從聽覺上提醒用戶,而報警燈則是從視覺上提醒用戶。當(dāng)讀取的溫度值超過上下限時,紅燈亮并且報警,當(dāng)濕度值超過上下限時,黃燈亮并且報警。流程圖如圖3-3所示。
3.2.3 SHT11讀取溫濕度程序流程圖
單片機與SHT11進行通信是采用的二線串行數(shù)字接口,需要用單片機的I/0口模擬通信時序,因為該通信協(xié)議與通用的I2C總線協(xié)議是不兼容的。對于SHT11的控制,MCU是通過5個六位命令代碼實現(xiàn)的,命令代碼的含義分別是:00101:測量濕度;00011:測量溫度;00110:寫內(nèi)部狀態(tài)寄存器;00111:讀內(nèi)部狀態(tài)寄存器;11110:復(fù)位命令,使內(nèi)部狀態(tài)寄存器恢復(fù)默認值;其他的來設(shè)置分辨率。
程序開始首先對溫濕度傳感器SHT11進行初始化,檢測是否正常工作,然后單片機發(fā)出指令與SHT11連接測量溫濕度,接著溫濕度傳感器SHT11進行溫濕度計算以及A/D轉(zhuǎn)換,再發(fā)送給主機,并反復(fù)調(diào)用復(fù)位、寫入及讀取數(shù)據(jù)子程序,之后再經(jīng)數(shù)據(jù)轉(zhuǎn)換,由數(shù)碼管顯示出來,不斷循環(huán)。流程圖如圖3-4所示
圖3-4 SHT11讀取溫濕度程序流程圖 圖3-5 LCD1602顯示溫濕度程序流程圖
3.2.4 LCD1602顯示溫濕度程序流程圖
圖4-2 對話框
程序首先對LCD1602初始化,檢查是否忙碌,如果不忙碌則主機發(fā)送模式設(shè)置指令或顯示指令寫入LCD1602中,然后指定字符顯示的實際地址,將數(shù)據(jù)寫入LCD1602中,顯示溫濕度。流程圖如圖3-5所示
本設(shè)計的硬件仿真由Protues軟件實現(xiàn),軟件調(diào)試由Keil C51軟件實現(xiàn),通過軟硬件的結(jié)合實現(xiàn)總體設(shè)計的仿真。
4.1.1 系統(tǒng)仿真
(1)在Protues仿真軟件中,分布好元器件,連接好電路圖,電路圖如圖4-1所示。
(2)運用Keil uVision4編程軟件進行C語言編程,運用模塊化的程序設(shè)計思路對不同功能模塊的程序進行分別編程,以便移植或調(diào)用,這樣使軟件層次結(jié)構(gòu)清晰,有利于軟件的調(diào)試修改。編程完成之后,選擇Project——Build target,編譯程序,編譯結(jié)果如圖19所示
(3)在Protues選中單片機芯片,在彈出的對話框中選中Program File的文件夾圖標。對話框如圖4-2所示。
(4)在彈出的對話框里選中剛剛生成的HEX文件,點擊OK。即可將HEX文件加載到單片機芯片中。
4.1.2 仿真結(jié)果分析
仿真結(jié)果如圖所示。LCD液晶顯示分別顯示、“Temp:****”、“Humi :****”,其中“****”為測定的數(shù)據(jù)。按鍵一下,顯示“溫度上下限和測量值”,再次按鍵顯示“濕度的上下限和測量值”。
溫度在25℃-75℃之間屬于正常情況,低于25℃高于75℃都不是正常情況。
濕度在25%RH-65%RH之間屬于正常情況,低于25%RH高于65%RH都不是正常情況
(1)正常溫濕度區(qū)間內(nèi):
圖4-1 硬件設(shè)計仿真結(jié)果圖
正常顯示,沒有報警
(2)超過正常溫度和濕度上下限
超出預(yù)設(shè)溫度上下限,紅燈亮,蜂鳴器響,加熱換氣裝置運轉(zhuǎn)。
超過預(yù)設(shè)濕度上下限,黃燈亮,蜂鳴器響,加熱換氣裝置運轉(zhuǎn)。
(3)系統(tǒng)上下限顯示
溫度范圍為25-75℃,濕度范圍為20-65%RH量顯示
圖4-4 系統(tǒng)溫度上下限及測量顯示
圖3-1 軟件系統(tǒng)框圖
由于該系統(tǒng)采用的核心是高效單片機,主要的采集與測量系統(tǒng)是集溫度傳感器和濕度傳感器于一體的SHT11,自帶A/D轉(zhuǎn)換器,從而該溫濕度控制儀具有體積小、成本低、精度高、接口簡單及良好抗干擾能力等優(yōu)點,再加上優(yōu)化程序,一定意義上本系統(tǒng)具有了很高的實用性。
圖4-3 正常時仿真結(jié)果圖
[1]易順明,趙海蘭,袁然.現(xiàn)代電子技術(shù)[J].電子技術(shù)雜志,2011.(07).
[2]陳永甫.電子電路智能化設(shè)計實例與應(yīng)用[M].北京電子工業(yè)出版社,2002.(08).
[3]程捷,何晨.儀表技術(shù)[J].中國科技報,2011.(06).
[4]周樂安.基于MSP430單片機的溫濕度控制器[J].四川兵工學(xué)報,2008.(02).
[5]何希才.傳感器及應(yīng)用電路[M].北京電子工業(yè)出版社出版,2001.(08).
[6]牛小弟.基于PC總線式溫度檢測系統(tǒng)的研究[D].河北科技大學(xué),2010.
[7]楊寶強.基于AT89C2051的溫濕度控制儀[J].電子技術(shù),2004.(04).
[8]朱真才.基于AT89S51單片機車間溫濕度控制系統(tǒng)設(shè)計[J].煤礦機械,2011.(09).
[9]李云峰.基于B/S模式的溫濕度在線監(jiān)控系統(tǒng)[D].東北大學(xué),2009.
[10]馬建國.電子系統(tǒng)設(shè)計[M].北京電子工業(yè)出版社,2002.
[11]郭金影.基于單片機的LCD顯示屏系統(tǒng)設(shè)計[D].武漢理工大學(xué),2011.
[12]冉偉剛.溫室大棚數(shù)據(jù)采集系統(tǒng)[J].蘭州大學(xué),2010.
[13]Coord3 S.P.A Measuring software for co-ordinate measuring machines Versions 3.7[M],2001.(04).
[14]Scott MacKenzie.THE 8051MICROCONTROLLER[M].USAPrentice-Hall.Inc,2002.
[15]陳小平.PROTEL99SE--電子線路CAD[M].東南大學(xué)出版社,2005