基于單片機的溫濕度監(jiān)測系統(tǒng)的設(shè)計_第1頁
基于單片機的溫濕度監(jiān)測系統(tǒng)的設(shè)計_第2頁
基于單片機的溫濕度監(jiān)測系統(tǒng)的設(shè)計_第3頁
基于單片機的溫濕度監(jiān)測系統(tǒng)的設(shè)計_第4頁
基于單片機的溫濕度監(jiān)測系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的溫濕度檢測系統(tǒng)的設(shè)計摘要:隨著時代的進步,溫度和濕度是監(jiān)控許多對象過程中時常遇到的測量數(shù)據(jù)。本文介紹了設(shè)計溫濕度計的基本方法與測量原理,其組成部件主要是單片機。本系統(tǒng)能通過隨時隨地測評溫濕度并設(shè)置溫濕度上下限,完成溫濕度的數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)顯示。經(jīng)過實驗檢測顯示,該設(shè)計對溫濕度的控制有方便實用、操作易懂的特點,提升了被控對象的各項技術(shù)指標(biāo)。關(guān)鍵詞: 單片機;溫度測量;濕度測量Design of Temperature and Humidity Detection System Based on Single Chip MicrocomputerAbstract:With th

2、e progress of time, temperature and humidity measurement data monitoring process many objects often encountered. This article describes the basic design principle of the measurement method of the hygrometer, which is mainly composed of parts. The system can go and evaluation of temperature and humid

3、ity set upper and lower limits of temperature and humidity, temperature and humidity to complete the data acquisition, data processing and data display. Experimental results show the detection, convenient and practical design for the control of temperature and humidity, to understand the operation c

4、haracteristics, enhance the technical indicators controlled object.Key words: Single chip microcomputer; Temperature measurement; Humidity measurement目錄1引言1.1課題背景1.2課題研究的目的和意義1.3國內(nèi)外測溫濕技術(shù)及單片機發(fā)展現(xiàn)狀2系統(tǒng)總體方案設(shè)計2.1系統(tǒng)的設(shè)計指標(biāo)2.2系統(tǒng)的實現(xiàn)原理2.3系統(tǒng)的實現(xiàn)方案分析3 系統(tǒng)硬件設(shè)計3.1 系統(tǒng)總體結(jié)構(gòu)3.2 單片機簡介3.3 DS18B20和HS1101簡介3.3.1溫度傳感器DS18B20的

5、引腳介紹3.3.2 DS18B20內(nèi)部結(jié)構(gòu)與特點3.3.3 DS18B20溫度測量通信協(xié)議3.4系統(tǒng)硬件設(shè)計3.4.1復(fù)位電路模塊3.4.2報警電路模塊3.4.3顯示電路模塊3.4.4按鍵電路模塊3.4.5溫度檢測電路模塊3.4.6濕度檢測電路模塊4系統(tǒng)軟件設(shè)計4.1系統(tǒng)主程序設(shè)計4.2 DS18B20和HS1101初始化子程序4.3 DS18B20和HS1101讀取溫濕度子程序4.4 顯示數(shù)據(jù)處理子程序4.5按鍵掃描子程序5 系統(tǒng)軟硬件調(diào)試總結(jié)1引言1.1課題背景 眾所周知,隨著科學(xué)技術(shù)的發(fā)展和人們生活的需求,近年來單片機的應(yīng)用范圍越來越廣闊。一般的度測量不僅設(shè)計繁雜,并且精確度極低,而使用

6、單片機讓這個問題得到了很好的解決。在現(xiàn)代社會,溫濕度是一個至關(guān)重要的數(shù)據(jù),在農(nóng)業(yè)領(lǐng)域,農(nóng)作物的生長離不開溫度和濕度,為使農(nóng)作物可以達(dá)成農(nóng)收目標(biāo),就必須嚴(yán)格控制農(nóng)作物生長環(huán)境的溫濕度;在工業(yè)領(lǐng)域,許多需要嚴(yán)格把控溫度和濕度的設(shè)備只有在特定環(huán)境下才能正常工作,因此溫濕度的測量也十分重要。而從前的測量方法科學(xué)技術(shù)太落后,顯然不能滿足現(xiàn)代產(chǎn)業(yè)對溫濕度高精確度測量的需求。這幾年來科學(xué)家們研發(fā)了幾種測溫測濕技術(shù),這些測溫測濕技術(shù)不僅很好的提高了測量精度,而且大大提升了產(chǎn)品的質(zhì)量。因為單片機具有高集成度,通用性優(yōu),功能強等卓越的優(yōu)點,并且體積小,重量輕,耗能少,所以在農(nóng)業(yè)生產(chǎn)和工業(yè)生產(chǎn)中得到了廣泛應(yīng)用。本課

