




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、種苗催芽室環(huán)境監(jiān)控系統(tǒng)的設(shè)計摘 要近幾年來種苗催芽室的機械化、自動化程度不斷提高,一些智能化倉庫管理技術(shù)如檢測技術(shù)、監(jiān)視技術(shù)和控制技術(shù)等在種苗催芽室中得到廣泛應(yīng)用。在種苗催芽的過程當中,若不對催芽室的溫度或濕度進行實時檢測,就不能及時了解種苗的培育情況,可能發(fā)生燒種、爛種、發(fā)苗參差不齊等狀況的發(fā)生,造成極大的經(jīng)濟損失。由于種苗催芽對環(huán)境溫度和濕度提出了很高的要求,因此能否有效地對催芽室的環(huán)境溫度和濕度進行實時監(jiān)測和控制是一個必須解決的重要課題。本系統(tǒng)解決的就是溫、濕度的實時檢測,只要兩者之中的任何一個超過限制,就啟動報警系統(tǒng),使人們能夠及時發(fā)現(xiàn)問題,采取有效的措施,以此避免不必要的損失。為了降
2、低損失,我們設(shè)計了一套溫、濕度檢測系統(tǒng),實時檢測倉庫的溫、濕度。本系統(tǒng)由at89s52單片機、報警電路、數(shù)字溫度傳感器、濕度傳感器組成。完成對倉庫內(nèi)溫、濕度數(shù)據(jù)的采集、顯示和超限報警。關(guān)鍵詞 種苗催芽 單片機 監(jiān)控目 錄第一章 緒論11.1 課題背景11.2 溫濕度采集技術(shù)現(xiàn)狀11.3 預(yù)期目標21.4系統(tǒng)總方框圖2第二章 器件介紹22.1 溫度傳感器ds18b20介紹22.2 濕度傳感器hs1101介紹72.3 單片機at89s52介紹112.3.1 內(nèi)部結(jié)構(gòu)、資源112.3.2 機器周期和指令周期12第三章 硬件設(shè)計133.1總電路圖133.2 溫度測量電路133.3濕度測量電路143.4
3、數(shù)碼管顯示電路14第四章 軟件設(shè)計154.1主程序流程圖154.2按鍵掃描子程序流程圖154.3溫度程序流程圖174.4濕度程序流程圖19參考文獻20附錄1:程序清單21致謝28第一章 緒論1.1 課題背景溫濕度是影響種苗催芽室的重要指標,它直接影響到種苗的產(chǎn)量和質(zhì)量,為了能給作物提供一個合適的生長環(huán)境,首要問題是加強溫室內(nèi)的溫濕度的檢測, 但傳統(tǒng)的方法是用與濕度表、毛發(fā)濕度表、雙金屬式測量計和濕度試紙等測試器材,通過人工進行檢測,對不符合溫度和濕度要求的催芽室進行通風(fēng)、去濕和降溫等工作。這種人工測試方法費時費力、效率低,且測試的溫度及濕度誤差大,隨機性大。因此我們需要一種造價低廉、使用方便且
4、測量準確的溫濕度測量儀。該設(shè)計即是針對這一問題,設(shè)計出了能夠?qū)崿F(xiàn)溫濕度自動檢測,顯示,上下限報警等多功能的溫濕度監(jiān)測控制系統(tǒng)。1.2 溫濕度采集技術(shù)現(xiàn)狀在傳統(tǒng)的溫度測量系統(tǒng)設(shè)計中,往往采用模擬技術(shù)進行設(shè)計。傳感器一般采用熱電阻、熱電偶等模擬器件,需要額外加補償電路,安裝復(fù)雜,成本較高。而且必須經(jīng)過a/d轉(zhuǎn)換后才可以被微處理器識別和處理。這樣就不可避免地遇到諸如引線誤差補償、多點測量中的切換誤差和信號調(diào)理電路的誤差等問題;而其中某一環(huán)節(jié)處理不當,就可能造成整個系統(tǒng)性能的下降。而ds1820新型單總線數(shù)字溫度傳感器,采用3腳(或8腳)封裝,從ds1820讀出或?qū)懭霐?shù)據(jù)僅需要一根io口線,而且測量精
5、度達到12位,最低精確到小數(shù)點后4位有效數(shù)字1。用這種智能化數(shù)字式傳感器的優(yōu)勝顯而易見?,F(xiàn)代濕度測量方案最主要的有兩種:干濕球測濕法,電子式濕度傳感器測濕法。下面對這兩種方案進行比較:干濕球濕度計的特點:干濕球濕度計的準確度只有5一7rh。 干濕球測濕法采用間接測量方法,通過測量干球、濕球的溫度經(jīng)過計算得到濕度值,因此對使用溫度沒有嚴格限制,在高溫環(huán)境下測濕不會對傳感器造成損壞。干濕球測濕法的維護相當簡單,在實際使用中,只需定期給濕球加水及更換濕球紗布即可。與電子式濕度傳感器相比,干濕球測濕法不會產(chǎn)生老化,精度下降等問題。所以干濕球測濕方法更適合于在高溫及惡劣環(huán)境的場合使用。 電子式濕度傳感器
6、的特點:電子式濕度傳感器的準確度可以達到2一3rh。電子式濕度傳感器的精度水平要結(jié)合其長期穩(wěn)定性去判斷,一般說來,電子式濕度傳感器的長期穩(wěn)定性和使用壽命不如干濕球濕度傳感器。濕度傳感器是采用半導(dǎo)體技術(shù),因此對使用的環(huán)境溫度有要求,超過其規(guī)定的使用溫度將對傳感器造成損壞2。所以電子式濕度傳感器測濕方法更適合于在潔凈及常溫的場合使用。1.3 預(yù)期目標系統(tǒng)完成后可以通過溫度傳感器db18b20和濕度傳感器hs1101對種苗催芽室內(nèi)的溫濕度進行測量,通過單片機at89s52對采集到的數(shù)據(jù)進行處理,用led顯示出當前環(huán)境的溫濕度狀況,其中溫度可以有操作人員根據(jù)不同作物所需的最適宜溫度進行調(diào)節(jié),當環(huán)境溫度
7、和設(shè)置的最適宜溫度之差大于4時,報警裝置即會啟動,報警指示有蜂鳴器和發(fā)光二極管(紅綠各一)構(gòu)成。1.4系統(tǒng)總方框圖溫度模塊ds18b20單片機系統(tǒng)at89s52濕度模塊hs1101按 鍵顯示與報警模塊圖1-1 溫度濕度測量系統(tǒng)框圖第二章 器件介紹2.1 溫度傳感器ds18b20介紹測溫元件采用新型的溫度傳感器ds18b20。ds18b20是由dallas半導(dǎo)體公司生產(chǎn)的“一線總線”接口的溫度傳感器。一線總線結(jié)構(gòu)具有簡潔且經(jīng)濟的特點,可使用戶輕松地組建傳感器網(wǎng)絡(luò),從而為測量系統(tǒng)的構(gòu)建引入全新概念,ds18b20的測溫范圍為-55+125,在-10+85范圍內(nèi),精度為0.0625,現(xiàn)場溫度可直接通
8、過“一線總線”以數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。ds18b20適合于惡劣環(huán)境的現(xiàn)場溫度測量,如環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。它工作在3v5.5v的電壓范圍,采用多種封裝形式,從而使系統(tǒng)設(shè)計更靈活、方便,設(shè)定分辨率及用戶設(shè)定的報警溫度存儲在eeprom中,掉電后依然保存3。ds18b20的內(nèi)部結(jié)構(gòu)如圖2-1所示:斜率累加器預(yù)置減法計數(shù)器減至0減法計數(shù)器高溫度系數(shù)振蕩器低溫度系數(shù)振蕩器溫度寄存器減至0預(yù)置計數(shù)比較器圖2-1 ds18b20內(nèi)部結(jié)構(gòu)圖溫度測量原理電路如圖2-2所示:電源檢測 64位rom與單線 接口 寄存器與邏輯控制暫存寄存器溫度傳感器高溫觸發(fā)器低溫觸發(fā)器8
9、位crc發(fā)生器cvddvd1vd2內(nèi)部i/o圖2-2 溫度測量原理電路ds18b20主要由4部分組成:64位rom、溫度傳感器、非易失性溫度報警觸發(fā)器th和tl、配置寄存器5。ds18b20的封裝形式及引腳排列如圖2-3所示:圖2-3 ds18b20的引腳排列圖ds18b20有4個主要的數(shù)據(jù)部件:(1)光刻rom中的64位序列號是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼。64位光刻rom的排列是:開始8位(28h)是產(chǎn)品類型標號,接著的48位是該ds18b20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(crc=x8+x5+x4+1)。光刻rom的作用是使每一個ds18
10、b20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個ds18b20的目的。(2)ds18b20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625/lsb形式表達,其中s為符號位。其中dq為數(shù)字信號輸入/輸出端;gnd為電源地;vdd為外接供電電源輸入端(采用寄生電源供電方式時接地)。表2-1 ds18b20溫度數(shù)據(jù)表temperaturedigital output(binary)digital output(hex)+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06
11、250000 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111ff6eh-551111 1100 1001 0000fc90h(3)ds18b20溫度傳感器的存儲器ds18b20溫度傳感器的內(nèi)部存儲器包括一個高速暫存ram和一個非易失性的可電擦除的eepram,后者存放
12、高溫度和低溫度觸發(fā)器th、tl和結(jié)構(gòu)寄存器。(4)配置寄存器該字節(jié)各位的意義如下:表2-2 配置寄存器結(jié)構(gòu)tmr1r011111低五位一直都是1,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。在ds18b20出廠時該位被設(shè)置為0,用戶不要去改動。r1和r0用來設(shè)置分辨率,如下表所示(ds18b20出廠時被設(shè)置為12位): 表2-3 分辨率設(shè)置r1r0分辨率溫度最大轉(zhuǎn)換時間009位93.75ms0110位187.5ms1011位375ms1112位750msdsl8b20工作過程中的協(xié)議如下: 初始化:rom操作命令;存儲器操作命令;處理數(shù)據(jù)。 初始化 單總線上的所有處理均從
13、初始化開始。 rom操作命令 總線主機檢測到dsl820的存在,便可以發(fā)出rom操作命令之一,這些命令如 指令 代碼 read rom(讀rom) 33h match rom(匹配rom) 55h skip rom(跳過rom cch search rom(搜索rom) f0h alarm search(告警搜索) ech 存儲器操作命令 指令 代碼 write scratchpad(寫暫存存儲器) 4eh read scratchpad(讀暫存存儲器) beh copy scratchpad(復(fù)制暫存存儲器) 48h convert temperature(溫度變換) 44h recall
14、eprom(重新調(diào)出) b8h read power supply(讀電源) b4h 時 序 主機使用時間隙(time slots)來讀寫dsl820的數(shù)據(jù)位和寫命令字的位 (1)初始化 時序見圖2-4。主機總線to時刻發(fā)送一復(fù)位脈沖(最短為480us的低電平信號),接著在tl時刻釋放總線并進入接收狀態(tài),dsl8b20在檢測到總線的上升沿之后,等待15-60us,接著dsl8b20在t2時刻發(fā)出存在脈沖(低電平持續(xù)60-240us)6,如圖中虛線所示。 15us-60us 480us 480us-950us 60us-240us t0 tl t2 t3 t4 圖2-4 主機讀時序 (2)寫時間
15、隙 當主機總線to時刻從高拉至低電平時,就產(chǎn)生寫時間隙,見圖2.5、圖2.6,從to時刻開始15us之內(nèi)應(yīng)將所需寫的位送到總線上,dsl8b20在t0后15-60us間對總線采樣。若低電平,寫入的位是0,見圖2-5;若高電平,寫入的位是1,見圖2-6。連續(xù)寫2位間的間隙應(yīng)大于1us。 t0 t1 t0 t1 60us 1us 60us 1us 15us15us-60us 15us 45us 圖2-5 ds18b20寫0 圖2-6 ds18b20寫1 (3)讀時間隙 見圖2-7,主機總線to時刻從高拉至低電平時,總線只須保持低電平t0一t1。之后在t1時刻將總線拉高,產(chǎn)生讀時間隙,讀時間隙在t1
16、時刻后t2時刻前有效。t2距to為15us,也就是說t2時刻前主機必須完成讀位,并在to后的60us一120 us內(nèi)釋放總線。 主機工作 ds18b20工作 60us 1us 15us to t1 t2 t3 圖2-7 主機讀時序2.2 濕度傳感器hs1101介紹測量空氣濕度的方式很多,其原理是根據(jù)某種物質(zhì)從其周圍的空氣吸收水分后引起的物理或化學(xué)性質(zhì)的變化,間接地獲得該物質(zhì)的吸水量及周圍空氣的濕度。電容式、電阻式和濕漲式濕敏原件分別是根據(jù)其高分子材料吸濕后的介電常數(shù)、電阻率和體積隨之發(fā)生變化而進行濕度測量的。下面 介紹hs1101濕度傳感器及其應(yīng)用。特點是不需校準的完全互換性,高可靠性和長期穩(wěn)
17、定性,快速響應(yīng)時間,專利設(shè)計的固態(tài)聚合物結(jié)構(gòu),由頂端接觸(hs1100)和側(cè)面接觸(hs1101)兩種封裝產(chǎn)品,適用于線性電壓輸出和頻率輸出兩種電路,適宜于制造流水線上的自動插件和自動裝配過程等7。圖2-8為濕敏電容工作的溫、濕度范圍。圖2-9為濕度-電容響應(yīng)曲線。 圖2-8 濕敏電容工作的溫、濕度范圍 圖2-9 濕度-電容響應(yīng)曲線相對濕度在1%-100%rh范圍內(nèi);電容量由16pf變到200pf,其誤差不大于2%rh;響應(yīng)時間小于5s;溫度系數(shù)為0.04 pf/。可見精度是較高的。humirel 濕度傳感器 hs1101/hs1100基于獨特工藝設(shè)計的電容元件,這些相對濕度傳感器可以大批量生
18、產(chǎn)??梢詰?yīng)用于辦公自動化,車廂內(nèi)空氣質(zhì)量控制,家電,工業(yè)控制系統(tǒng)等。在需要濕度補償?shù)膱龊纤部梢缘玫胶艽蟮膽?yīng)用。hs1101的外部結(jié)構(gòu)及符號如圖2-10所示:圖2-10 hs1101的外部結(jié)構(gòu)及符號為空氣濕度與電壓頻率的典型值如表2-4所示:表2-4 空氣濕度與電壓頻率的典型值hs1101的特性參數(shù)如表2-5所示:表2-5 hs1101的特性參數(shù)hs1100/hs1101電容傳感器,在電路構(gòu)成中等效于一個電容器件,其電容量隨著所測空氣濕度的增大而增大。如何將電容的變化量準確地轉(zhuǎn)變?yōu)橛嬎銠C易于接受的信號,常有兩種方法:一是將該濕敏電容置于運放與阻容組成的橋式振蕩電路中,所產(chǎn)生的正弦波電壓信號經(jīng)整
19、流、直流放大、再a/d轉(zhuǎn)換為數(shù)字信號;另一種是將該濕敏電容置于555振蕩電路中,將電容值的變化轉(zhuǎn)為與之成反比的電壓頻率信號,可直接被計算機所采集8。本系統(tǒng)采用的是將hs1101接入555定時器組成的震蕩電路中,輸出一定頻率的方波信號,這種方法結(jié)構(gòu)簡單,使用方便,因此被廣泛采用,具體結(jié)構(gòu)圖如2-11下:圖2-11 hs1101和ne556構(gòu)成的濕度采集電路集成定時器ne555一方面可以形成單穩(wěn)態(tài)電路,另一方面可以形成多諧振蕩電路,本系統(tǒng)選用的是ne556,它內(nèi)部含有兩個ne555定時器,其中r1,r2,c1,c2和ne556構(gòu)成多諧振蕩器,外接電阻r1,r2和濕敏電容c1構(gòu)成了對濕敏電容c1的充
20、電回路,7端通過芯片內(nèi)部的晶體管對地短路又構(gòu)成了對c1的放電回路,并將2,6端相連引入到片內(nèi)比較器,。該振蕩電路的兩個暫穩(wěn)態(tài)過程交替如下:首先是電源ucc通過r1,r2向c2充電,經(jīng)t1充電時后,uc2充至內(nèi)比較器的高觸發(fā)電平,約2/3ucc,此時輸入引腳3端由高電平突降為低電平,然后通過r2放電,經(jīng)t2放電時間后,uc2下降到比較器的低觸發(fā)電平,約1/3ucc,此時輸入引腳3端又由低電平躍升為高電平,如此反復(fù),形成方波輸出,其中充放電時間為:t1=c1(r1+r2)ln2t2=c1r2ln2因而輸出的方波頻率為:f=1/(t1+t2)=1/c1(r1+2r2)ln2=50hz只要改變定時元件
21、r1和r2就可以改變脈沖的頻率,從多諧振蕩器出來的信號又接入到單穩(wěn)態(tài)觸發(fā)器,單穩(wěn)態(tài)觸發(fā)器它有兩個觸發(fā)狀態(tài),一個穩(wěn)定狀態(tài),一個暫穩(wěn)定狀態(tài),在外來觸發(fā)脈沖作用下,能夠由穩(wěn)定狀態(tài)翻轉(zhuǎn)到暫穩(wěn)定狀態(tài),而暫穩(wěn)定狀態(tài)維持一段時間后,再自動的返回到穩(wěn)定狀態(tài),且暫穩(wěn)定狀態(tài)持續(xù)時間長短取決與電路本身參數(shù),圖中,r3,c3和傳感器hs1101是外接地定時元件,觸發(fā)脈沖ui由5端輸出,由8端輸入,下降沿有效,從9端輸出一個幅度,寬度都一定的矩形波信號,輸出的脈沖寬度tp為:tp=r3(c2+cx)ln3雖然從ne556輸出的是標準的脈沖信號,為了減少外界對信號的干擾,設(shè)計中采用低通濾波器,過濾掉高頻信號的干擾,然后直
22、接用單片機的定時計數(shù)器t0來測量tp的脈寬,通過脈寬值,我們可以得到相應(yīng)的傳感器電容值,知道了傳感器的電容值,我們就可以分析電容與濕度的關(guān)系,下圖為hs1101的典型輸出曲線,相對濕度在1%-99%rh之間,電容量由163pf變化到202pf,其誤差不大于2%rh,響應(yīng)時間小于5s,溫度系數(shù)為0.04pf/。hs1101的典型輸出曲線如圖2-12所示:圖2-12 hs1101的典型輸出曲線根據(jù)hs1101的典型輸出曲線,以及傳感器的相關(guān)資料,我們可以得到電容值與濕度值的近似關(guān)系為:rh(cx-163)/0.39我們可以根據(jù)前面測量出的ne556輸出的脈寬值,求出相應(yīng)的電容值,再根據(jù)上式,我們就
23、可以由相應(yīng)的電容值求出濕度值。2.3 單片機at89s52介紹2.3.1 內(nèi)部結(jié)構(gòu)、資源at89s52是一種低功耗、高性能cmos8位微控制器,具有8k 在系統(tǒng)可編程flash 存儲器。使用atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。其內(nèi)部主要由cpu、ram、rom、通用i/o及總線構(gòu)成,內(nèi)部結(jié)構(gòu)圖如2-13所示:8051時鐘程序存儲器數(shù)據(jù)存儲器定時計數(shù)器并
24、行i/o口串行通信口中斷系統(tǒng)數(shù)據(jù)總線地址總線控制總線 圖2-13 內(nèi)部結(jié)構(gòu)cpu:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;ram:用以存放可以讀寫的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);rom:用以存放程序、一些原始數(shù)據(jù)和表格;at89s52具有以下標準功能: 8k字節(jié)flash,256字節(jié)ram,32 位i/o 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,at89s52 可降至0hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,cpu停止工作,允許ram、定時器
25、/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止9。2.3.2 機器周期和指令周期(1) 振蕩周期: 也稱時鐘周期, 是指為單片機提供時鐘脈沖信號的振蕩源的周期。 (2) 狀態(tài)周期: 每個狀態(tài)周期為時鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的。(3) 機器周期: 一個機器周期包含 6 個狀態(tài)周期s1s6, 也就是 12 個時鐘周期。在一個機器周期內(nèi), cpu可以完成一個獨立的操作。 (4) 指令周期: 它是指cpu完成一條操作所需的全部時間。 每條指令執(zhí)行時間都是有一個或幾個機器周期組成。mcs - 51 系統(tǒng)中
26、, 有單周期指令、雙周期指令和四周期指令。第三章 硬件設(shè)計3.1總電路圖總電路圖如圖3-1所示:圖3-1 總電路原理圖3.2 溫度測量電路溫度測量采用ds18b20,它是單線傳輸器件,不需校正溫宿,接口接的是p2.0,具體的溫度測量電路如圖3-2所示:圖3-2 溫度測量電路3.3濕度測量電路濕度測量用的是hs1101電容式器件,他與ne556組成一方波發(fā)生電路,濕度改變對應(yīng)頻率的變化,用單片機采集頻率值進行轉(zhuǎn)化得出濕度值,具體的濕度測量電路如圖3-3所示:圖3-3 濕度測量電路3.4數(shù)碼管顯示電路八位數(shù)碼管采用動態(tài)顯示方式,動態(tài)顯示可節(jié)省端口,方便連接,由于每個數(shù)碼管處于輪流導(dǎo)通的狀態(tài),因此,
27、每次只有一個數(shù)碼管點亮,比靜態(tài)數(shù)碼管可省電。數(shù)碼管顯示電路如圖3-4所示:圖3-4 數(shù)碼管顯示電路第四章 軟件設(shè)計4.1主程序流程圖系統(tǒng)主程序流程圖如圖4-1所示:初始化單片機開始初始化ds18b20初始化hs1101初始化led讀取溫度數(shù)據(jù)讀取濕度數(shù)據(jù)顯示返回圖4-1 系統(tǒng)主程序流程圖4.2按鍵掃描子程序流程圖按鍵掃描子程序流程圖如圖4-2所示:key1鍵按下下key2鍵按下檢測到溫度在正常范圍檢測到溫度不在正常范圍異常指示燈工作蜂鳴器報警設(shè)定溫度值加1設(shè)定溫度值減1正常工作指示燈工作nnnnyyyy圖4-2 按鍵掃描子程序流程圖4.3溫度程序流程圖溫度報警程序流程圖如圖4-2所示10:開始
28、總線復(fù)位跳過rom所有ds18b20開始溫度轉(zhuǎn)換延時1秒設(shè)置匹配rom發(fā)送rom編號開始溫度轉(zhuǎn)換是否超限制溫度? y 所有讀取完畢 ? n顯示溫度報警 n y 圖4-2 溫度報警流程圖溫度顯示模塊程序流程圖如圖4-3所示11:檢測ds18b20存在?ny讀取溫度數(shù)據(jù)發(fā)送ds18b20編碼ds18b20復(fù)位i=1,等待溫度轉(zhuǎn)換發(fā)送跳過rom指令讀ds18b20的序列號初始化ds18b20開始圖4-3 溫度顯示程序流程圖4.4濕度程序流程圖濕度測量部分程序流程圖如圖4-4所示12:濕度處理函數(shù)yn函數(shù)返回重新設(shè)置定時器,計數(shù)從頭來過,等待3s后下一次結(jié)果對計數(shù)值求算法得出濕度值,保存,以便顯示調(diào)用
29、讀取定時器計數(shù)值是否中斷60次,即3s?定時器設(shè)置50ms定時,啟動定時器中斷定時器0、1初始化圖4-4 濕度測量部分程序流程圖參考文獻1梁中明. 基于ds18b20與虛擬i(2)c總線的數(shù)字溫度測量裝置設(shè)計j.湖北 電子報, 2006 2張世英,劉萬瑩,李仁兵. 基于at89s52單片機的溫濕度監(jiān)控系統(tǒng)設(shè)計a. 中南六省(區(qū))自動化學(xué)會第24屆學(xué)術(shù)年會會議論文集c, 20063劉迎春傳感器原理設(shè)計與應(yīng)用m,北京:國防科技大學(xué)出版社,2005:205-2074余成波,胡新宇,趙勇. 傳感器與自動檢測技術(shù)m .北京:高等教育出版社,20065 新型單片機at89c2051及其應(yīng)用舉例j 1996
30、年 04期6金杰. ds18b20實現(xiàn)高精度溫度測量j. 鄭州電子報, 2005, (2005-02-27)7 吳興慧,王彩君.傳感器與信號處理m.北京:電子工業(yè)出版社,19988蘇家健,曹柏榮,汪志峰. 單片機原理及應(yīng)用技術(shù)m .北京:高等教育出版社,20069胡漢才單片機原理及接口技術(shù)m,北京:清華大學(xué)出版社,1996.710黃堅.自動控制原理及其應(yīng)用m,北京:高等教育出版社,200411馬西秦.自動檢測技術(shù)m,北京:機械工業(yè)出版社,200012馬忠梅等單片機的c語言應(yīng)用程序設(shè)計m,北京:北京航空航天大學(xué)出版社,2003.11附錄1:程序清單 /*/#include reg52.h#inc
31、lude intrins.h /_nop_();延時函數(shù)用#define disdata p1 /段碼輸出口#define uchar unsigned char#define uint unsigned intunsigned int s,g,th,rs;unsigned char b1,b2,b3;/定義數(shù)的各位數(shù),分別為百,十,個位uint number;unsigned char num=0;sbit dq=p20; /溫度輸入口sbit din=p17; /led小數(shù)點控制sbit led1=p25; sbit led2=p27; sbit beep=p21; sbit key1=p
32、22;sbit key2=p23;sbit s1=p00;sbit s2=p01;sbit s3=p02;sbit s4=p03;sbit s5=p04;sbit s6=p05;sbit s7=p06;sbit s8=p07;uint h,t; uint temp;/*溫度小數(shù)部分用查表法*/uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09; /uchar code dis_7 =0 x3f,0 x06,0 x5b,
33、0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共陽led段碼表 0 1 2 3 4 5 6 7 8 9 uchar data temp_data2=0 x00,0 x00; /讀出溫度暫放uchar data display4=0 x00,0 x00,0 x00,0 x00; /顯示單元數(shù)據(jù),共3個數(shù)據(jù)和一個運算暫用 /*11us延時函數(shù)*/void del10ms()uint a,b;for(a=40;a!=0;a-)for(b=248;b!=0;b-);void delay(uint t) for (;t0;t-);/*/void timer0()i
34、nterrupt 1th0=0 x3c;tl0=0 xb0;/定時50msnum+;/記到20就直接停止/*/void scankey()if ( key1=0) del10ms();if(key1=0)th+; if (key2=0)del10ms();if(key2=0)th-;t=display2*10+display1;if (th-3)t(th+3) led1=0; led2=1; beep=1;if(tth+3) beep=0; led1=1; led2=0;/*顯示掃描函數(shù)*/scan() s=th/10; g=th%10; s8=1;s7=1;s6=1;s5=0;s4=1;s3
35、=1;s2=1;s1=1; disdata=dis_7display2; delay(200); disdata=0 x00; s8=1;s7=1;s6=0;s5=1;s4=1;s3=1;s2=1;s1=1; disdata=dis_7display1; din=1; delay(200); disdata=0 x00; s8=1;s7=0;s6=1;s5=1;s4=1;s3=1;s2=1;s1=1; disdata=dis_7display0; delay(200); disdata=0 x00; s8=0;s7=1;s6=1;s5=1;s4=1;s3=1;s2=1;s1=1; disdat
36、a=dis_7s; delay(200); disdata=0 x00; s8=1;s7=1;s6=1;s5=1;s4=1;s3=1;s2=1;s1=0; disdata=dis_7g; delay(200); disdata=0 x00; s8=1;s7=1;s6=1;s5=1;s4=1;s3=1;s2=0;s1=1; disdata=dis_7b1; delay(200); disdata=0 x00; s8=1;s7=1;s6=1;s5=1;s4=1;s3=0;s2=1;s1=1; disdata=dis_7b2; din=1; delay(200); disdata=0 x00; s8
37、=1;s7=1;s6=1;s5=1;s4=0;s3=1;s2=1;s1=1; disdata=dis_7b3; delay(200); disdata=0 x00;/*ds18b20復(fù)位函數(shù)*/ow_reset(void)char presence=1;while(presence) while(presence)dq=1;_nop_();_nop_();/從高拉倒低dq=0; delay(50); /550 usdq=1; delay(6); /66 uspresence=dq; /presence=0 復(fù)位成功,繼續(xù)下一步 delay(45); /延時500 uspresence=dq;
38、dq=1; /拉高電平/*ds18b20寫命令函數(shù)*/向1-wire 總線上寫1個字節(jié)void write_byte(uchar val) uchar i; for(i=8;i0;i-) dq=1;_nop_();_nop_(); /從高拉倒低 dq=0;_nop_();_nop_();_nop_();_nop_(); /5 us dq=val&0 x01; /最低位移出 delay(6); /66 us val=val/2; /右移1位 dq=1; delay(1);/*ds18b20讀1字節(jié)函數(shù)*/從總線上取1個字節(jié)uchar read_byte(void)uchar i;uchar value=0;for(i=8;i0;i-) dq=1;_nop_();_nop_(); value
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位之間拆借資金合同范本
- 合伙合同和投資合同范例
- 出售渣土合同范本
- 廠房平地改造合同范例
- 合同范本郵件軟件
- 合同范本樣本
- 代理區(qū)域加盟合同范本
- 原料抵債合同范本
- 合作合同范本里
- 北京聘用合同范本
- 上市公司組織架構(gòu)策略
- extreme-sports 極限運動 英文 ppt
- 國際注冊建造師與項目管理師雙資格認證
- 面癱護理查房
- 財政部金融企業(yè)不良資產(chǎn)批量轉(zhuǎn)讓管理辦法(財金[2012]6號)
- 精品資料(2021-2022年收藏)建筑立面裝飾設(shè)計技術(shù)導(dǎo)則
- 倉庫管理警示標語
- ISO9001質(zhì)量管理體系目錄結(jié)構(gòu)
- 5米對數(shù)視力表及E尺寸標準A4
- 十三五全國眼健康規(guī)劃(2016-2020年)終期自評報告
- “十四五”交通運輸發(fā)展規(guī)劃思路
評論
0/150
提交評論