李明明,代紹慶,朱海鋒,吳榮森
(嘉興職業(yè)技術(shù)學(xué)院,浙江 嘉興 314000)
基于AT89C51單片機(jī)的溫濕度測(cè)試系統(tǒng)設(shè)計(jì)與仿真
李明明,代紹慶,朱海鋒,吳榮森
(嘉興職業(yè)技術(shù)學(xué)院,浙江 嘉興 314000)
基于AT89C51單片機(jī)和SHT11芯片為溫濕度傳感器的溫濕度測(cè)試系統(tǒng),以實(shí)時(shí)存儲(chǔ)相關(guān)溫濕度數(shù)據(jù)。測(cè)試系統(tǒng)的硬件設(shè)計(jì)包括基礎(chǔ)電路、按鍵電路、顯示電路和溫濕度控制電路;測(cè)試系統(tǒng)的軟件設(shè)計(jì)包括按鍵控制、溫濕度讀取、溫濕度計(jì)算、數(shù)據(jù)存儲(chǔ)等。
AT89C51單片機(jī);SHT11;顯示電路
單片機(jī)的使用變得更加便捷,具有低電壓、低功耗、控制功能強(qiáng)、環(huán)境適應(yīng)能力強(qiáng)等特點(diǎn)。隨著單片機(jī)技術(shù)在智能產(chǎn)品中的廣泛應(yīng)用,航空事業(yè)、醫(yī)藥方面、家居產(chǎn)品的智能化管理及過程控制等領(lǐng)域均涉及單片機(jī)應(yīng)用產(chǎn)品[1]。溫度檢測(cè)與控制是微機(jī)測(cè)控的重要學(xué)科也是測(cè)控技術(shù)中的研究重點(diǎn)[2-5]。大多數(shù)電子設(shè)備對(duì)溫度濕度尤為敏感,不良溫濕度環(huán)境會(huì)導(dǎo)致設(shè)備出錯(cuò)甚至損壞。因此,溫濕度測(cè)試是實(shí)現(xiàn)工業(yè)生產(chǎn)提供安全保障的基礎(chǔ)[6-7]。
AT89C51含有4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory),是一種具有高性能CMOS、低電壓的8位微處理器的單片機(jī)。在嵌入式控制系統(tǒng)中提供了靈活性高且價(jià)廉的多種方案[8]。
為了有效利用AT89C51單片機(jī)完成溫濕度測(cè)試系統(tǒng)設(shè)計(jì),引入SHT11芯片。SHT11芯片是一種具有數(shù)字校準(zhǔn)功能的復(fù)合型溫濕度傳感器[7-8],它采用傳統(tǒng)工業(yè)COMS微加工技術(shù),因而產(chǎn)品應(yīng)用性上具有極高的可靠性和卓越的長(zhǎng)期穩(wěn)定性,但是SHT11芯片在實(shí)際應(yīng)用中對(duì)環(huán)境有著極高的要求。當(dāng)前SHT11主要應(yīng)用于工業(yè)生產(chǎn)、過程控制、環(huán)境監(jiān)測(cè)、家用電器、氣象領(lǐng)域[9]。
如何設(shè)計(jì)一款成本低廉、測(cè)量準(zhǔn)確、操作簡(jiǎn)單的溫濕度測(cè)試系統(tǒng)成為一個(gè)重要問題。整個(gè)系統(tǒng)以AT89C52為核心,溫濕度傳感器SHT11完成環(huán)境溫濕度轉(zhuǎn)換功能,其輸出為數(shù)字形式,可以直接對(duì)單片機(jī)進(jìn)行處理;利用簡(jiǎn)單的三鍵測(cè)試鍵盤聯(lián)合中斷方式處理測(cè)試過程,一定程度上減少了占用CPU的時(shí)間。綜合而言,其成本小、操作方便、結(jié)構(gòu)簡(jiǎn)單,滿足工業(yè)生產(chǎn)需要。
分析溫濕度監(jiān)測(cè)系統(tǒng)在實(shí)驗(yàn)室環(huán)境與現(xiàn)實(shí)應(yīng)用中的區(qū)別,系統(tǒng)設(shè)計(jì)側(cè)重于實(shí)驗(yàn)室環(huán)境下溫濕度測(cè)試系統(tǒng)的設(shè)計(jì)。通過單片機(jī)與外部設(shè)備之間的命令發(fā)出與回收,以SHT11溫濕度傳感器采集溫濕度信息,利用軟件對(duì)溫濕度信號(hào)進(jìn)行分析處理、解決相應(yīng)問題。具體電路結(jié)構(gòu)如圖1所示,常用的晶振電路、復(fù)位電路和AT89C51單片機(jī)中,增加了溫濕度傳感器、按鍵電路、顯示電路、工作狀態(tài)指示系統(tǒng)等。
圖2為硬件電路原理圖,通過P0端口增加上拉電阻以防止短路,并與LM016L相接,用于顯示溫濕度狀況;溫濕度傳感器通過與P2端口的P2.1、P2.2引腳相連,實(shí)現(xiàn)了溫濕度測(cè)試結(jié)果的輸入和輸出;按鍵電路與P1端口的P1.4-P1.7相連,用以修改溫濕度。
1.1 SHT11芯片與接口
SHT11的內(nèi)部結(jié)構(gòu)如圖3所示,其中包括一個(gè)高分子電阻型濕敏元件和一個(gè) NTC測(cè)溫元件、一個(gè)14位的A/D轉(zhuǎn)換器,并與一個(gè)高性能8位單片機(jī)相連接并能夠CRC傳輸校驗(yàn)。其具有品質(zhì)好、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比高、精確校準(zhǔn)等優(yōu)點(diǎn)。
圖2 基本電路設(shè)計(jì)
圖3 SHT11內(nèi)部結(jié)構(gòu)
1.2 其它硬件系統(tǒng)說明
LM016L液晶顯示芯片作為L(zhǎng)CD液晶顯示系統(tǒng)中使用率最高的顯示芯片,其特點(diǎn)主要集中在低功耗、體積小、數(shù)字式顯示等方面。其中,最為常用的1602LCD選擇2行*16字的顯示格式。LM016L液晶顯示器的電路結(jié)構(gòu)如圖4所示。引腳接口包括8個(gè)數(shù)據(jù)位、RS、RW、E信號(hào)引腳。
圖4 LM016L元件電路原理
按鍵模塊主要用于修改溫濕度初始值或者出現(xiàn)溫濕度數(shù)據(jù)有誤時(shí)作修改用。按鍵電路無(wú)法避免去抖工作,一般采用軟件去抖,即按鍵按下時(shí)對(duì)應(yīng)低電平,執(zhí)行延時(shí)程序若干毫秒后,確認(rèn)該按鍵是否還是低電平,如果仍為低電平,可以確定按鍵被按下。當(dāng)按鍵松開時(shí),行線的低電平為高電平,執(zhí)行一段延時(shí)程序后,仍為高電平時(shí),說明按鍵已經(jīng)松開。
2.1 應(yīng)用程序模塊整體設(shè)計(jì)
針對(duì)51單片機(jī)應(yīng)用C語(yǔ)言程序設(shè)計(jì)方法以實(shí)現(xiàn)系統(tǒng)各項(xiàng)功能。系統(tǒng)程序流程如圖5所示。
2.2 溫濕度讀取子程序
讀取溫濕度子程序的主要功能包括SHT11的初始化,判斷SHT11是否存在。如果SHT11存在,執(zhí)行ROM操作命令、存儲(chǔ)操作命令、讀取溫濕度。否則返回,其程序流程如圖6所示。
2.3 溫濕度處理
溫濕度讀取轉(zhuǎn)換過程中,存在溫濕度計(jì)算方法的處理,其中ROM操作命令主要為存儲(chǔ)操作,RAM操作命令為溫濕度轉(zhuǎn)換中數(shù)據(jù)的存儲(chǔ)。RAM中的BCD碼需轉(zhuǎn)換運(yùn)算才能被讀取,而溫濕度計(jì)算子程序正是顯示此功能,并進(jìn)行溫濕度值正負(fù)判定,其程序流程如圖7所示。
圖5 系統(tǒng)程序流程
圖6 讀溫濕度流程
圖7 計(jì)算溫濕度子程序
系統(tǒng)設(shè)計(jì)基于Keil5.0、Proteus7.8軟件分別完成軟件、硬件設(shè)計(jì)。其中關(guān)鍵的一步是系統(tǒng)調(diào)試,在硬件電路設(shè)計(jì)和程序設(shè)計(jì)過程中存在多次調(diào)試,最終的溫濕度測(cè)試系統(tǒng)也需要經(jīng)過多次調(diào)試。
3.1 硬件電路調(diào)試
硬件電路設(shè)計(jì)中往往存在很多失誤點(diǎn),導(dǎo)致硬件電路無(wú)法仿真成功。以下幾點(diǎn)為系統(tǒng)調(diào)試易錯(cuò)點(diǎn):①檢測(cè)焊接板是否存在復(fù)位引腳虛焊,如果存在虛焊,在引腳非復(fù)位狀態(tài)時(shí)其電壓仍然為高電平,解決方法是重新焊接焊點(diǎn)再仔細(xì)檢測(cè)是否還有錯(cuò)誤;②溫濕度測(cè)試電路調(diào)試,在調(diào)試溫濕度測(cè)試電路時(shí),由于測(cè)試比較復(fù)雜,所以采用先用面板上進(jìn)行插接,通過給一個(gè)高電平到測(cè)試電路輸入,看它是否能夠驅(qū)動(dòng)狀態(tài)顯示電路。在面板上調(diào)試成功后再焊接到電路板上。
3.2 系統(tǒng)軟件調(diào)試
系統(tǒng)設(shè)計(jì)過程包括需求分析設(shè)計(jì)、系統(tǒng)源程序編寫、系統(tǒng)仿真程序燒錄等。重復(fù)測(cè)試、操作過程必不可少。具體軟件調(diào)試步驟如下:
(1)溫濕度傳感器不能正常測(cè)量溫濕度。原因:使用SHT11數(shù)字式溫濕度傳感器時(shí),需要嚴(yán)格遵守時(shí)序方法。解決方法:重新分析時(shí)序關(guān)系。
(2)模塊化程序設(shè)計(jì),分布式調(diào)試程序結(jié)果。包括溫濕度采集、讀取、轉(zhuǎn)換、計(jì)算等功能,繼而完成總體調(diào)試。
(3)設(shè)置程序斷點(diǎn),給予模塊中變量賦值,檢查運(yùn)算結(jié)果,核對(duì)輸出結(jié)果的正確性。系統(tǒng)核心代碼如下:
void calcHumi(void)
{ float aa=0, bb=0, humi_zi;
aa=(float)temp_H*256+(float)temp_L;
bb=aa*aa*2.8/1000000;
aa=0.0405*aa;
aa=aa-8-bb;
humi_zi=aa;
humi_zi=humi_zi*10;
Humi=(int)humi_zi;
// 濕度分段補(bǔ)償
if(Humi >= 150 && Humi <= 700)
Humi = Humi +10;
else if(Humi > 700 && Humi <= 840)
Humi = Humi + 20;
else if(Humi >= 840 && Humi <= 930)
Humi = Humi + 30;
else if(Humi > 930)
Humi = Humi + 40
;}
基于AT89C51單片機(jī)和SHT11溫濕度傳感器設(shè)計(jì)溫濕度測(cè)試系統(tǒng),硬件結(jié)構(gòu)主要通過LM016L顯示芯片、按鍵電路、SHT11芯片和基礎(chǔ)電路完成,軟件部分主要包括溫濕度控制程序、溫濕度讀取、計(jì)算程序?qū)崿F(xiàn)溫濕度測(cè)試系統(tǒng)的主要框架。系統(tǒng)仿真效果明顯,下一步工作將圍繞實(shí)體產(chǎn)品完成測(cè)試系統(tǒng)的進(jìn)一步設(shè)計(jì)。
[1] 聞人達(dá).帶有溫濕度控制程序的設(shè)計(jì)[J].電子技術(shù)與軟件工程,2015(16):140-141.
[2] 蔣之玨.基于AT89C51單片機(jī)的溫濕度控制設(shè)計(jì)[J].科技傳播,2013(14):120-121.
[3] 李揚(yáng).基于AT89C51單片機(jī)溫濕度的研究[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2013(5):55-57.
[4] 陳佳明,馬杰思.基于單片機(jī)的溫濕度模塊設(shè)計(jì)[J].中國(guó)新通信,2012(6):45.
[5] 田娜,楊冰清,楊超越.基于單片機(jī)的溫濕度控制與應(yīng)用[J].河北北方學(xué)院學(xué)報(bào):自然科學(xué)版,2013(6):25-28.
[6] 貢駕哲.基于51單片機(jī)的溫濕度的設(shè)計(jì)與制作[J].中國(guó)科技信息,2011(18): 67-70.
[7] 于熙然.基于AT89C51單片機(jī)的溫濕度系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2012(2):35-36.
[8] 李慶華.多功能溫濕度測(cè)試系統(tǒng)的設(shè)計(jì)[J].電腦與電信,2012(4):74-75.
[9] 郭琳.利用單片機(jī)如何制作溫濕度系統(tǒng)[J].數(shù)字化用戶,2014(6):126.
[10] 陳皓, 周航. 一種基于AT89S52單片機(jī)的LED顯示器設(shè)計(jì)[J]. 電子制作, 2014(2):61-62.
(責(zé)任編輯:孫 娟)
李明明(1988-),女,湖北黃岡人,碩士,嘉興職業(yè)技術(shù)學(xué)院助教,研究方向?yàn)榉植际接?jì)算、物聯(lián)網(wǎng)應(yīng)用開發(fā);代紹慶(1972-),男,湖北仙桃人,碩士,嘉興職業(yè)技術(shù)學(xué)院副教授,研究方向?yàn)榉植际接?jì)算、物聯(lián)網(wǎng)應(yīng)用開發(fā)。
10.11907/rjdk.162414
TP319
A
1672-7800(2017)003-0100-03