基于51單片機(jī)的溫濕度報(bào)警器_第1頁(yè)
基于51單片機(jī)的溫濕度報(bào)警器_第2頁(yè)
基于51單片機(jī)的溫濕度報(bào)警器_第3頁(yè)
基于51單片機(jī)的溫濕度報(bào)警器_第4頁(yè)
基于51單片機(jī)的溫濕度報(bào)警器_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

畢業(yè)設(shè)計(jì)-36-引言網(wǎng)絡(luò)通信技術(shù)的發(fā)展,使監(jiān)控系統(tǒng)廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)等領(lǐng)域,因此,糧情檢測(cè)技術(shù)糧情檢測(cè)屬監(jiān)控系統(tǒng)范疇,近年來,由于計(jì)算機(jī)技術(shù)、超大規(guī)模集成電路技術(shù)和的研究在軟、硬件等方面都有了一定的進(jìn)展。早期糧情監(jiān)測(cè)主要采用溫度計(jì)測(cè)量法,它是將溫度計(jì)放入特制的插桿中,根據(jù)經(jīng)驗(yàn)插在糧堆的多個(gè)測(cè)溫點(diǎn),管理人員定期拔出讀數(shù),確定糧溫的高、低,決定是否倒糧。這種方法對(duì)儲(chǔ)糧有一定的作用,但由于溫度計(jì)精度、人工讀數(shù)的人為因素等原因,溫度檢測(cè)不僅速度慢,而且精度低,抽樣不徹底,局部糧溫過高不易被及時(shí)發(fā)現(xiàn),導(dǎo)致因局部糧食發(fā)霉變質(zhì)引起大面積壞糧的情況時(shí)有發(fā)生。隨著科技的發(fā)展,從1978年開始,采用電阻式溫度傳感器、采樣器、模數(shù)轉(zhuǎn)換器、報(bào)警器等組成的儲(chǔ)糧監(jiān)測(cè)系統(tǒng)出現(xiàn),它可對(duì)各糧庫(kù)的各個(gè)測(cè)溫點(diǎn)進(jìn)行巡回檢測(cè),檢測(cè)速度、精度大大提高,降低了勞動(dòng)強(qiáng)度,但由于電阻傳感器的靈敏度低,致檢測(cè)精度、系統(tǒng)可靠性還不夠理想。至1990年,糧情檢測(cè)系統(tǒng)有了很大的改善和提高,系統(tǒng)在布線上采用矩陣式布線技術(shù),簡(jiǎn)化了數(shù)據(jù)采集部分的線路,在傳感器方面應(yīng)用了半導(dǎo)體、熱電偶等器件;在線路傳輸上采用了串行傳輸方式,從而減少了傳輸線根數(shù);采用單板機(jī)進(jìn)行數(shù)據(jù)處理,并采用各種手段提高數(shù)據(jù)傳輸及檢測(cè)速度,通過軟硬件技術(shù)的結(jié)合,檢測(cè)精度和可靠性較前有很大提高。但溫度傳感器的線性度差,系統(tǒng)的檢測(cè)精度仍不理想,無法大面積推廣。近年來,隨著單片機(jī)功能的日益強(qiáng)大和計(jì)算機(jī)的廣泛應(yīng)用,糧情檢測(cè)的準(zhǔn)確性、穩(wěn)定性要求越來越高。尋找最佳配置和最好的性價(jià)比成為糧情監(jiān)測(cè)研究的熱點(diǎn)國(guó)外在糧情監(jiān)控技術(shù)上已達(dá)到了很成熟的地步,高科技數(shù)字式傳感器廣泛應(yīng)用于糧情檢測(cè)系統(tǒng)。這種傳感器采用了半導(dǎo)體集成電路與微控制器最新技術(shù),在一個(gè)管芯上集成了半導(dǎo)體溫度檢測(cè)芯片、數(shù)據(jù)信號(hào)轉(zhuǎn)換芯片、計(jì)算機(jī)接口芯片,轉(zhuǎn)換、溫度補(bǔ)償?shù)裙δ堋S捎跀?shù)字溫度傳感器直接傳出數(shù)字量,從而解決了溫度信號(hào)長(zhǎng)距離傳輸問題及傳輸過程中因干擾和衰減而導(dǎo)致的精度降低等問題。目前,國(guó)內(nèi)出現(xiàn)了豐富的數(shù)字傳感器配套產(chǎn)品,如遠(yuǎn)程控制模塊、中繼器、接插器、分線器等,技術(shù)也比較成熟。數(shù)字傳感技術(shù)、通信技術(shù)、計(jì)算機(jī)成為當(dāng)今信息技術(shù)的的三大基礎(chǔ),計(jì)算機(jī)監(jiān)控技術(shù)已成人們關(guān)注的熱點(diǎn)。

