不同溫濕度超聲電機(jī)分辨率_第1頁(yè)
不同溫濕度超聲電機(jī)分辨率_第2頁(yè)
不同溫濕度超聲電機(jī)分辨率_第3頁(yè)
不同溫濕度超聲電機(jī)分辨率_第4頁(yè)
不同溫濕度超聲電機(jī)分辨率_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章 溫度與濕度控制系統(tǒng)設(shè)計(jì)3.1系統(tǒng)總體方案圖32 系統(tǒng)總體方案圖該設(shè)計(jì)系統(tǒng)有以下幾項(xiàng)主要功能:采集溫濕度參數(shù)、處理信號(hào)與顯示、存儲(chǔ)數(shù)據(jù)、控制環(huán)境的溫濕度。該系統(tǒng)不僅要會(huì)獨(dú)立地處理數(shù)據(jù),還需要能控制外電路,因此,我們得選用結(jié)構(gòu)簡(jiǎn)單、處理能力強(qiáng)并能可靠工作的CPU作處理器。可以達(dá)到該要求的芯片甚多,例如:人們?cè)谏钪袕V泛應(yīng)用的單片機(jī)就可以。該系統(tǒng)是用單片機(jī)AT89S52進(jìn)行控制,上圖所示即為其總體的設(shè)計(jì)方案,從此圖可看出系統(tǒng)包括以下幾個(gè)主要部分:主控單片機(jī)、四個(gè)工作系統(tǒng)(加熱、加濕、冷卻、除濕)以及傳感器模塊等。3.2系統(tǒng)的功能及指標(biāo) 這個(gè)系統(tǒng)主要是對(duì)超聲電機(jī)的工作環(huán)境進(jìn)行溫濕度控制,要求能

2、夠進(jìn)行獨(dú)立工作,并在顯示屏上實(shí)時(shí)顯示溫濕度測(cè)量值,當(dāng)所測(cè)得的溫濕度不等于設(shè)定值的候,系統(tǒng)就會(huì)對(duì)環(huán)境起控制作用。 系統(tǒng)的具體技術(shù)指標(biāo)如下: (1)溫度測(cè)量的誤差:5; (2)測(cè)溫的范圍:+25+95; (3)濕度測(cè)量的誤差:2%RH; (4)測(cè)濕的范圍:20%95%RH; 3.3實(shí)驗(yàn)箱體的設(shè)計(jì)3.4.1簡(jiǎn)易實(shí)驗(yàn)箱體設(shè)計(jì)實(shí)驗(yàn)箱(圖33)體是薄鋼板做的400x300x300mm的長(zhǎng)方體,箱體厚20mm,在箱體外層有保溫材料層,厚度100mm,采用耐高溫硬質(zhì)聚氨酯發(fā)泡+超細(xì)玻璃纖維棉,保溫效果很好。實(shí)驗(yàn)箱的大門(mén)上安裝觀察窗,其可視尺寸200x140mm(寬x高),安裝在大門(mén)的中央,觀察窗用中空玻璃,其

3、有鍍膜,且耐熱防霜,并在觀察窗外側(cè)設(shè)1支節(jié)能照明燈,方便觀察。電線入口一個(gè),用于各硬件與單片機(jī)等的連接,以實(shí)現(xiàn)控制。兩個(gè)風(fēng)口,相互對(duì)應(yīng),其中安裝排氣扇并帶有封閉窗,可以達(dá)到給箱體加濕、通風(fēng)以及封閉。左側(cè)風(fēng)口內(nèi)側(cè)有一可加熱水杯,用于加濕控制。箱體底部是均勻分布的4個(gè)加熱元器件,用于給系統(tǒng)加熱,并通過(guò)導(dǎo)熱板,實(shí)現(xiàn)對(duì)超聲電機(jī)周?chē)h(huán)境溫度的改變。在箱體里面,有兩支橫向的水管,是用于冷卻環(huán)境的,通過(guò)控制,將冷水從一端輸入,從另一端輸出,并回到水箱,實(shí)現(xiàn)循環(huán)控制。(注:其中,冷卻用的水,需要在水箱里放置冰塊,以降低水的溫度,使其小于常溫,從而達(dá)到降溫以及除濕的效果)箱體的內(nèi)部分布平面圖通過(guò)圖34,可以很清