7、題就是以單片機作為核心部件進行設(shè)計的。1.2課題研究的目的和意義測量溫濕度的基本方法是使用溫濕度計直接讀取溫濕度,如我們大家經(jīng)常使用的體溫計和空氣濕度計。隨著工業(yè)生產(chǎn)的進步,人們對溫濕度的測量有更高的要求。在迅速發(fā)展的科學(xué)技術(shù)中,前沿技術(shù)是傳感器技術(shù),特別是溫濕度傳感技術(shù),已經(jīng)滲透到我們生活的各個層面,溫濕度測量在農(nóng)業(yè)生產(chǎn)和工業(yè)生產(chǎn)中占有不可撼動的地位,此外在許多科學(xué)實驗研究中也離不開溫濕度的測量。綜上所述,測量溫濕度具有舉足輕重的地位。單片機在各個領(lǐng)域的應(yīng)用廣闊,而把它作為數(shù)字溫濕度計的核心部件只是具體應(yīng)用的一個例子。日下,由于在惡劣的工作環(huán)境下對測溫濕技術(shù)要求的提高,單片機的應(yīng)用發(fā)展越來越

8、受到人們的矚目。1.3國內(nèi)外測溫濕技術(shù)及單片機發(fā)展現(xiàn)狀不可置否,與許多發(fā)達(dá)國家相比,中國測溫濕技術(shù)仍舊處于一個較低水平。一般的測溫濕技術(shù)只能對相對平穩(wěn)的環(huán)境進行溫度和濕度的測量,如果用于較惡劣的工作環(huán)境重,我國的測溫濕技術(shù)還達(dá)不到規(guī)范。然而,隨著我國已成為世界第二大經(jīng)濟體,經(jīng)濟實力指數(shù)上升,我國電子企業(yè)也正欣欣向榮地發(fā)展中。眾所周知,單片機是集成在一塊芯片上的計算機系統(tǒng),它包含計算機系統(tǒng)的重要部件和基本功能,如 CPU、并行I/O端口、定時與中斷系統(tǒng)、A/D與D/A轉(zhuǎn)換系統(tǒng)等。隨著科學(xué)技術(shù)的迅猛發(fā)展,現(xiàn)在許多單片機功能也更加完善。單片機還能與種類繁多的外圍電路相連接,如定時器、復(fù)位電路、傳感器

9、等等,我們應(yīng)用單片機可以對各種各樣的信息進行收集。如連接溫度傳感器DS18B20和濕度傳感器HS1101等芯片,就可以對被測目標(biāo)進行溫度和濕度的測量與監(jiān)測。2系統(tǒng)總體方案設(shè)計2.1系統(tǒng)的設(shè)計指標(biāo)本課題設(shè)計的數(shù)字溫濕度系統(tǒng)要求可以準(zhǔn)確即時地對被測目標(biāo)實行溫度和濕度測量,并將其測得的溫濕度值顯示在LED數(shù)碼管上,如果超越溫濕度合理范圍,則通過蜂鳴器報警,同時報警指示燈閃爍,直到溫濕度回到規(guī)定的范圍為止。此外,還能夠通過按鍵自主設(shè)置溫濕度范圍。綜上所述,系統(tǒng)設(shè)計的要求如下:1.開機啟動,檢測各元件是否正常工作。2.正負(fù)溫濕度辨別(正溫濕度紅燈亮,負(fù)溫濕度綠燈亮)。3.溫濕度測量的基本范圍是-3012

10、5。4.系統(tǒng)預(yù)設(shè)上限溫濕度32,下限溫濕度10。5.超越溫濕度上下限即開啟報警功能,報警燈閃爍,蜂鳴器震動并發(fā)聲警示,并在負(fù)溫濕度時蜂鳴器震動較劇烈。6.支持手動按鍵設(shè)置溫濕度上下限。2.2系統(tǒng)的實現(xiàn)原理本系統(tǒng)使用溫濕度傳感器,并與單片機連接構(gòu)成溫濕度測量系統(tǒng),從而完成溫濕度的實時監(jiān)測。溫濕度傳感器對溫濕度的變化十分敏銳,其可以把測得的溫濕度準(zhǔn)確即時的轉(zhuǎn)換成一串電路信號,這時我們可以使用顯示系統(tǒng)將其測得的溫濕度值顯示出來,讓人們監(jiān)測和記錄。其中,溫度傳感器DS18B20是一種集成度很高的溫度測量元件,其可以根據(jù)當(dāng)前溫度環(huán)境的變化傳輸出一串?dāng)?shù)字信號。顯而易見,不同的溫度環(huán)境下將會有不同的數(shù)字信號

