鄭晨曦 吳次南
摘要:當(dāng)前常見的溫濕度采集設(shè)備普遍較大,使用比較麻煩。因此,針對一些特定環(huán)境對溫濕度采集設(shè)備小型化、精度要求高、使用方便的需要,設(shè)計了一種使用單片機(jī)為控制芯片,具有高精度的溫濕度采集方案,并在Protues軟件中進(jìn)行了功能仿真。本文從整體設(shè)計、單片機(jī)、溫濕度傳感器等方面進(jìn)行了闡述。
關(guān)鍵詞:溫濕度;采集;小型;設(shè)計;仿真
中圖分類號:TP3 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)08-0262-03
溫濕度是環(huán)境中最基本的參數(shù)變量,與人們生產(chǎn)生活息息相關(guān)。一款小型的溫濕度的采集設(shè)備,可以準(zhǔn)確又方便地獲知溫濕度數(shù)據(jù)具有一定現(xiàn)實意義。國外的溫濕度監(jiān)控系統(tǒng)相對比較先進(jìn),無論是傳感器的測量精度、反應(yīng)速度、穩(wěn)定性、功能多樣性,還是使用環(huán)境方面技術(shù)都比較領(lǐng)先。普通的溫濕度采集系統(tǒng)中的溫濕度測量均采納熱敏電阻與濕敏電容,這種傳統(tǒng)的模擬式溫濕度傳感器一般都必須設(shè)計信號調(diào)理電路并通過繁瑣的校準(zhǔn)和標(biāo)定過程,因而測量精度很難確保,且在線性度、重復(fù)性、互換性等方面也存在問題。
環(huán)境的監(jiān)測應(yīng)用廣泛,在當(dāng)今使用最廣泛的MCU就是單片機(jī)了,AT89C51使用廣泛,價格低廉,在常見的儀器、工業(yè)控制等領(lǐng)域的發(fā)揮著極其重要的作用,用其作為溫濕度檢測控制系統(tǒng)的實例也很多。使用A T89C51作為溫濕度采集設(shè)備的處理單元可以對環(huán)境的溫度金額濕度進(jìn)行自動檢測,而且AT89C51單片機(jī)目前使用多,專注于51單片機(jī)的研究人員多,具有相對較多的文獻(xiàn)資料參考,對于本設(shè)計來說AT89C51單片機(jī)有超小尺寸的封裝,適合做成小型的溫濕度采集設(shè)備。使用該型號單片機(jī)設(shè)的系統(tǒng),可以及時、精確的反映環(huán)境內(nèi)溫度以及濕度的變化趨勢,結(jié)果直觀。在軟件設(shè)計過程中也可以設(shè)置到一定溫度范圍內(nèi)報警提示,在濕度控制方面也是如此。將此系統(tǒng)應(yīng)用到對溫濕度有要求的環(huán)境中無疑可以節(jié)省不少人力物力。
系統(tǒng)實現(xiàn)的功能主要有對環(huán)境溫濕度進(jìn)行循環(huán)檢測,通過采集的溫濕度與設(shè)定值作對比,及時通過報警裝置進(jìn)行報警。
1系統(tǒng)總體設(shè)計
采用溫濕度測量、控制技術(shù)等技術(shù),使用應(yīng)用廣泛的單片機(jī)作為控制核心,用傳感器測量外界溫濕度,構(gòu)成溫濕度測量監(jiān)控系統(tǒng)。系統(tǒng)硬件方面主要有測量電路、顯示模塊、報警電路。根據(jù)系統(tǒng)要求選用的器件主要有:AT89C51單片機(jī)、溫濕度傳感器SHT11、AMPIRE128x64顯示模塊、報警裝置蜂鳴器等。
在系統(tǒng)工作時,SHT11溫濕度傳感器采集的環(huán)境溫濕度數(shù)字信號會在芯片內(nèi)部直接轉(zhuǎn)換成數(shù)字信號,該信號直接傳輸給單片機(jī)經(jīng)由單片機(jī)進(jìn)行處理,再把處理過的數(shù)據(jù)顯示在LCD上;當(dāng)單片機(jī)得到的數(shù)值符合設(shè)定的范圍時,蜂鳴報警器發(fā)出報警聲,單片機(jī)編程語言很多,C語言被大部分研發(fā)人員所采用。
本系統(tǒng)的核心為溫濕度數(shù)據(jù)的采集,單片機(jī)作為控制裝置,負(fù)責(zé)中心運算和控制,協(xié)調(diào)系統(tǒng)各個模塊的工作。
2系統(tǒng)硬件設(shè)計
2.1溫濕度傳感器
SHT11是瑞士Sensirion公司生產(chǎn)的數(shù)字式溫濕度傳感器,其中溫度傳感器由能隙材料制成的溫度敏感元件,濕度傳感器采用電容性聚合體濕度敏感元件。傳感器的校準(zhǔn)系數(shù)存儲在芯片內(nèi)部的OTP內(nèi)存中。經(jīng)校準(zhǔn)的相對溫濕度傳感器與一個14位的高精度ADC相連接,可直接將處理過的數(shù)字溫濕度二進(jìn)制信號送給,2c總線器件,最后將信號轉(zhuǎn)換為滿足12C總線協(xié)議的串行數(shù)字信號。
因為傳感器與電路結(jié)合在一起,因而該傳感器具備比其他類型的濕度傳感器更為優(yōu)越的性能。一個是傳感器信號的強(qiáng)度增加,這會增大了傳感器的抗干擾性,保證了傳感器的長期穩(wěn)定工作,而A/D數(shù)模轉(zhuǎn)換的同時完成,降低了傳感器對干擾噪聲信號的敏感度。傳感器可直接通過12C總線與A T89C51單片機(jī)系統(tǒng)連接。
SHT11需要2.4-5.5V范圍內(nèi)的電壓供電以保證正常運行,所以在本設(shè)計中采用容易得到的3.3V供電電壓。為了得到一個純凈且幅度相對穩(wěn)定的電源,在VDD與GND引腳之間接一個100nF的電容,用來去耦濾波。SHT11的串行接口在很多方面做了處理和優(yōu)化,在傳感器信號讀取和電源損耗方面表現(xiàn)突出。SHT11與微處理器的連接見圖1。
SCK用于微處理器控制SHT11的工作頻率。DATA引腳為三態(tài)結(jié)構(gòu),用于單片機(jī)和SHT11之間數(shù)據(jù)的傳輸。當(dāng)傳感器接收到相關(guān)指令后時,SCK上升沿時DATA有效,DATA在SCK下降沿之后改變田,在SCK高電平時一直保持穩(wěn)定。
2.2AT89C51單片機(jī)
AT89C51可通過編程設(shè)置成省電模式。比如在空閑模式下,MCU暫停工作,定時計數(shù)器、RAM、串行口、中斷系統(tǒng)則繼續(xù)工作。在掉電模式時凍結(jié)振蕩器從而保存只讀存儲器的數(shù)據(jù),停止芯片其他功能直至外中斷激活或硬件復(fù)位,以保證數(shù)據(jù)不會丟失。本系統(tǒng)中選用價格較低、工作穩(wěn)定、使用廣泛的AT89C51單片機(jī)作為整個系統(tǒng)的控制器,并且還可以做小采集設(shè)備的尺寸,使用中方便。
時鐘電路是給單片機(jī)工作時提供所必須的時鐘方波信號,其實單片機(jī)的本身就是一個復(fù)雜的時序電路。為實現(xiàn)各種工作方式,A T89C51在CLK信號的控制下嚴(yán)格地按時序執(zhí)行指令進(jìn)行工作,時鐘信號的質(zhì)量能嚴(yán)重影響系統(tǒng)的工作穩(wěn)定性。因為時鐘頻率負(fù)責(zé)控制單片機(jī)的運行秩序,所以單片機(jī)速度也在一定程度上受時鐘信號影響。設(shè)計一個穩(wěn)定的時鐘電路對系統(tǒng)的正常穩(wěn)定運行至關(guān)重要。A T89C51單片機(jī)XTAL1引腳與XTAL2引腳的內(nèi)部有一個用于構(gòu)成振蕩的高增益反相放大器。這兩個引腳跨接石英振蕩器和微調(diào)電容可以構(gòu)成一個穩(wěn)定的振蕩器。外部提供時鐘的工作時,外部時鐘源直接接到XTAL1接口,而XTAL2端直接懸空即可,本設(shè)計采用在XTAL1與XTAL2之間跨接石英振蕩器的方式提供時鐘信號(如圖2)。
電路中C1、C2電容值為30PF,電容值若太小直接影響振蕩頻率的穩(wěn)定和快速性。晶振頻率一般選擇2MHZ到12MHZ,在一定范圍內(nèi)晶振頻率越高單片機(jī)的速度就越快,但同時對存儲器速度也就提出了更高的要求。從系統(tǒng)穩(wěn)定性方面考慮,采用穩(wěn)定性相對更好的NPO電容,晶振頻率為12MHZ。
單片機(jī)的初始化操作就是復(fù)位,在給單片機(jī)的RST引腳(復(fù)位引腳)上加大于2個機(jī)器周期或者24個振蕩周期的高電平信號就可使51單片機(jī)復(fù)位。在一般的設(shè)計中復(fù)位電路有采用自動復(fù)位或者按鈕復(fù)位兩種方式。上電復(fù)位是通過外部電路給電容充放電的原理給RST引腳一個短的高電平信號(如圖3所示),次信號隨著電源對1uF的電容進(jìn)行充電而逐漸從高電平回落,實際上電容的充電時間決定RST引腳上高電平持續(xù)的時間。為保證單片機(jī)能可靠地復(fù)位,RST引腳上的高電平必須維持足夠長的時間,也就是選擇一個相對容量較大的電容。
2.3液晶顯示模塊設(shè)計
本設(shè)計是利用AT89C51單片機(jī)的串行口與顯示器I/O接口相連。LCD的顯示原理是利用液晶通過電壓對其顯示區(qū)域進(jìn)行控制的物理特性,有電壓的區(qū)域就顯示,而通過控制通斷電就可以顯示出不同的圖形或者字符。AMPIRE128*64顯示器整個屏幕分左、右兩個屏,每個半屏右8頁,每頁有8行,數(shù)據(jù)是豎行排列。顯示一個字要16*16點,全屏有128*64個點,故可顯示32個中文漢字。每兩頁顯示一行漢字,可顯示4行漢字,每行8個漢字,共32個漢字。而顯示數(shù)據(jù)則要16*8個點,顯示數(shù)據(jù)是漢字的兩倍。顯示電路的連接如圖3-7所示。也即單片機(jī)的P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,P2.0,P2.1,P2.2,P2.3,P2.4,分別與顯示器的DB0,DB1,DB2,DB3,DB4,DBS,DB6,DB7,CS2,CS1,EN,RVV,RS端口連接(如圖4所示)。
2.4報警電路
在一些特殊的應(yīng)用場景,對溫濕度有一定的要求,本設(shè)計是為在溫濕度監(jiān)測過程中如果溫濕度的超出設(shè)定值的范圍而提示報警,蜂鳴器與單片機(jī)的P1.5口相連,通過控制P1.5口的電平高低實現(xiàn)報警。比如溫濕度過限時,P1.5口被置1,報警系統(tǒng)開始工作;相反若P1.5口處于低電位,則蜂鳴器不工作也就是不報警。
3軟件設(shè)計
系統(tǒng)軟件部分主要有系統(tǒng)初始化模塊,傳感器監(jiān)測模塊,LCD顯示模塊,報警模塊,報警值判斷與控制模塊幾個部分組成。
單片機(jī)主程序的設(shè)計過程中應(yīng)該重視如下幾個問題:1)溫濕度顯示;2)溫濕度值轉(zhuǎn)換;3)越限報警和處理。
SHT11傳感器的轉(zhuǎn)換公式如下:
溫度轉(zhuǎn)換公式:T=d1+d2*SOt
公式中的參數(shù)dl=-40,d2=0.01
相對濕度轉(zhuǎn)換公式:
RHline=C1+C2*SOrh+C3*SOrh*SOrhr(檢測數(shù)據(jù)的線性化SOrh為單片機(jī)接收到的數(shù)據(jù))
RHtrue=(T-25)*(tl+t2*SOrh)+RHline
公式中的參數(shù):C1=-4,C2=0,0405,C3=-0.0000028,t1=0.01,t2=0.00008(適用于12位測量精度)
4系統(tǒng)仿真
PROTUES是單片機(jī)設(shè)計中使用非常廣泛的EDA工具(仿真軟件),由英國的Labcenter公司開發(fā)。PRO-TUES軟件在做單片機(jī)設(shè)計中使用方便,它可以滿足從原理圖布置、單片機(jī)代碼調(diào)試、外圍電路協(xié)同仿真等過程直接切換到PCB設(shè)計,做到了從概念設(shè)計到仿真驗證再到實物電路設(shè)計的一鍵切換。PROTUES軟件中包含有混合模式的仿真器以及VSM嵌入式仿真器,提供了許多的仿真設(shè)備和一些經(jīng)常使用的大量元器件,其內(nèi)部有各種型號單片機(jī)、各種邏輯電路、調(diào)試工具,比如各種電子測試儀器:邏輯分析儀、串口終端、示波器、信號發(fā)生器等。以及各種顯示設(shè)備,如模擬儀表、數(shù)字儀表、噪聲與失真信號顯示器等,另外還有各種調(diào)試信號,直流、交流、脈沖及各種變化信號,它使得PROTUES可以同時仿真模擬數(shù)字電路多種系列單片機(jī)。
系統(tǒng)仿真使用C語言編程,在PROTUES仿真軟件設(shè)置關(guān)聯(lián)程序,能在虛擬的LCD準(zhǔn)確顯示溫度和濕度值如圖5,在溫濕度超過設(shè)定值能實時報警。
5結(jié)束語
為順應(yīng)當(dāng)今溫濕度數(shù)據(jù)采集設(shè)備小型化、功能簡單、性能可靠的趨勢,使用51單片機(jī)和成熟的SHT11溫濕度傳感器芯片設(shè)計一種可以小型化的溫濕度數(shù)據(jù)采集設(shè)備,用C語言編程通過PROTUES軟件仿真,實現(xiàn)了溫濕度數(shù)據(jù)采集的功能。51單片機(jī)價格低廉、應(yīng)用廣泛,因此該設(shè)計方案具有明顯優(yōu)勢,在實際應(yīng)用中具有良好的參考和應(yīng)用價值。