4、楚的看出,箱體內(nèi)部元器件的分布情況,特別是加熱元件的均勻分布。這樣的分布也有利于進(jìn)行安裝和維修,對(duì)使用者極為有利。3.5 系統(tǒng)溫濕度的控制3.5.1控制方式的選擇1、加熱方式:采用鎳鉻合金電熱絲來(lái)加熱,安裝的時(shí)候,要求將其均勻分布在試驗(yàn)箱的內(nèi)部以保證均勻受熱,這樣不會(huì)影響到后面對(duì)溫度的控制,其執(zhí)行的元件用固態(tài)繼電器;GYQ型空氣加熱管Q1,Q2,Q3,其加熱的介質(zhì)是空氣,一般只安裝一個(gè),不需要規(guī)律分布。綜合以上兩種方式的介紹,再考慮到本系統(tǒng)的設(shè)計(jì),最后決定選擇第一種加熱方式更好,因?yàn)槠浼訜岣泳鶆颍欣麑?shí)驗(yàn)進(jìn)行。2、加濕方式:應(yīng)用小電極加濕器,安裝在風(fēng)機(jī)盤(pán)管的側(cè)面或者將其安裝在風(fēng)道側(cè)面,把蒸汽

5、噴嘴安裝在風(fēng)道壁上,通過(guò)控制直接實(shí)現(xiàn)加濕;蒸汽加濕(電熱式蒸汽),通過(guò)控制水杯底的加熱器,是水杯中的水變成蒸汽,再有風(fēng)扇把蒸汽吹入實(shí)驗(yàn)箱,實(shí)現(xiàn)加濕。杯子中的水用蒸餾水,并需要手動(dòng)補(bǔ)水。綜合考慮以上介紹,由于,本設(shè)計(jì)并沒(méi)有風(fēng)道口,針對(duì)的是箱體,所以方式2更適合。3、冷卻方式:冷卻的方法有風(fēng)冷、水冷以及機(jī)械壓縮制冷等,而通過(guò)仔細(xì)地思考,得出本實(shí)驗(yàn)選擇通過(guò)循環(huán)冷水制冷來(lái)實(shí)現(xiàn)降溫,這是屬于吸收式的,當(dāng)然,還有融解式、升華式、氣體膨脹式以及真空式等等。然而,本實(shí)驗(yàn)希望用循環(huán)冷水來(lái)實(shí)現(xiàn)降溫,這樣不僅環(huán)保,而且方便,也有利實(shí)驗(yàn)的進(jìn)行。 4、除濕方式:冷卻除濕,這種辦法是通過(guò)使周?chē)諝饫鋮s,水分凝結(jié)析出,從而

6、降低濕度;利用干燥器來(lái)除濕,即從試驗(yàn)箱里抽出空氣,然后,充入干燥的空氣,與此同時(shí),把剛才抽出來(lái)的濕潤(rùn)氣體通到有循環(huán)作用地干燥器里進(jìn)行干燥,而后再送入試驗(yàn)箱,從而實(shí)現(xiàn)降低濕度。綜合,以上的方法,本試驗(yàn)應(yīng)用更為簡(jiǎn)單方便的方式1,通過(guò)兩支冷卻的水管,來(lái)是箱子里的蒸汽凝結(jié),從而達(dá)到降低濕度的目的。3.5.2溫度控制整體控制的過(guò)程:首先,工作箱內(nèi)的溫度是利用加熱器通電來(lái)產(chǎn)生熱量,再將熱量通過(guò)導(dǎo)熱板,從而使超聲電機(jī)周?chē)_(dá)到升溫的效果,然而,當(dāng)測(cè)試完成了,需要降溫的時(shí)候,需要控制電磁閥打開(kāi),通過(guò)循環(huán)冷卻水進(jìn)入冷卻管內(nèi),使箱內(nèi)循環(huán)空氣與其接觸,將熱量帶走,使得工作箱降溫??刂七@一過(guò)程,需要配合各部分電路的設(shè)計(jì)