11、,通過該信號能夠準(zhǔn)確的獲取當(dāng)前環(huán)境的溫度值,從而完成溫度的測量。濕度傳感器HS1101也同樣是一種準(zhǔn)確性優(yōu)異的濕度測量元件,其應(yīng)用電容的介電常數(shù)可伴隨環(huán)境中的水分含量改變而發(fā)生變化,進而收集到環(huán)境中濕度值,實現(xiàn)對濕度的測量。2.3系統(tǒng)的實現(xiàn)方案分析本系統(tǒng)利使用溫度傳感器DS18B20作為收集溫度信息的測量元件,DS18B20的集成度高,所以該元件需求的外圍電路相對簡易。并且DS18B20體積小,節(jié)省電路板。并且,DS18B20是高封裝的溫度傳感器,可以直接和單片機連接聯(lián)通。其測溫范圍為55+125,固有測溫分辨率為0.5,具有極強的抗干擾能力。另一方面,選用HS1101傳感器作為濕度傳感器,其

12、工作原理是應(yīng)用電容的介電常數(shù)可伴隨環(huán)境中的水分含量改變而發(fā)生變化,進而收集到環(huán)境中濕度值。HS1101具有可靠性高、反饋迅速、穩(wěn)定性高,適合環(huán)境廣泛等特點。而單片機作為主要組成部件,但這里采用LED 7位數(shù)碼管實現(xiàn)溫度值的顯示,顯示溫度值清晰直觀,便于記錄。此外,LED數(shù)碼管所占空間小,在造價方面來說經(jīng)濟便宜。3 系統(tǒng)硬件設(shè)計3.1 系統(tǒng)總體結(jié)構(gòu)本方案設(shè)計的系統(tǒng)模塊由單片機系統(tǒng)、溫濕度傳感器模塊、數(shù)碼管顯示模塊和電源模塊組成,其總體結(jié)構(gòu)如圖1。圖1 系統(tǒng)結(jié)構(gòu)圖該系統(tǒng)單片機選用AT89C52單片機,并以其為核心,在運行開始時,它先向主機發(fā)送初始化指令讓溫濕度傳感器DS18B20和HS1101啟動

13、,再發(fā)送溫濕度轉(zhuǎn)化指令使數(shù)字溫度傳感器DS18B20和濕度傳感器HS1101把測得的虛擬溫濕度信號轉(zhuǎn)化為數(shù)字信號供單片機演算。與此同時,顯示器會顯示出當(dāng)前監(jiān)測出的溫度和濕度,當(dāng)溫濕度超出規(guī)定的溫濕度上下限范圍時,報警器就會發(fā)出警報。3.2 單片機簡介單片機經(jīng)過許多年的逐代升級,現(xiàn)在已經(jīng)是自動控制理論中的不可或缺的重要部件。對于相關(guān)技術(shù)人員來說,掌握單片機原理及其應(yīng)用已經(jīng)成為必不可少的一項技能,是專業(yè)人員必備的能力和素養(yǎng)之一。單片機的應(yīng)用前景十分廣闊,在控制領(lǐng)域、食品儲存等方面,都占據(jù)著一個十分重要的地位。ATMEL公司采用國際先進的技術(shù)手法生產(chǎn)的AT89C52單片機與一般的單片機有所差異,它不

14、僅是一種8位微控制器,具有耗能低和性能優(yōu)異的特征,還擁有不易失性的Flash程序儲存器。它的主要接口與引腳的特點如下。其引腳圖如圖2所示:P0口:P0口與其他端口不同,它的輸出級無上拉電阻。作為通用輸出I/O口使用時,輸出級是開漏電路,故用其輸出去驅(qū)動NMOS輸入時外接上拉電阻,上拉電阻一般在10K左右即可。這時每一位輸出可以驅(qū)動4個LS型負(fù)載。用作輸入時,應(yīng)先向端口鎖存器寫1。把P0口用作地址/數(shù)據(jù)總線時,無需外接上拉電阻。作總線輸入時,不需先向端口寫1。P0口作總線時,每一位輸出可以驅(qū)動8個LS型TTL負(fù)載。圖2 單片機AT89C52引腳圖P1P3口:P1P3口接有上拉負(fù)載電阻,它們的每一

15、位輸出可以驅(qū)動4個LS型TTL負(fù)載。用作輸出口時,任何TTL或NMOS電路都能以正常的方式驅(qū)動89C51系列單片機的P1P3口。由于它們的輸出級接有上拉電阻,因此,在使用時無需外接上拉電阻。由于單片機的端口輸出電流一般為幾毫安,當(dāng)用作輸出口去驅(qū)動一個晶體管的基極時,應(yīng)在基極和端口之間串聯(lián)一個電阻,以限制高電平時的輸出電流。P3口用作第二功能:當(dāng)使用P3口的第二功能時,8個引腳有不同的意義。當(dāng)某位用作第二功能輸入時,該位的鎖存器輸出端被內(nèi)部硬件自動置1,并且W在端口不作第二功能輸出時保持為1,則與非門3輸出低,所以FET截止,該位引腳為高位輸入。因此讀引腳信號無效,三臺緩沖器無效,這樣,從引腳輸