1項(xiàng)目說明防潮、防霉、防腐、防爆是糧庫(kù)日常工作的重要內(nèi)容,是衡量糧庫(kù)管理質(zhì)量的重要指標(biāo)。它直接影響到儲(chǔ)備物資的壽命和工作可靠性。為保證日常工作的順利進(jìn)行,首要問題是加強(qiáng)倉(cāng)庫(kù)內(nèi)溫度的監(jiān)測(cè)工作,因?yàn)闇囟鹊纳?,就意味著糧庫(kù)內(nèi)的有氧呼吸的加強(qiáng),就意味著馬上就要發(fā)生腐爛霉變。因此我們需要一種造價(jià)低廉、使用方便且測(cè)量準(zhǔn)確的溫度測(cè)量?jī)x。1.1設(shè)計(jì)目標(biāo)設(shè)計(jì)一個(gè)基于51單片機(jī)的溫度濕度報(bào)警器,實(shí)現(xiàn)運(yùn)行參數(shù)設(shè)置和顯示功能,通過485總線方式和上位機(jī)通信。設(shè)計(jì)要求:(1)掌握溫度報(bào)警器的工作原理和設(shè)計(jì)方法;(2)掌握51系列單片機(jī)編程;(3)掌握485總線通信機(jī)理;(4)學(xué)會(huì)Protell99SE畫圖工具;1.2研究?jī)?nèi)容和研究方法(1)根據(jù)系統(tǒng)功能要求并且考慮系統(tǒng)的實(shí)用性和可操作性,進(jìn)行系統(tǒng)的整體方案設(shè)計(jì)。該方案采用模塊化設(shè)計(jì)方法,以方便系統(tǒng)調(diào)試和用戶的使用。(2)系統(tǒng)硬件設(shè)計(jì)。主要內(nèi)容包括芯片的選擇、芯片的功能介紹、芯片外圍電路的設(shè)計(jì)等。(3)系統(tǒng)軟件設(shè)計(jì)。主要包括系統(tǒng)主程序,記數(shù)程序,采樣子程序,讀顯示子程序,寫顯示RAM子程序,報(bào)警子程序。本設(shè)計(jì)以實(shí)用為出發(fā)點(diǎn),力求設(shè)計(jì)原理簡(jiǎn)單,開發(fā)成本低,易于實(shí)現(xiàn)。器件選擇上,也考慮到實(shí)際應(yīng)用的具體情況。單片機(jī)控制可靠性高,溫濕度傳感器采集信號(hào)誤差小,穩(wěn)定度高,整個(gè)系統(tǒng)使用簡(jiǎn)單,經(jīng)濟(jì),有很強(qiáng)實(shí)用性。1.3方案選擇1.3.1單片機(jī)芯片的選擇方案和論證方案一采用MSP430F449芯片作為硬件核心,采用FlashROM,內(nèi)部具有4KBROM存儲(chǔ)空間,能于1.8V-3.6V的超低壓工作,適合手持設(shè)備。但是編程環(huán)境復(fù)雜,編程風(fēng)格與MS-51相差很大。用MSP430編程較之MS-51繁瑣,故不采用MSP430F449。方案二采用AT89C52,片內(nèi)ROM全都采用FlashROM;能在4V-5.5V電壓工作;同時(shí)也與MCS-51系列單片機(jī)完全兼容。該芯片內(nèi)部存儲(chǔ)器為8KBROM存儲(chǔ)空間,同樣具有89C51的功能。由于其與MS-51完全兼容,故編程簡(jiǎn)單。AT89C52的性能完全滿足本設(shè)計(jì)對(duì)單片機(jī)的要求。所以選擇采用AT89C52作為主控制系統(tǒng)。1.3.2顯示模塊的選擇方案和論證方案一采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字最合適,但是顯示字母不合適。而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)時(shí)間多。所以不采用此種作為顯示。方案二采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。方案三采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量字母,圖形,顯示多樣,清晰可見,但是價(jià)格一般,需要的接口線較少,所以在此設(shè)計(jì)中采用LCD液晶顯示屏作為顯示。1.3.3溫濕度傳感器的選擇方案和論證方案一分別采用溫度傳感器和濕度傳感器分開采集溫度和濕度,這種設(shè)計(jì)需要用到兩個(gè)傳感器分別采集數(shù)據(jù)而且還需要用到A/D轉(zhuǎn)換電路,實(shí)際連接電路比較麻煩。方案二進(jìn)而考慮到用溫濕度繼集成傳感器,在單片機(jī)電路設(shè)計(jì)中,所以可以采用一只溫濕度集成傳感器SHT75,此傳感器可以很容易直接讀取被測(cè)溫濕度值,內(nèi)部進(jìn)行轉(zhuǎn)換,直接輸出數(shù)字信號(hào),可以滿足設(shè)計(jì)要求。所以選擇方案二。綜上各方案所述,對(duì)此次作品的方案選定:采用AT89C52作為主控制系統(tǒng);SHT75作為溫濕度傳感器;LCD1602顯示屏作為顯示。