7、,不過(guò),需要注意的是,系統(tǒng)的溫度應(yīng)控制在室溫95度之間,在此期間,去測(cè)量電機(jī)的分辨率。3.5.3濕度控制整體控制的過(guò)程:首先,加熱水杯中的加熱器通電后,產(chǎn)生水蒸氣,再經(jīng)過(guò)風(fēng)扇的作用,將潮濕的空氣迅速帶入到工作箱內(nèi),從而提高工作箱內(nèi)的相對(duì)濕度,實(shí)現(xiàn)改變超聲電機(jī)周?chē)鷿穸鹊哪康模?dāng)測(cè)試完成后,系統(tǒng)要求降低濕度,可通過(guò)控制,接通電磁閥,使循環(huán)冷卻水進(jìn)入冷卻管內(nèi),使得箱內(nèi)循環(huán)空氣與其接觸,水分析出,從而降低環(huán)境的濕度??刂七@一過(guò)程,也需要配合各部分電路的設(shè)計(jì),同時(shí),需要控制濕度不能超過(guò)2095相對(duì)濕度,從而在此期間進(jìn)行測(cè)試超聲電機(jī)的分辨率。3.6硬件的選擇3.6.1溫度傳感器的選擇由系統(tǒng)的技術(shù)指標(biāo)可得,

8、本設(shè)計(jì)的溫度傳感器可選用DS18B20。(1)關(guān)于DS18B20: 本設(shè)計(jì)溫度傳感器選擇的芯片是 DS18B20,它不僅有高集成、超小型、高精度、數(shù)字化的特點(diǎn),而且價(jià)格適中,能夠簡(jiǎn)化電路設(shè)計(jì),在很多實(shí)際應(yīng)用中也是最佳選擇。該種傳感器,可把所測(cè)得的溫度轉(zhuǎn)成串行數(shù)字信號(hào)后供單片機(jī)使用,如果想要實(shí)現(xiàn) 12 位的溫度讀數(shù),就可以通過(guò)簡(jiǎn)單的編程獲得,并且這時(shí)兩個(gè)或者兩個(gè)以上的 DS18B20 可以并接到地址線上,開(kāi)始與單片機(jī)實(shí)現(xiàn)通信。所選的傳感器在某些特性方面是與其它的不同,如:接口方式是單總線接口,想要與單片機(jī)進(jìn)行連接,一條接口線就滿(mǎn)足 DS18B20 的需要,當(dāng)連接后,它們是雙向通訊的,溫度的傳輸方

9、式采用數(shù)字化并可實(shí)現(xiàn)一線總線,這使系統(tǒng)在很大程度上提高了抗干擾能力;測(cè)量結(jié)果是串行傳送的,并且以 9 位數(shù)字量方式傳送;用戶(hù)還可以對(duì)報(bào)警溫度進(jìn)行設(shè)置、分辨率設(shè)定,這些都會(huì)存儲(chǔ)于EEPROM里,掉電也不會(huì)消失;可以由數(shù)據(jù)線供電等,所以其滿(mǎn)足設(shè)計(jì)要求。它是采用 3 腳TO-92 或 8 腳 SO 封裝,如圖 34 所示: (2)DS18B20傳感器的一些相關(guān)要求及參數(shù)如下:它是數(shù)字式的IC輸出型,感應(yīng)精度為 0.5C ,能夠檢測(cè)的溫度范圍為-55C 到 +125C,分辨率達(dá)到12bit;而它的電源電流為1mA,電壓為3V5.5V,輸出電流則是4mA;針腳有3個(gè),采用通孔安裝。濕度傳感器的選擇根據(jù)系

10、統(tǒng)的技術(shù)指標(biāo)及控制要求,本設(shè)計(jì)選用HM1500LF濕度傳感器來(lái)配合完成控制。(1)簡(jiǎn)單地介紹:該產(chǎn)品所屬分類(lèi)為溫濕度模塊/探 頭,它是電容式線性電壓輸出濕度模塊, 圖36.2 HM1500LF其可靠穩(wěn)定,且基本不依賴(lài)溫度。它是在HS1101LF的基礎(chǔ)上制成的防護(hù)棒形式封裝的傳感器,擁有嚴(yán)密的封裝。該傳感器的量程寬,在工作溫度范圍內(nèi)(4060),可測(cè)得0100%RH的相對(duì)濕度,而當(dāng)所測(cè)濕度為1095%RH,其精度達(dá)3%RH。不僅如此,它還能防灰塵,抗靜電以及能有效抵抗各種具有腐蝕性氣體物質(zhì),且在長(zhǎng)時(shí)間處于飽和狀態(tài)后能快速脫濕,反應(yīng)的時(shí)間快。(2)濕度的計(jì)算公式:線性方程:Vout=25.68RH