16、入的第二個能信號,經(jīng)緩沖器后被直接送給CPU處理。當(dāng)P3口的某一引腳用作第二功能時,該引腳不能用作通用I/O端口。P3口各個引腳的第二功能見下表1。端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時/計時器0外部輸入)P3.5T1(定時/計時器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)表1P3口的第二功能圖RST: RST是復(fù)位信號輸入端,高電平有效。當(dāng)單片機正常工作時,該引腳出現(xiàn)兩個機器周期的高電平就會使單片機復(fù)位;在上電時,因為振蕩器需要一定的起振時間,

17、該引腳的高電平必須保持10ms以上才能保證有效復(fù)位。PROG:為片內(nèi)程序存儲器的編程脈沖輸入端,低電平有效。PSEN:片外程序存儲器讀選通信號輸出端,每個機器周期輸出兩個負(fù)脈沖,低電平有效。在訪問片外數(shù)據(jù)存儲器時,該信號不出現(xiàn)。l EA/VPP:EA為片外程序存儲器選擇輸入端,該引腳低電平時,使用外部程序存儲器,為高電平時,使用片內(nèi)程序存儲器;VPP為片內(nèi)程序存儲器編程電壓輸入端。XTAL1:該引腳接外部晶振和微調(diào)電容的一端,與單片機內(nèi)振蕩電路一起,產(chǎn)生由外部晶振決定的振蕩頻率。在使用外部時鐘時,該引腳輸入外部時鐘脈沖。XTAL2:該引腳接外部晶振和微調(diào)電容的另一端,XTAL2接內(nèi)部反向放大器

18、的輸出端,因此在使用外部時鐘時,該引腳接地。3.3 DS18B20和HS1101簡介溫濕度傳感器是眾多傳感器中最常見的一種,早期采用的是模擬溫濕度傳感器,如冷敏電阻,伴隨環(huán)境溫度的改變,它的阻值也按照相應(yīng)的函數(shù)關(guān)系發(fā)生線性變化,經(jīng)過收集電阻兩端的電壓,再套入一些函數(shù)關(guān)系式就可以計算出當(dāng)前環(huán)境溫度。DS18B20是美國DALLAS半導(dǎo)體公司推出的第一個支持“一線總線”接口的溫度傳感器,它具有微型化、耗能低、性能高、不易被外界干擾、易配置微處理器等優(yōu)點,可直接把溫度轉(zhuǎn)換成一串?dāng)?shù)字信號上傳給處理器處理。HS1101是一款基于獨特工藝設(shè)計的電容元件,這款相對濕度傳感器可以大批量生產(chǎn)。可以應(yīng)用于辦公自動

19、化,車廂內(nèi)空氣質(zhì)量控制,家電,工業(yè)控制系統(tǒng)等。在需要濕度補償?shù)膱龊弦部梢缘玫胶艽蟮膽?yīng)用。其具有全互換性、在標(biāo)準(zhǔn)環(huán)境下不需校正、長時間飽和下快速脫濕、高可靠性與長時間穩(wěn)定性、快速反應(yīng)時間等特點。3.3.1溫度傳感器DS18B20的引腳介紹溫度傳感器DS18B20有兩種封裝:三腳TO-92直插式和八腳SOIC貼片式,其中三腳TO-92直插式是使用最廣泛、最普及的封裝。封裝引腳如圖3所示。圖3 DS18B20TO92封裝下表2列出了溫度傳感器DS18B20的引腳定義:表2 DS18B20的引腳定義引腳定義GND電源負(fù)極DQ信號輸入輸出VDD電源正極NC空引腳功能說明:GND :接地信號DQ :數(shù)據(jù)輸

20、入/輸出引腳。開漏單總線接口引腳。當(dāng)被用在寄生電源下,可以向器件提供電源。VDD :可選VDD引腳,電源電壓范圍3V5.5V。當(dāng)工作于寄生電源時,此引腳必須接地。3.3.2 DS18B20內(nèi)部結(jié)構(gòu)與特點DS18B20的內(nèi)部結(jié)構(gòu)主要有:寄生電源,溫度傳感器,64位ROM和單總線接口,存放中間數(shù)據(jù)的高速暫存器RAM,用于儲存用戶設(shè)定溫度上下限值的TH和TL觸發(fā)器,儲存與操控邏輯,8位循環(huán)冗余校驗碼(CRC)發(fā)生器等7部分組成。DS18B20中的溫度傳感器可完成對溫度的監(jiān)測,以12位轉(zhuǎn)化為例:用16位符號擴展的二進制補碼讀數(shù)形式給予,以0.0625/LSB形式表達(dá),其中S為符號位,12位轉(zhuǎn)化后得到的

21、12位數(shù)據(jù),儲存在DS18B20的兩個8比特的RAM中。DS18B20溫度值格式如二進制表2.2所示,其中,前5位是符號位,如果測得的溫度大于0,這5位為0,只要將測得的數(shù)值乘以0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于 0.0625即可得到實際溫度。 圖4 DS18B20溫度值格式表1、配置寄存器DS18B20配置寄存器各字節(jié)意義如表3下:表3 DS18B20寄存器中各位內(nèi)容BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0TMR1RO11111低五位一直都是1,其中TM是測試模式位,用于設(shè)置溫度傳感器DS18B20是在工作模式還是在