2系統(tǒng)的整體設(shè)計(jì)2.1系統(tǒng)的組成根據(jù)系統(tǒng)總體功能,將其劃分為以下幾個(gè)功能模塊:微處理器CPU、溫濕度傳感器、鍵盤、LCD顯示,LED狀態(tài)報(bào)警,蜂鳴器報(bào)警,整個(gè)系統(tǒng)的構(gòu)成如圖2.1所示。圖2.1整體系統(tǒng)構(gòu)成2.2系統(tǒng)工作流程AT89C52單片機(jī)是整個(gè)系統(tǒng)的核心,他來接收溫濕度信號(hào)并控制協(xié)調(diào)各個(gè)模塊使其能正常工作。SHT75溫濕度傳感器采集溫濕度信號(hào),將信號(hào)直接送至單片機(jī)進(jìn)行運(yùn)算,得到合適的溫濕度。顯示部分由液晶芯片LCD1602配合單片機(jī)完成。報(bào)警部分由按鍵控制設(shè)置,配合顯示部分來設(shè)置溫濕度的報(bào)警閾值,實(shí)際溫濕度超過閾值是有蜂鳴器和LED燈共同報(bào)警。單片機(jī)通過RS485總線方式與上位機(jī)進(jìn)行通訊,并實(shí)時(shí)顯示溫濕度值。因89C52內(nèi)含8KB的EEPROM,不需外擴(kuò)展存儲(chǔ)器,可使系統(tǒng)整體結(jié)構(gòu)簡(jiǎn)單。2.3系統(tǒng)的功能介紹本系統(tǒng)可對(duì)溫濕度值進(jìn)行實(shí)時(shí)檢測(cè),測(cè)溫范圍可為-40~+123.8℃,根據(jù)糧倉(cāng)內(nèi)實(shí)際溫度變化情況,將測(cè)溫范圍設(shè)定為0-70。C。可測(cè)濕度測(cè)量范圍是(0-100)%RH,這也足以滿足對(duì)濕度的測(cè)量要求。所測(cè)溫濕度值通過LCD1602顯示芯片顯示。整個(gè)系統(tǒng)測(cè)量精度高、穩(wěn)定性好,性能上能夠達(dá)到遠(yuǎn)距離測(cè)量溫濕度的要求,適于安置在糧倉(cāng)內(nèi)進(jìn)行檢測(cè)。