11、+1079(With Vout in mV and RH in %)多項(xiàng)式方程:Vout=9E-4RH3-1.3E-1RH2+30.815RH+1030RH=-1.91E-9Vout3+1.33E-5Vout(With Vout in mV and RH in %)注:所有的Vout為mV,RH為%RH,Ta為。(4)HM1500LF結(jié)構(gòu)圖與引腳定義:(如下圖36.3) 圖36.33.6.3加熱元器件的選擇選用鎳鉻合金的電加熱式加熱器(電熱絲),適用于全面加熱,安裝時(shí),需要均勻分布。通過(guò)電路來(lái)控制其工作情況,從而改變系統(tǒng)溫度。3.6.4繼電器接觸器的選擇繼電器接觸器只需要選擇能夠滿(mǎn)足試驗(yàn)要求的

12、即可,具體選用下圖3.8所示: 圖36 交流接觸器 CJX2-0901 圖37 低壓繼電器 LY2N-D2-J DC24單總線A/D轉(zhuǎn)換器DS2450該轉(zhuǎn)換器有四個(gè)通道,它是單總線A/D轉(zhuǎn)換器芯片,可以對(duì)其電壓及精度參數(shù)進(jìn)行修改,且每個(gè)通道都可以存儲(chǔ)所設(shè)置的參數(shù)。在不同方式下,通信速率相差大,而且片內(nèi)能夠自行檢測(cè)通信的正確性。它是采用8腳的SOIC封裝,體積較小,不管是單5V電源還是寄生電源的方式供電都能工作,且功耗很低。它能夠?qū)崿F(xiàn)多個(gè)并聯(lián),且只要一根端口線就能與CPU通信,基本不占用端口,能夠省出引出腳并簡(jiǎn)化邏輯電路。.1 DS2450的引腳排列及典型連接1轉(zhuǎn)換器的引腳功能下圖是DS2450

13、的8個(gè)管腳及其功能:2.典型接法下圖為單片機(jī)與該轉(zhuǎn)換器的連接圖,其中DATA端接單片機(jī)的P10,此電路是外接電源供電,即用5V電源接在VCC端。該圖中A、B接上拉電阻,用來(lái)作D的報(bào)警信號(hào),并只對(duì)D進(jìn)行模擬信號(hào)轉(zhuǎn)換。3.6.6 AT89S52單片機(jī)(1)內(nèi)部構(gòu)造及最小系統(tǒng)該單片機(jī)需要能夠?qū)崿F(xiàn)溫濕度控制,其功耗低且控制器性能高,有8K的存儲(chǔ)器。其包含:IO口共32位、RAM256個(gè)字節(jié)、時(shí)鐘電路、數(shù)據(jù)指針(2個(gè))、定時(shí)器與計(jì)數(shù)器(3個(gè)16位的)等。其結(jié)構(gòu)與最小系統(tǒng)分別如下圖所示:圖36.6a 36.6b AT89S52最小系統(tǒng)3.7硬件總圖及電路設(shè)計(jì)系統(tǒng)硬件總體圖及電路圖37.1a 在單片機(jī)AT8

14、9S52的引腳上接上溫濕度傳感器、電源電路、復(fù)位電路、晶振電路、LCD電路及控制溫濕度的各電路等,其硬件總體情況如上圖。37.1b系統(tǒng)總體電路圖溫度傳感器的電路連接傳感器選DS218B20,其接口方式是單總線的,只要一條接口線就能滿(mǎn)足與單片機(jī)連接,在與單片機(jī)連接后,它們之間的通訊是雙向的,溫度通過(guò)DQ傳輸,因?yàn)槭菃慰偩€,所以不易受到干擾。其電路圖如下:(圖37.2)接于單片機(jī)的P1.0口。 圖37.2濕度傳感器的電路連接 圖37.3該濕度傳感器選用濕敏電容,其輸出的是線性電壓,然后進(jìn)行函數(shù)關(guān)系的變換取得數(shù)據(jù)。將它接到DS2450的模擬電壓輸入的D道,并用+5 V電源供電。通過(guò)利用該電路,檢測(cè)到