22、測試模式。溫度傳感器DS18B20默認(rèn)該位被設(shè)置為0,我們不要去修改。其中,R1和R0作用主要是設(shè)置分辨率,具體設(shè)置如表4所示:(DS18B20默認(rèn)設(shè)置為12位)。表4 溫度分辨率設(shè)置表RR1RRO分辨率溫度最大轉(zhuǎn)換時間000099位93.75ms0011110位187.5ms1100111位375ms1111112位750ms2、高速暫存存儲器該存儲器一共有9個字節(jié)組成。當(dāng)溫度轉(zhuǎn)化指令發(fā)出后,經(jīng)溫度傳感器的轉(zhuǎn)化所得的溫度值以二進制補碼形式存儲在該存儲器的前兩個字節(jié)。單片機可通過單線接口讀取所得數(shù)據(jù)。讀取時低位在前,高位在后。相應(yīng)的溫度計算:當(dāng)符號位S=0時,直接將二進制位轉(zhuǎn)換為十進制;當(dāng)S=

23、1時,先將補碼變?yōu)樵a,再計算十進制值。其中第9個字節(jié)是冗余檢驗字節(jié)。溫度傳感器DS18B20暫存寄存器分布如表5所示。表5 DS18B20暫存寄存器分布寄存器內(nèi)容字節(jié)地址溫度值低位(LS Byte)0溫度值高位(MS Byte)1高溫限值(TH)2低溫限值(TL)3配置寄存器4保留5保留6保留7CRC校驗值83.3.3DS18B20 溫度測量通信協(xié)議由于DS18B20采用的是1Wire總線協(xié)議方式,即使用一根數(shù)據(jù)線完成數(shù)據(jù)的雙向傳送,而對AT89S51單片機來說,硬件方面并不支持單總線協(xié)議,因此,我們必須使用軟件來模擬單總線的協(xié)議時序以完成對DS18B20芯片中的數(shù)據(jù)處理。DS18B20有嚴(yán)

24、謹(jǐn)?shù)耐ㄐ艆f(xié)議來確保各個數(shù)據(jù)傳送的正確性。該協(xié)議定位了幾種信號的時序:初始化時序、讀時序、寫時序。全部時序都是將主機設(shè)為主設(shè)備,單總線器件用作從屬設(shè)備。而每一次指令和數(shù)據(jù)的傳送都是由主機主動啟動寫時序開始,DS18B20的一線工作協(xié)議流程是:初始化ROM操作指令存儲器操作指令數(shù)據(jù)傳輸,其工作時序包括初始化時序、寫時序和讀時序。它們的工作時序如圖5 (a)(b)(c)所示。圖5 (a)初始化時序DS18B20的初始化過程:1. 先將數(shù)據(jù)線置高電平“1”。2. 延時,盡可能短一點。3. 數(shù)據(jù)線拉到低電平“0”。4. 延時750微秒(該時間的時間范圍可以從480到960微秒)。5.數(shù)據(jù)線拉到高電平“1

25、”。6. 延時等待。7. 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時,其延時的時間從發(fā)出的高電平算起(第(5)步的時間算起)最少要480微秒。8.將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。圖5 (b)寫時序DS18B20的寫操作過程:1. 數(shù)據(jù)線先置低電平“0”。2. 延時確定的時間為15微秒。3. 按從低位到高位的順序發(fā)送字節(jié),一次只發(fā)送一位。4. 延時時間為45微秒。5. 將數(shù)據(jù)線拉到高電平。6. 重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。7. 最后將數(shù)據(jù)線拉高。圖5 (c)讀時序DS18B20的讀操作過程:1. 將數(shù)據(jù)線拉高“1”。2. 延時2微秒。3. 將數(shù)據(jù)線拉低“

26、0”。4. 延時15微秒。5. 將數(shù)據(jù)線拉高“1”。6. 延時15微秒。7. 讀數(shù)據(jù)線的狀態(tài)得到1個狀態(tài)位,并進行數(shù)據(jù)處理。8. 延時30微秒。3.4系統(tǒng)硬件設(shè)計3.4.1復(fù)位電路模塊本系統(tǒng)采用按鈕復(fù)位電路,按鈕未按下時,其利用電容來完成復(fù)位,在接電的瞬時,RST引腳的電位與電源VCC相同,隨著充電電流的變小,RST的電位逐漸降低。這時只要確保RST為高電平的時間長于兩個機器周期,就可以正常復(fù)位;按鈕按下時,電源VCC經(jīng)過兩個電阻分壓,在RST引腳生成一個復(fù)位高電平,進而完成復(fù)位。復(fù)位電路如圖6所示。圖6 復(fù)位電路3.4.2報警電路模塊當(dāng)被測環(huán)境溫度超過溫度上下限時,我們需要進行報警處理,這里