3系統(tǒng)的硬件設(shè)計(jì)本章從器件選擇、性能特點(diǎn)、電路分析等方面對(duì)硬件系統(tǒng)進(jìn)行了討論。3.1AT89C52單片機(jī)功能介紹3.11芯片簡(jiǎn)介AT9C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C52提供了高性價(jià)比的解決方案。主要性能參數(shù)如下。主要性能?與MCS-51單片機(jī)產(chǎn)品兼容?8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器?1000次擦寫周期?全靜態(tài)操作:0Hz~33Hz?三級(jí)加密程序存儲(chǔ)器?32個(gè)可編程I/O口線?三個(gè)16位定時(shí)器/計(jì)數(shù)器?八個(gè)中斷源?全雙工UART串行通道?低功耗空閑和掉電模式?掉電后中斷可喚醒?看門狗定時(shí)器?雙數(shù)據(jù)指針?掉電標(biāo)識(shí)符圖3.1AT89C52引腳圖3.12AT89C52各引腳在設(shè)計(jì)中的應(yīng)用引腳圖如圖3.1P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口P0寫“l(fā)”時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時(shí),P0口接收指令字節(jié)。而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。本系統(tǒng)P0口用于與LCD1602進(jìn)行數(shù)據(jù)傳輸。P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口P2寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。本系統(tǒng)P2口用于進(jìn)行報(bào)警系統(tǒng)的信號(hào)傳輸。P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“l(fā)”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(IIL)。本系統(tǒng)P3口用于接收SHT75傳感器的溫濕度信號(hào),P3.2和P3.3用于鍵盤輸入的外部中斷,P3.2用于INT0(外部中斷0),P3.3用于INT1(外部中斷1)。RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的l/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.13時(shí)鐘振蕩器AT89C52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖3.2。圖3.2振蕩電路3.2溫濕度采集系統(tǒng)3.2.1集成溫濕度傳感器的選擇SHT75(如圖3.3)是盛世瑞恩溫濕度傳感器系列中插針型的傳感器。傳感器把傳感元件和信號(hào)處理集成起來,輸出全標(biāo)定的數(shù)字信號(hào)。傳感器采用專利的CMOSens?技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容性聚合體測(cè)濕敏感元件、一個(gè)用能隙材料制成的測(cè)溫元件,并在同一芯片上,與14位的A/D轉(zhuǎn)換器以及串行接口電路實(shí)現(xiàn)無縫連接。因此,該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、極高的性價(jià)比等優(yōu)點(diǎn)。每個(gè)傳感器芯片都在極為精確的濕度腔室中進(jìn)行標(biāo)定,校準(zhǔn)系數(shù)以程序形式儲(chǔ)存在OTP內(nèi)存中,在標(biāo)定的過程中使用。傳感器在檢測(cè)信號(hào)的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。兩線制的串行接口與內(nèi)部的電壓調(diào)整,使外圍系統(tǒng)集成變得快速而簡(jiǎn)單。微小的體積、極低的功耗,使SHT75成為各類應(yīng)用的首選。圖3.3SHT75傳感器3.2.2SHT75的性能特點(diǎn)(如圖3.4)圖3.4SHT75性能特點(diǎn)3.2.3溫濕度測(cè)量電路電源引腳:SHT75的供電電壓為2.4-5.5V,建議供電電壓為3.3V。在電源引腳(VDD,GND)之間可增加一個(gè)100nF的電容,用以去耦濾波。SHT75的串行接口,在傳感器信號(hào)的讀取及電源損耗方面,都做了優(yōu)化處理;傳感器不能按照IC協(xié)議編址,但是,如果IC總線上沒有掛接別的元件,傳感器可以連接到IC總線上,但單片機(jī)必須按照傳感器的協(xié)議工作。圖3.5為典型應(yīng)用電路連接。圖3.5電路連接圖串行時(shí)鐘輸入(SCK):SCK用于微處理器與SHT75之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。串行數(shù)據(jù)(DATA):DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時(shí)鐘下降沿之后改變狀態(tài),并僅在SCK時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時(shí)鐘高電平時(shí),DATA必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA在低電平。需要一個(gè)外部的上拉電阻(例如:10kΩ)將信號(hào)提拉至高電平。上拉電阻通常已包含在微處理器的I/O電路中。3.2.4輸出轉(zhuǎn)換為物理量相對(duì)濕度:為了補(bǔ)償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),請(qǐng)參閱圖3.6,建議使用如下公式修正讀數(shù):RHlinear=c1+c2·SORH+c3·SORH2(%RH)圖3.6相對(duì)濕度轉(zhuǎn)換相對(duì)濕度對(duì)于溫度依賴性的補(bǔ)償:由于實(shí)際溫度與測(cè)試參考溫度25℃(~77℉)的顯著不同,濕度信號(hào)需要溫度補(bǔ)償。溫度校正粗略對(duì)應(yīng)于0.12%RH/℃@50%RH,溫度補(bǔ)償系數(shù)請(qǐng)參閱圖3.7。RHtrue=(T°C-25)?(t1+t2?SORH)+RHlinear圖3.7溫度補(bǔ)償系數(shù)溫度:由能隙材料PTAT(正比于絕對(duì)溫度)研發(fā)的溫度傳感器具有極好的線性??捎萌缦鹿綄?shù)字輸出轉(zhuǎn)換為溫度值,溫度轉(zhuǎn)換系數(shù)請(qǐng)閱圖3.8:圖3.8溫度轉(zhuǎn)換系數(shù)露點(diǎn):SHT75不能直接測(cè)量露點(diǎn),但可由溫度和濕度值計(jì)算。SHT75系列產(chǎn)品可以同時(shí)實(shí)現(xiàn)高質(zhì)量的露點(diǎn)測(cè)量。對(duì)于溫度范圍為-40-50℃,如下的近似計(jì)算可得出高精度的露點(diǎn)值,系數(shù)請(qǐng)參閱圖3.9:圖3.9露點(diǎn)系數(shù)3.3顯示電路1602液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在各類儀表和低功耗系統(tǒng)中得到廣泛的應(yīng)用。1602液晶為16字X2行的字符型液晶。該液晶與數(shù)碼管相比有如下優(yōu)點(diǎn):1.位數(shù)多,可顯示32位,32個(gè)數(shù)碼管體積相當(dāng)龐大了。2.顯示內(nèi)容豐富,可顯示所有數(shù)字和大、小寫字母。3.程序簡(jiǎn)單,如果用數(shù)碼管動(dòng)態(tài)顯示,會(huì)占用很多時(shí)間來刷新顯示,而1602自動(dòng)完成此功能。圖3.10為字符型LCD的引腳定義圖3.11為液晶與單片機(jī)接法圖3.10引腳定義圖3.11液晶與單片機(jī)接法1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了不同的點(diǎn)陣字符圖形,這些字符有,阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,其中數(shù)字與字母同ASCII碼兼容。其內(nèi)部還有自定義字符(CGRAM),可用于存儲(chǔ)自已定義的字符。1602模塊的設(shè)定,讀寫,與光標(biāo)控制都是通過指令來完成,共有11條指令,如表3.1:表3.1:指令RSRWD7D6D5D4D3D2D1D01清屏00000000012光標(biāo)返回000000001*3輸入模式00000001I/DS4顯示控制0000001DCB5光標(biāo)/字符移位000001S/CR/L**6功能00001DLNF**7置字符發(fā)生器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志和地址01BF計(jì)數(shù)器地址10寫數(shù)據(jù)到指令7.8所設(shè)地址10要寫的數(shù)據(jù)11從指令7.8所設(shè)的地址讀數(shù)據(jù)11讀出的數(shù)據(jù)3.4按鍵電路單片機(jī)應(yīng)用系統(tǒng)中的按鍵或鍵盤都是以開關(guān)狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)。為了方便設(shè)置溫濕度報(bào)警閾值的修改,我一共涉及了5個(gè)按鍵。如圖3.12當(dāng)有按鍵按下時(shí),信號(hào)變?yōu)榈碗娖?,系統(tǒng)做完與門運(yùn)算后像單片機(jī)P3.2口輸入低電平,這時(shí)系統(tǒng)執(zhí)行外部中斷。圖3.12按鍵電路3.5超溫報(bào)警本設(shè)計(jì)采用蜂鳴器報(bào)警方式,當(dāng)采集到的溫度經(jīng)過修正后超過了系統(tǒng)設(shè)置的閾值時(shí),則P3.0口輸出低電平,U6是光耦,此處起電平匹配作用,3腳輸入低電平,6腳即輸出低電平,此時(shí)Q1即PNP三極管導(dǎo)通,蜂鳴器有電流流過即發(fā)聲報(bào)警。連接方式如圖3.13圖3.13蜂鳴器連接方式3.6RS485遠(yuǎn)程通訊串口是一種接口標(biāo)準(zhǔn),它規(guī)定了接口的電氣標(biāo)準(zhǔn),簡(jiǎn)單說只是物理層的一個(gè)標(biāo)準(zhǔn)。沒有規(guī)定接口插件電纜以及使用的協(xié)議,所以只要我們使用的接口插件電纜符合串口標(biāo)準(zhǔn)就可以在實(shí)際中靈活使用,在串口接口標(biāo)準(zhǔn)上使用各種協(xié)議進(jìn)行通訊及設(shè)備控制。RS-485總線,在要求通信距離為幾十米到上千米時(shí),廣泛采用RS-485串行總線。RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測(cè)低至200mV的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。RS-485采用半雙工工作方式,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號(hào)加以控制。RS-485標(biāo)準(zhǔn)接口是單片機(jī)系統(tǒng)種常用的一種串行總線之一。與RS-232C比較,其性能有許多改進(jìn),細(xì)節(jié)如圖3.14所示圖3.14RS485改進(jìn)RS-485接口可連接成半雙工和全雙工兩種通信方式。常見的半雙工通信芯片有MAX481、MAX483、MAX485、MAX487等,全雙工通信芯片有MAX488、MAX489、MAX490、MAX491等。下面以MAX485為例來介紹RS-485串行接口的應(yīng)用。MAX485的封裝有DIP、SO和uMAX三種,其中DIP封裝的管腳如圖3.15所示。圖3.15MAX封裝管腳管腳的功能如下:

RO:接收器輸出端。若A比B大200mV,RO為高;反之為低電平。

RE:接收器輸出使能端。RE為低時(shí),RO有效;為高時(shí),RO呈高阻狀態(tài)。

DE:驅(qū)動(dòng)器輸出使能端。若DE=1,驅(qū)動(dòng)器輸

出A和B有效;若DE=0,則它們呈高阻態(tài)。若

驅(qū)動(dòng)器輸出有效,器件作為線驅(qū)動(dòng)器用,反之

作為線接收器用。

DI:驅(qū)動(dòng)器輸入端。DI=0,有A=0,B=1;

當(dāng)DI=1,則A=1,B=0。

GND:接地。

A:同相接收器輸入和同相驅(qū)動(dòng)器輸出。

B:反相接收器輸入和反相驅(qū)動(dòng)器輸出。

VCC:電源端,一般接+5V。MAX485典型的工作電路如圖3.16所示,其中平衡電阻Rp通常取100~300歐姆。MAX485的收發(fā)功能見圖3.17。圖3.16MAX485典型工作電路圖3.17MAX收發(fā)功能89C52與MAX485的接口電路如圖3.18所示。P1.7用來控制MAX485的接收或發(fā)送,其余操作同串口。圖3.1889C52與MAX485的接口電路