15、的濕度信號(hào)可以立即轉(zhuǎn)為數(shù)字信號(hào)供單片機(jī)讀取,圖37.3即為其接線圖。加熱部分的控制電路連接電熱器圖37.4首先,在單片機(jī)的P2.3接口上接加熱電路,再由溫度傳感器檢測(cè)到信號(hào),傳給單片機(jī),然后由單片機(jī)控制加熱是否進(jìn)行,即接通電路,使電熱絲發(fā)熱,從而提高溫度。這部分是用繼電器來(lái)驅(qū)動(dòng)的,有足夠的輸出功率。冷卻部分的控制電路連接抽水電機(jī)圖37.5將冷卻部分的電路接到單片機(jī)的P2.2接口,根據(jù)溫度傳感器檢測(cè)到的信號(hào)傳給單片機(jī),然后由單片機(jī)控制冷卻是否進(jìn)行,即接通電路,使電機(jī)工作,將冷卻水通過(guò)水管,從而實(shí)現(xiàn)降低溫度的要求。這部分也利用繼電器來(lái)驅(qū)動(dòng)的。加濕部分的控制電路連接加熱水杯圖37.6將加濕部分的電路

16、接到單片機(jī)的P2.0接口,根據(jù)濕度傳感器模塊檢測(cè)到的信號(hào)傳給單片機(jī),然后由單片機(jī)控制加濕是否進(jìn)行,即接通電路,使加熱水杯加熱,從而增加環(huán)境的濕度。驅(qū)動(dòng)部分同樣是用繼電器。連接風(fēng)扇電機(jī)除濕部分的控制電路圖37.7將除濕部分的電路接到單片機(jī)的P2.1接口,根據(jù)濕度傳感器模塊檢測(cè)到的信號(hào)傳給單片機(jī),然后由單片機(jī)控制除濕是否進(jìn)行嗎,即接通電路,使電機(jī)工作,帶動(dòng)排風(fēng)扇轉(zhuǎn)動(dòng),從而使環(huán)境的濕度降低。同樣,也為繼電器來(lái)驅(qū)動(dòng)的。數(shù)碼管的電路圖37.8a數(shù)碼管與單片機(jī)的連接電路該設(shè)計(jì)是通過(guò)數(shù)碼管來(lái)顯示溫濕度的,以上是其連接電路。從中可以清楚地看出,其是與單片機(jī)的P0口連接的。3.8軟件的選擇與設(shè)計(jì)程序編程與燒寫(xiě)軟

17、件1、程序編程Keil C51本設(shè)計(jì)的程序部分是用C語(yǔ)言編程的,在這里應(yīng)用了Keil軟件來(lái)輔助完成。該軟件是C語(yǔ)言系統(tǒng)的,它的功能更強(qiáng),出現(xiàn)問(wèn)題,也較容易維護(hù),而且可讀性好,結(jié)構(gòu)方面也更有優(yōu)勢(shì),更利于學(xué)習(xí)和應(yīng)用。Keil軟件含有編譯、調(diào)試、連接及管理等功能。下面是它的操作框。(如圖38.1a)程序的具體編程及輸入的方法與步驟會(huì)在第四章中與測(cè)試實(shí)驗(yàn)部分一起詳細(xì)介紹,它主要是通過(guò)Keil軟件來(lái)實(shí)現(xiàn)的,其中包括編寫(xiě)程序、程序調(diào)試、外圍設(shè)備查看以及修改等操作。 圖38.1a2、程序燒寫(xiě)USB ASP該軟件能下載程序到單片機(jī),并能實(shí)現(xiàn)穩(wěn)定快速下載,這樣更節(jié)省成本,有利于剛?cè)胧值耐瑢W(xué)使用。不管所用的單片機(jī)

18、是AT89S51(AT89S52),還是AVR系列的,它都能實(shí)現(xiàn)快速穩(wěn)定地下載。值得注意的是,要將燒錄文件的格式改為HEX或BIN。運(yùn)行窗口如圖38.1b。用keil編寫(xiě)完的程序需要通過(guò)USB ASP軟件來(lái)燒錄到單片機(jī)里面。而在使用燒錄軟件之前,首先要安裝USB-Driver驅(qū)動(dòng)程序,并設(shè)置相應(yīng)的端口(com 口)。這樣之后,打開(kāi)AT-ISP燒錄軟件,就可以進(jìn)行燒錄及下載了。不過(guò)具體的方法步驟會(huì)在第四章中與實(shí)驗(yàn)部分一起詳細(xì)介紹,其中包括:?jiǎn)纹瑱C(jī)選型、打開(kāi)要燒錄的文件、選擇串口與最高波特率、下載等操作,這樣之后,程序就錄入到要用于實(shí)驗(yàn)的單片機(jī)里了,即可進(jìn)行實(shí)驗(yàn)步驟。圖38.1b3.8.2主程序流