27、用到的是蜂鳴器。蜂鳴器工作電流一般為10mA,而單片機的I/O口只能承受幾毫安的電流,因此需要加三極管進行驅(qū)動,單片機的I/O口中的P1.4接三極管的基極,當(dāng)P1.4為低電平時,三極管導(dǎo)通,5V的電壓加載到蜂鳴器兩端,于是蜂鳴器鳴叫;當(dāng)P1.4高電平時,三極管截止,蜂鳴器不鳴叫。報警電路如下圖所示:圖 7報警電路3.4.3顯示電路模塊顯示系統(tǒng)是單片機控制系統(tǒng)的重要組成部分,單片機應(yīng)用系常采用7段LED數(shù)碼管作為顯示器,這種顯示器具有耗能低、線路簡易、價格便宜等優(yōu)點。LED數(shù)碼管顯示器可以分為共陰極和共陽極兩種結(jié)構(gòu)。(1)共陰極結(jié)構(gòu):當(dāng)所有的發(fā)光二極管的陰極接在一起,稱為共陰極結(jié)構(gòu);(2)共陽極

28、結(jié)構(gòu):當(dāng)所有的發(fā)光二極管的陽極接在一起,稱為共陽極結(jié)構(gòu)。七段LED顯示器是由7個LED按一定的圖形排列組成,如圖9所示,七段LED顯示器的各個二極管分別稱為a、b、c、d、e、f、g段,有些七段顯示器增加一個dp段表示小數(shù)點,也稱為八段LED顯示器。圖8 典型七段LED器件將數(shù)碼管的引腳和單片機的數(shù)據(jù)輸出口相連,控制輸出的數(shù)據(jù)可以使數(shù)碼管顯示不同的數(shù)字和字符,通常稱控制發(fā)光二極管的8位字節(jié)數(shù)據(jù)為段選碼。7段LED段選碼如表6所示。表6 7段LED段選碼顯示字符共陰極段選碼共陽極段選碼顯示字符共陰極段選碼共陽極段選碼03FHC0HC3EHC6H106HF9HD5EHAH25BHA4HE79H86

29、H34FHB0HF71H8EH56DH92HU3EHC1H67DH82HR31HCEH707HF8HY6EH91H87FH80H8.FFH00H96FH90H“滅”00HFFHA77H88HB7CH83H 本設(shè)計采用四位共陰極動態(tài)顯示方式,可以直接讀取溫度值,顯示溫度可以精確到1。圖9為顯示電路的連接圖。圖9 顯示電路3.4.4按鍵電路模塊該電路采用彈性按鍵。按鍵電路的作用是手動設(shè)置溫度的上下限。按下K4,進行上下限報警切換,通過K1和K2調(diào)節(jié)溫度上下限,最后,按下K3確認(rèn)。具體的按鍵電路圖如下圖10所示: 圖10 按鍵電路3.4.5溫度檢測電路模塊該電路中溫度傳感器采用Dallas公司生產(chǎn)的

30、數(shù)字溫度傳感器DS18B20。該芯片硬件接口簡單,使用方便,且節(jié)省大量的導(dǎo)線,具有很好的通用性。該系統(tǒng)中將單片機的P1.1引腳與DS18B20的數(shù)據(jù)線連接。具體的溫度檢測電路圖如下圖11所示:圖11 溫度檢測電路3.4.6濕度檢測電路模塊該電路中濕度傳感器采用HS1101數(shù)字濕度傳感器。該芯片硬件接口不復(fù)雜,使用便捷,并且無需過多的電路板,具有良好的連通性。該系統(tǒng)中具體的濕度檢測采集部分原理如下圖12所示:圖12 濕度采集原理圖4系統(tǒng)軟件設(shè)計4.1系統(tǒng)主程序設(shè)計主程序是系統(tǒng)的監(jiān)測程序,在程序運行的過程中必須先經(jīng)過初始化,包括開機啟動子程序,中斷程序,報警函數(shù),按鍵掃描子程序以及控制端口的初始化

31、工作。系統(tǒng)在初始化完成后就進入溫濕度監(jiān)測程序,實時的監(jiān)測當(dāng)前的溫度并通過顯示電路在LCD上顯示。程序中以中止的方式來重新設(shè)置溫度的上下限,根據(jù)硬件設(shè)計完成對溫度的控制,系統(tǒng)軟件設(shè)計的總體流程圖如下圖13。 圖13 系統(tǒng)主程序框圖主程序如下:voidmain() TCON=0x01; /定時器T0工作在01模式下 TMOD=0X01; TH0=0XD8; /裝入初值 TL0=0XF0; EA=1; /開總中斷 ET0=1; /開T0中斷 TR0=1; /T0開始運行計數(shù) EX0=1; /開外部中斷0 for(n=0;n500;n+) /顯示啟動LOGo- - - - bell=1;warn=1;