4系統(tǒng)整體硬件電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警電路,按鍵電路,單片機(jī)主板電路,LED狀態(tài)電路等,如圖4.1所示。圖4.1中有五個(gè)獨(dú)立式按鍵可以分別調(diào)整溫度計(jì)的上下限報(bào)警設(shè)置,并且切換顯示。圖中蜂鳴器可以在被測(cè)溫度不在上下限范圍內(nèi)時(shí),發(fā)出報(bào)警鳴叫聲音,同時(shí)LED燈閃爍。顯示電路的液晶是使用的并行傳輸,這種顯示最大的優(yōu)點(diǎn)就是傳輸速度快,而且液晶顯示比較清晰。系統(tǒng)還配置了利用RS485總線方式與上位機(jī)通訊的功能,上位機(jī)能夠?qū)崟r(shí)獲得系統(tǒng)所收集的溫濕度信息并實(shí)時(shí)顯示。圖4.1系統(tǒng)整體硬件電路

5系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序,讀出溫濕度子程序,,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。5.1主程序主程序的主要功能是負(fù)責(zé)溫濕度的實(shí)時(shí)顯示、讀出并處理SHT75的測(cè)量的當(dāng)前溫濕度值,溫濕度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫濕度,其程序流程見圖5.1所示。圖5.1主程序流程圖部分源程序:#include<AT89X52.h> //AT89C52單片機(jī)頭文件#include<intrins.h> #include<SHT75.H> //SHT75操作頭文件#include<lcd1602.h> //LCD1602操作頭文件#include<ini_51int.h> //51中斷初始化頭文件////宏定義#defineHI 0x01#defineLOW 0x00#defineY 0XFF#defineN 0X00#defineTEMP_FLG 0X01#defineHUMI_FLG 0X02#defineDEW_FLG 0X03#defineNON_FLG 0X04//定義按鍵接口#defineSET ((P1&(1<<2))>>2) //p1.2,設(shè)置(切換)#defineTEN ((P1&(1<<3))>>3) //P1.3,×10#defineADD ((P1&(1<<4))>>4) //P1.4,增加#defineDEC ((P1&(1<<5))>>5) //P1.5,減少#defineOK ((P1&(1<<6))>>6) //P1.6,確認(rèn)退出//變量定義signedintTEMP_value=0; //溫度值signedintHUMI_value=0; //濕度值signedintDEW_value=0; //露點(diǎn)值signedinttemp_alarm_value=90; //預(yù)置溫度上限報(bào)警值,大于此值報(bào)警,可通過鍵盤調(diào)節(jié)signedinthumi_alarm_value=90; //預(yù)置濕度上限報(bào)警值,大于此值報(bào)警,可通過鍵盤調(diào)節(jié)signedintdew_alarm_value=90; //預(yù)置露點(diǎn)上限報(bào)警值,大于此值報(bào)警,可通過鍵盤調(diào)節(jié)unsignedcharsetting_model=N; //是否進(jìn)入設(shè)定狀態(tài)的標(biāo)志變量unsignedcharsetting_item_num=0; //設(shè)置內(nèi)容序號(hào),0-無,1-temp,2-humi,unsignedcharsetting_item=NON_FLG; //標(biāo)記設(shè)定項(xiàng)目的變量unsignedchartimes=1; //增減倍率//定義輸出信號(hào)接口sbitbuzzer_alarm =P3^0; //蜂鳴器 sbitworking_led =P3^3; //系統(tǒng)工作指示燈sbitsetting_led =P3^4; //設(shè)置狀態(tài)指示燈sbitten_led =P3^5; //×10狀態(tài)指示sbittemp_alarm_led =P3^6; //溫度超限報(bào)警指示燈sbithumi_alarm_led =P3^7; //濕度超限報(bào)警指示燈sbitdew_alarm_led =P1^7; //露點(diǎn)超限報(bào)警指示燈unsignedintloop1_roll=0; //控制滾動(dòng)顯示速度unsignedintloop2_led=0; //控制狀態(tài)指示燈閃爍快慢5.2讀出溫濕度子程序讀出溫濕度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫濕度數(shù)據(jù)的改寫。其程序流程圖如圖5.2示部分源程序://函數(shù)名:display_temp()//功能:輸出顯示溫度及限值信息//voiddisplay_temp(){ display_from(1); //設(shè)置顯示起始位置,第一行 lcd_printchar("Temperature:"); //輸出字符 display_from(18); //設(shè)置顯示起始位置,第二行 display_full_num(TEMP_value); //輸出溫度數(shù)值 lcd_printchar("/"); display_full_num(temp_alarm_value); //輸出設(shè)定的溫度報(bào)警限值 lcd_printchar(""); lcd_wdata(0xdf); //° lcd_wdata(0x43); //C lcd_printchar("");}////函數(shù)名:display_humi()//功能:輸出顯示濕度及限值信息//voiddisplay_humi(){ display_from(1); //設(shè)置顯示起始位置,第一行 lcd_printchar("Humidity:"); //輸出字符 display_from(18); //設(shè)置顯示起始位置,第二行 display_full_num(HUMI_value); //輸出濕度數(shù)值 lcd_printchar("/"); display_full_num(humi_alarm_value); //輸出設(shè)定的濕度報(bào)警數(shù)值 lcd_printchar("%");}////函數(shù)名:display_dew()//功能:輸出顯示露點(diǎn)及限值信息//voiddisplay_dew(){ display_from(1); //設(shè)置顯示起始位置,第一行 lcd_printchar("DewPoint:"); //輸出字符 display_from(18); //設(shè)置顯示起始位置,第二行 display_full_num(DEW_value); //輸出露點(diǎn)數(shù)值 lcd_printchar("/"); display_full_num(dew_alarm_value); //輸出設(shè)定的露點(diǎn)報(bào)警數(shù)值 lcd_printchar(""); lcd_wdata(0xdf); //° lcd_wdata(0x43); //C lcd_printchar("");}圖5.2讀溫濕度流程圖5.3溫濕度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖5.3所示圖5.3溫濕度轉(zhuǎn)換流程圖5.4LED狀態(tài)子程序系統(tǒng)設(shè)置了5個(gè)LED狀態(tài)燈,分別用作工作指示、設(shè)置狀態(tài)指示、x10狀態(tài)指示、溫度過超限報(bào)警指示、濕度超限報(bào)警指示和露點(diǎn)超限報(bào)警指示。voidled_control(){ //工作指示 working_led=0; //設(shè)置狀態(tài)指示 if(setting_model==Y) { if(loop2_led<=2) //使LED閃爍 { setting_led=0; } else { setting_led=1; } } else { setting_led=1; } //×10狀態(tài)指示 if(times==10) { ten_led=0; } else { ten_led=1; } //溫度過高報(bào)警指示 if(TEMP_value>=temp_alarm_value) { if(loop2_led<=2) { temp_alarm_led=0; //led發(fā)光 } else { temp_alarm_led=1; //led熄滅 } } else { temp_alarm_led=1; } //濕度過高報(bào)警指示 if(HUMI_value>=humi_alarm_value) { if(loop2_led<=2) //使LED閃爍 { humi_alarm_led=0; } else { humi_alarm_led=1; } } else { humi_alarm_led=1; } //露點(diǎn)過高報(bào)警指示 if(DEW_value>=dew_alarm_value) { if(loop2_led<=2) //使LED閃爍 { dew_alarm_led=0; } else { dew_alarm_led=1; } } else { dew_alarm_led=1; } //發(fā)聲報(bào)警 if((temp_alarm_led==0)||(humi_alarm_led==0)||(dew_alarm_led==0)) { if(loop2_led<=1) //使LED閃爍 { buzzer_alarm=0; } else { buzzer_alarm=1; } } else { buzzer_alarm=1; }}