19、程 該控制系統(tǒng)的主程序流程如下圖,先是把程序啟動(dòng)了,再做系統(tǒng)內(nèi)存清理并進(jìn)行初始化,然后采集溫度與濕度,并經(jīng)A/D 轉(zhuǎn)換,之后傳到單片機(jī)上,以十進(jìn)制的方式顯示出來(lái);然后,系統(tǒng)通過(guò)調(diào)溫度與濕度控制子程序,對(duì)溫度以及濕度進(jìn)行控制,當(dāng)達(dá)到所需要求時(shí),就重新刷新。圖38.2 主程序流程框圖3.8.3子程序流程 溫濕度控制的子程序流程如下圖。子程序先是對(duì)鍵盤(pán)進(jìn)行掃描,看有沒(méi)有更改設(shè)定值的信號(hào),若有就讀入設(shè)定值;而后采集實(shí)際值,并進(jìn)行比較,如果實(shí)際值不等于設(shè)定值,再轉(zhuǎn)判斷其是否小于設(shè)定值,若小于,則啟動(dòng)加熱絲或者加熱水杯,若大于,則啟動(dòng)排風(fēng)扇電機(jī)或者冷卻水電機(jī),如此對(duì)超聲電機(jī)的工作環(huán)境的溫濕度進(jìn)行調(diào)節(jié),使其

20、達(dá)到設(shè)定值,最后返回主程序。用戶(hù)可根據(jù)實(shí)際的需求對(duì)溫度和濕度進(jìn)行控制。 圖38.3 子程序框圖3.8.4程序設(shè)計(jì)根據(jù)上節(jié)所表現(xiàn)出來(lái)的程序框圖,對(duì)應(yīng)地寫(xiě)出程序,并錄入到Keil軟件,進(jìn)行編譯,最后通過(guò)USB ASP軟件及相應(yīng)的驅(qū)動(dòng)燒錄到單片機(jī)。其程序主要有:主函數(shù)、初始化(包括定時(shí)器及環(huán)境狀態(tài)結(jié)構(gòu))、溫濕度控制、數(shù)字轉(zhuǎn)化、顯示、溫濕度設(shè)置以及傳感器的工作等,以下主要介紹其中的控制溫濕度部分,其他的程序?qū)?huì)在附錄中體現(xiàn)。(詳見(jiàn)附錄)系統(tǒng)部分程序:#include includes.hSystemStatus MyStatus;/聲明一個(gè)結(jié)構(gòu)體,記錄系統(tǒng)狀態(tài)unsigned char code ta

21、ble15=Temp:;unsigned char code table25= Hum:;char string4;unsigned char SetMaxTemp = 60 ; /設(shè)置到達(dá)多少度時(shí)停止加熱unsigned char SetMinTemp = 25 ; /設(shè)置到達(dá)多少度是停止降溫unsigned char SetMaxHum = 60 ;/設(shè)置濕度到達(dá)多少時(shí)停止加濕unsigned char SetMinHum = 20 ;/設(shè)置濕度到達(dá)多少時(shí)停止除濕/*定時(shí)器0初始化*/void Time0Init()TMOD=0x01; /使用定時(shí)器T0/460830.09微秒TH0=(6

22、5536-46083)/256;/定時(shí)器高八位賦初值TL0=(65536-46083)%256;/定時(shí)器低八位賦初值TR0=1;/啟動(dòng)定時(shí)器0ET0=1; /允許T0中斷EA=1; /開(kāi)中斷總允許/*環(huán)境狀態(tài)結(jié)構(gòu)體初始化*/void StatusInit()MyStatus.SetStatus = SetMaxHumStatus;/先設(shè)置濕度MyStatus.KeyStatus = KeyStatusNo;/按鍵狀態(tài):沒(méi)有按鍵按下MyStatus.HeatStatus = HeatStatusOFF;/加熱器的狀態(tài)關(guān),(控制溫度)MyStatus.MaxTemp = SetMaxTemp;My

23、Status.MinTemp = SetMinTemp;MyStatus.Hum = 0;/當(dāng)前濕度MyStatus.MaxHum = SetMaxHum;MyStatus.MinHum = SetMinHum;MyStatus.HumHeatStatus = HumHeatStatusOFF;/電熱水杯狀態(tài)設(shè)為關(guān)MyStatus.HumMotorStatus= HumMotorStatusOFF;/控制濕度的電機(jī)狀態(tài)為關(guān)MyStatus.Temperature = 0;/當(dāng)前溫度MyStatus.WaterMotorStatus = WaterMotorStatusOFF;/水循環(huán)(降溫用)