32、logo(); Red=0; while(1) key(); ss=ReadTemperature(); Show(); alarm(); /報警函數(shù) if(Flag=1) bell=!bell; warn=!warn; /蜂鳴器滴滴響 else bell=1; warn=1; 4.2 DS18B20和HS1101初始化子程序DS18B20的初始化相當(dāng)于DS18B20數(shù)據(jù)頭的作用,DS18B20檢測到初始化電平,準(zhǔn)備開始接收或發(fā)送數(shù)據(jù)。HS1101與DS18B20的相似,其中DS18B20初始化子程序流程圖如下圖14所示。 圖14 DS18B20初始化程序流程圖DS18B20初始化程序如下:I

33、nit_DS18B20(void) /傳感器初始化 uchar x=0; DATA = 1; /DQ復(fù)位 delay(10); /稍做延時 DATA = 0; /單片機將DQ拉低 delay(80); /精確延時 大于 480us DATA = 1; /拉高總線 delay(20); x=DATA; /稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 delay(30);4.3 DS18B20和HS1101讀取溫濕度子程序讀出溫濕度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。DSBl820可以從單總線獲取電源,當(dāng)信號線為高電平時,將能

34、量貯存在內(nèi)部電容器中;當(dāng)單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳?電容)電源為止。DSl8820的供電方式靈活,利用外接電源還可增加系統(tǒng)的穩(wěn)定性和可靠性。圖15為讀取數(shù)據(jù)流程圖。 圖15 DS18B20讀取溫度子程序流程圖讀取溫濕度子程序如下:int ReadTemperature(void) /讀取溫濕度 uchar a=0; uchar b=0; int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳過讀序號列號的操作 WriteOneChar(0x44); / 啟動溫濕度轉(zhuǎn)換 Init_DS18B

35、20(); WriteOneChar(0xCC); /跳過讀序號列號的操作 WriteOneChar(0xBE); /讀取溫濕度寄存器等(共可讀9個寄存器) 前兩個就是溫濕度 a=ReadOneChar(); /低位 b=ReadOneChar(); /高位 t=b; t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; return(t);4.4 顯示數(shù)據(jù)處理子程序收集溫濕度數(shù)據(jù)后,LOW的高四位和HIGH的低四位為溫濕度的整數(shù)部分,LOW的低四位為溫濕度的小數(shù)部分,HIGH的高四位全部為1表示負(fù)數(shù),全為0表示正數(shù)。所以先將數(shù)據(jù)提取出來,劃分為三個部分:小數(shù)部分、整數(shù)

36、部分和符號部分。小數(shù)部分實行四舍五入處理。當(dāng)數(shù)據(jù)是個負(fù)數(shù)的時候,顯示之前要進行數(shù)據(jù)轉(zhuǎn)換,將其整數(shù)部分取反加一。并且因為DS18B20最低溫度只能為-55,所以可以將整數(shù)部分的最高位換成一個“-”,表示為負(fù)數(shù)。圖16為溫濕度數(shù)據(jù)處理程序的流程圖: 圖16 顯示數(shù)據(jù)處理子程序以下是顯示正值子函數(shù)的程序:voiddisplay() buf1=temp/1000; /顯示百位 buf2=temp/100%10; /顯示十位 buf3=temp%100/10; /顯示個位 buf0=temp%10; /小數(shù)位 for(j=0;j3;j+) P2=0xff; / 初始燈為滅的 P0=0x00; P2=0x

37、fd; /顯示小數(shù)點 P0=0x80; /顯示小數(shù)點 delay(300); P2=0xff; / 初始燈為滅的 P0=0x00; P2=0xf7; /片選LCD1 P0=tablebuf1; delay(300); P2=0xff; P0=0x00; P2=0xfb; /片選LCD2 P0=tablebuf2; delay(300); P2=0xff; P0=0x00; P2=0Xfd; /片選LCD3 P0=tablebuf3; delay(300); P2=0xff; P0=0x00; P2=0Xfe; P0=tablebuf0; /片選LCD4 delay(300); P2=0xff;

38、 4.5按鍵掃描子程序該系統(tǒng)支持手動設(shè)置溫濕度上下限,而按鍵掃描的主要功能就是手動設(shè)置溫濕度的上下限。系統(tǒng)默認(rèn)的溫濕度上下限是1032。當(dāng)被測溫濕度值處于0125時,若被測溫濕度沒有超過上下限,則報警器不鳴叫,否則報警器鳴叫;當(dāng)被測溫濕度值處于0以下時,報警器鳴叫較急促。為了防止抖動,按鍵電路中都要設(shè)立消抖的措施,本設(shè)計中使用的是軟件消抖的方法,在單片機檢測到某個鍵按下后,延時10ms再監(jiān)測,如果仍然按下,才確定按下了該鍵。按鍵K4、K1、K2、K3分別與單片機的P2.4-P2.7引腳連接。默認(rèn)狀態(tài)設(shè)置溫濕度上限,若按下按鍵K4,也就是使P2.4為低電平時,進入溫濕度下限的設(shè)置,再按一次進入溫