5.5顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖5.5。圖5.5顯示刷新流程圖voidmain(){ int_ini(); //外部中斷初始化 lcd_init(); //lcd初始化 init_uart(); //串口初始化 while(1) { sht75_sample(); //采集一次溫度濕度數(shù)據(jù),并更新現(xiàn)有數(shù)據(jù) display_1602(); //輸出顯示數(shù)據(jù) led_control(); //監(jiān)控溫濕度數(shù)據(jù),并及時(shí)輸出報(bào)警等信息 loops(); }}

6實(shí)際仿真截圖6.1SHT75傳感器仿真截圖如圖6.1中,顯示的為SHT75運(yùn)行時(shí)的狀態(tài),當(dāng)前檢測(cè)到的溫度為20℃,濕度為27%。圖6.1SHT75運(yùn)行時(shí)的狀態(tài)6.2LCD1602液晶屏仿真截圖下圖中顯示的為L(zhǎng)CD1602運(yùn)行時(shí)的狀態(tài),圖6.2中顯示的是當(dāng)前檢測(cè)到的溫度為20℃。圖6.2當(dāng)前檢測(cè)的溫度圖6.3中顯示的為當(dāng)前檢測(cè)到的濕度為27%圖6.3當(dāng)前檢測(cè)的濕度圖6.4顯示的為當(dāng)前檢測(cè)到的露點(diǎn)為圖6.4當(dāng)前檢測(cè)的露點(diǎn)

6.3設(shè)置溫濕度報(bào)警閾值界面仿真截圖圖6.5為設(shè)置溫度閾值界面,當(dāng)前閾值為90度,通過按鍵可更改為任意值。圖6.5當(dāng)前溫度閾值圖6.6為更改閾值到80度。圖6.6更改后的閾值圖6.7為設(shè)置濕度閾值界面,當(dāng)前閾值為60%,通過按鍵可更改

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論