24、關(guān)void SystemInit()StatusInit();Time0Init();DS18B20_startup(); /DS18B20開(kāi)始轉(zhuǎn)換set_2450(); /由于用的是VCC供電,只有給地址0x1c寫(xiě)入0x40才能工作stature_2450(); /設(shè)置各個(gè)輸入通道的功能LcdInit();/*控制溫濕度在設(shè)定范圍內(nèi)*/void SysCon()if(MyStatus.Hum = SetMaxHum )HumMotor = 0;/關(guān)濕度控制電機(jī)HumHeat = 0;/關(guān)斷加熱水杯MyStatus.HumHeatStatus = HumHeatStatusOFF;/熱水杯狀態(tài)

25、更新MyStatus.HumMotorStatus= HumMotorStatusOFF;if(MyStatus.Hum = SetMaxTemp)HeatCon = 0;/關(guān)加熱器WaterMotor = 1;/開(kāi)水循環(huán)MyStatus.HeatStatus = HeatStatusOFF;MyStatus.WaterMotorStatus = WaterMotorStatusON;if(MyStatus.Temperature = SetMinTemp)HeatCon = 1;/關(guān)加熱器WaterMotor = 0;/開(kāi)水循環(huán)MyStatus.HeatStatus = HeatStatus

26、ON;MyStatus.WaterMotorStatus = WaterMotorStatusOFF;/*將數(shù)字轉(zhuǎn)化成字符串*/void itoa (int n,char s)int i,sign;if(sign=n)0);/刪除該數(shù)字if(sign=0;j-)/生成的數(shù)字是逆序的,所以要逆序輸出 / printf(%c,sj);/*顯示濕度*/void DisplayHum()uchar i;write_command(0x80);/設(shè)置顯示位置(第一行開(kāi)頭)for(i=0;i5;i+)write_date(table1i);/顯示字符itoa(int)MyStatus.Hum,string

27、);for(i=0;i0;i+)write_date(table2i);/ 顯示字符itoa(MyStatus.Temperature,string);for(i=5;i0;i+)write_date(stringi);/*設(shè)置濕度和溫度*/void SetTempAndHum()unsigned char TMax,TMin,HMax,HMin;uchar i;TMax = SetMaxTemp;TMin = SetMinTemp;HMax = SetMaxHum;HMin = SetMinHum;while(1)write_command(0x80);/設(shè)置顯示位置(第一行開(kāi)頭)write

28、_date(S);/顯示字符write_date(e);write_date(t);write_date(H);write_date(:);itoa(MyStatus.Hum,string);for(i=0;i4;i+)write_date(stringi);write_command(0xc0);/ 設(shè)置顯示位置(第二行開(kāi)頭)write_date(S);/顯示字符write_date(e);write_date(t);write_date(T);/ 顯示字符write_date(:);itoa(MyStatus.Temperature,string);for(i=0;i5;i+)write_

29、date(stringi);switch(MyStatus.KeyStatus)case KeyStatusLeft: /選擇設(shè)置溫度還是濕度while(MyStatus.KeyStatus = KeyStatusLeft);/等待按鍵釋放switch(MyStatus.SetStatus)case SetMaxHumStatus:MyStatus.SetStatus = SetMinHumStatus;break;case SetMinHumStatus:MyStatus.SetStatus = SetMaxTempStatus;break;case SetMaxTempStatus:MyS

30、tatus.SetStatus = SetMinTempStatus;break;case SetMinTempStatus:MyStatus.SetStatus = SetMinHumStatus;break;break;case KeyStatusUp: /加while(MyStatus.KeyStatus = KeyStatusUp);switch(MyStatus.SetStatus)case SetMaxHumStatus:SetMaxHum +;break;case SetMinHumStatus:SetMinHum +;break;case SetMaxTempStatus:SetMaxTemp+;break;case SetMinTempStatus:SetMinTemp +;break;break;case KeyStatusDown: /減while(MyStatus.KeyStatus = KeyStatusDown);switch(MyStatus.SetStatus)case SetMaxHumStatus:SetMaxHum -;break;case SetMinHumStatus:SetMinHum -;break;case SetMaxTempStatus:SetMaxTemp-;break;c

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論