39、濕度上限的設(shè)置;在每個溫濕度上下限設(shè)置里面,按下K1一次增加1溫濕度值,按下按鍵K一次減小1溫濕度值,最后按K3確定。按鍵掃描子程序的流程圖如下圖17所示: 圖17 按鍵掃描子程序按鍵掃描子程序如下:void key() /按鍵掃描子程序 if(k1!=1) delay(20); if(k1!=1) while(k1!=1) key_to1(); for(n=0;n8;n+) Show(); if(k2!=1) delay(20); if(k2!=1) while(k2!=1) key_to2(); for(n=0;n8;n+) Show(); if(k3!=1) TR0=1; /復(fù)位,開定時

40、 temp=ReadTemperature(); if(k4!=1) delay(20); if(k4!=1) while(k4!=1); set=!set; if(set=0) Red=0;Green=1; else Green=0;Red=1; 5 系統(tǒng)軟硬件調(diào)試本次設(shè)計采用Keil uVision2來編寫C語言程序,通過它的編譯器進行編譯、連接,最后將生成的機器碼下載到單片機上。Keil C51編譯器是目前最流行的開發(fā)MCS-51系列單片機的軟件,它具有C編輯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調(diào)試等在內(nèi)的功能,并通過一個集成開發(fā)環(huán)境將這些部份組合在一起。打開Proteus I

41、SIS,在Proteus ISIS編輯窗口中單擊元件列表之上的“P”按鈕 ,添加元件及放置元件。本文僅提供溫度監(jiān)測系統(tǒng)的調(diào)試,濕度監(jiān)測系統(tǒng)與溫度相似,不在贅述。按照正確的方法,合理地布局將各個元器件連線,得到如下界面,如圖18所示:圖 18 整體電路圖 把剛才生成的可執(zhí)行hex文件傳輸?shù)絾纹瑱C中,點擊運行按鈕,電路瞬時接通,程序最先進入Logo函數(shù)進行開機檢查。這時單片機給正負(fù)溫度指示燈和報警指示燈傳輸一個高電平,給溫度上限指示燈傳輸一個低電平,讓它們可以正常發(fā)光,再給共陰極數(shù)碼管傳輸對應(yīng)的位高電平,讓其動態(tài)顯示溫度為85。因為85不在默認(rèn)溫度上下限值1032范圍之內(nèi),所以這時正溫度指示燈亮,

42、報警指示燈閃爍,報警器也開始低鳴。約莫200ms后,開機檢查結(jié)束,溫度回到當(dāng)前環(huán)境溫度5,由于默認(rèn)的溫度上下限是1032,因此負(fù)溫度指示燈亮,報警指示燈閃爍,報警器低鳴。生成結(jié)果如圖19所示。圖19 數(shù)字溫度系統(tǒng)仿真圖這時我們再度改變環(huán)境溫度,讓環(huán)境溫度處于15,因為此時溫度處在溫度上下限1032之間,所以單片機給正溫度指示燈高電平,給報警指示燈低電平,所以正溫度指示燈亮,報警指示燈熄滅,報警器也就不會鳴叫。實驗結(jié)果如圖20所示。圖20 數(shù)字溫度系統(tǒng)仿真圖再度調(diào)改變溫度,使溫度在-10,此時溫度不在溫度上下限值之間,此時單片機給負(fù)溫度指示燈高電平,報警指示燈高電平,所以負(fù)溫度指示燈亮,報警指示燈閃爍,并且蜂鳴器鳴叫較為急促。結(jié)果如圖21所示。圖21數(shù)字溫度系統(tǒng)仿真圖在默認(rèn)情況下按鍵自動設(shè)置溫度上限,若按下K4進入溫度下限設(shè)置。通過按鍵K1和K2增加或減少溫度值,最后按下K3確認(rèn)。比如設(shè)置溫度上下限為1540,當(dāng)環(huán)境溫度處于35時,而35在設(shè)置的溫度上下限1540之間,因此報警電路不工作。電路如圖22所示。圖22 數(shù)字溫度系統(tǒng)仿真圖當(dāng)環(huán)境溫度處于12時,當(dāng)溫度在溫度上下限1540之間時,報警電路開始工作,報警指示燈閃爍,蜂鳴器鳴叫。電路如圖23所示。圖23 數(shù)字溫度系統(tǒng)仿真圖結(jié)果分析:本文介紹并設(shè)計的數(shù)字溫度系統(tǒng)的基本測量范圍是-30125,此外含有自動報警功能和默認(rèn)溫度上下限

溫馨提示

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

評論

0/150

提交評論