智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)_第1頁(yè)
智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)_第2頁(yè)
智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)_第3頁(yè)
智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)_第4頁(yè)
智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)設(shè)計(jì)題目:智能電風(fēng)扇控制器設(shè)計(jì)neuq目 錄序言一、 設(shè)計(jì)實(shí)驗(yàn)條件及任務(wù).21.1、設(shè)計(jì)實(shí)驗(yàn)條件1.2、設(shè)計(jì)任務(wù)2二、 小直流電機(jī)調(diào)速控制系統(tǒng)的總體方案設(shè)計(jì).32.1、系統(tǒng)總體設(shè)計(jì).32.2、芯片選擇.32.3、DAC0832芯片的主要性能指標(biāo).32.4、數(shù)字溫度傳感器DS18B20.3三、 系統(tǒng)硬件電路設(shè)計(jì).4 3.1、AT89C52單片機(jī)最小系統(tǒng).5 3.2、DAC0832與AT89C52單片機(jī)接口電路設(shè)計(jì).6 3.3、顯示電路與AT89C52單片機(jī)接口電路設(shè)計(jì).73.4、顯示電路與AT89C52單片機(jī)電路設(shè)計(jì).8四、 系統(tǒng)軟件流程設(shè)計(jì).7五、 調(diào)試與測(cè)試結(jié)果分析.8 5.1

2、、實(shí)驗(yàn)系統(tǒng)連線圖.85.2、程序調(diào)試,.8 5.3、實(shí)驗(yàn)結(jié)果分析.8六、 程序設(shè)計(jì)總結(jié).10七、參考文獻(xiàn). 11附錄.12 1、源程序代碼.12 2、程序原理圖.23序 言傳統(tǒng)電風(fēng)扇不能根據(jù)溫度的變化適時(shí)調(diào)節(jié)風(fēng)力大小,對(duì)于夜間溫差大的地區(qū),人們?cè)谙囊故褂秒婏L(fēng)扇時(shí)可能遇到這樣的問(wèn)題:當(dāng)凌晨降溫的時(shí)候電風(fēng)扇依然在工作,可是人們因?yàn)槭焖鵁o(wú)法察覺(jué),既浪費(fèi)電資源又容易引起感冒,傳統(tǒng)的機(jī)械定時(shí)器雖然能夠控制電風(fēng)扇在工作一定后關(guān)閉,但定時(shí)范圍有限,且無(wú)法對(duì)溫度變化靈活處理。鑒于以上方面的考慮,我們需要設(shè)計(jì)一種智能電風(fēng)扇控制系統(tǒng)來(lái)解決這些問(wèn)題,使家用電器產(chǎn)品趨向于自動(dòng)化、智能化、環(huán)?;腿诵曰沟糜晌C(jī)控

3、制的智能電風(fēng)扇得以出現(xiàn)。本文介紹了一種基于AT89C52單片機(jī)的智能電風(fēng)扇調(diào)速器的設(shè)計(jì),該設(shè)計(jì)主要硬件部分包括AT89C52單片機(jī),溫度傳感器ds18b20,數(shù)模轉(zhuǎn)換DAC0809電路,電機(jī)驅(qū)動(dòng)和數(shù)碼管顯示電路,系統(tǒng)可以實(shí)現(xiàn)手動(dòng)調(diào)速和自動(dòng)調(diào)速兩種模式的切換,在自動(dòng)工作模式下,系統(tǒng)能夠能夠根據(jù)環(huán)境溫度實(shí)現(xiàn)自動(dòng)調(diào)速;可以通過(guò)定時(shí)切換鍵和定時(shí)設(shè)置鍵實(shí)現(xiàn)系統(tǒng)工作定時(shí),使得在用戶需求的定時(shí)時(shí)間到后系統(tǒng)自動(dòng)停止工作。在日常生活中,單片機(jī)得到了越來(lái)越廣泛的應(yīng)用,本系統(tǒng)采用的AT89C52單片機(jī)體積小、重量輕、性價(jià)比高,尤其適合應(yīng)用于小型的自動(dòng)控制系統(tǒng)中。系統(tǒng)電風(fēng)扇起停的自動(dòng)控制,能夠解決夏天人們晚上熟睡時(shí),

4、由于夜里溫度下降而導(dǎo)致受涼,或者從睡夢(mèng)中醒來(lái)親自開(kāi)關(guān)電風(fēng)扇的問(wèn)題,具有重要的現(xiàn)實(shí)意義。一、 設(shè)計(jì)實(shí)驗(yàn)條件及任務(wù)1.1、 設(shè)計(jì)實(shí)驗(yàn)條件單片機(jī)實(shí)驗(yàn)室1.2、 設(shè)計(jì)任務(wù)利用DAC0832芯片進(jìn)行數(shù)/??刂?,輸出的電壓經(jīng)放大后驅(qū)動(dòng)小直流電機(jī)的速度進(jìn)行數(shù)字量調(diào)節(jié),并顯示運(yùn)行狀態(tài)DJ-XX和D/ A輸出的數(shù)字量。鞏固所學(xué)單片知識(shí),熟悉試驗(yàn)箱的相關(guān)功能,熟練掌握Proteus仿真軟件,培養(yǎng)系統(tǒng)設(shè)計(jì)的思路和科研的興趣。實(shí)現(xiàn)功能如下: 系統(tǒng)手動(dòng)模式及自動(dòng)模式工作狀態(tài)切換。 風(fēng)速設(shè)為從高到低9個(gè)檔位,可由用戶通過(guò)鍵盤(pán)手動(dòng)設(shè)定。 定時(shí)控制鍵實(shí)現(xiàn)定時(shí)時(shí)間設(shè)置,可以實(shí)現(xiàn)10小時(shí)的長(zhǎng)定時(shí)。 環(huán)境溫度檢測(cè),并通過(guò)數(shù)碼管顯示

5、,自動(dòng)模式下實(shí)現(xiàn)自動(dòng)轉(zhuǎn)速控制。 當(dāng)溫度每降低1則電風(fēng)扇風(fēng)速自動(dòng)下降一個(gè)檔位,環(huán)境低于21度時(shí),電風(fēng)扇停止工作。 當(dāng)溫度每升高1則電風(fēng)扇風(fēng)速自動(dòng)上升一個(gè)檔位。環(huán)境溫度到30度以上時(shí),系統(tǒng)以最大風(fēng)速工作。 實(shí)現(xiàn)數(shù)碼管友好顯示。二、小直流電機(jī)調(diào)速控制系統(tǒng)的總體設(shè)計(jì)方案2.1、系統(tǒng)硬件總體結(jié)構(gòu)數(shù)字溫度傳感器 電機(jī)驅(qū)動(dòng)及電機(jī)執(zhí)行電路DAC0832AT89C52調(diào)速調(diào)時(shí)S1鍵調(diào)速調(diào)時(shí)S2鍵LED數(shù)碼管顯示模式切換鍵K1定時(shí)功能鍵K2圖2.1系統(tǒng)硬件總體框圖2.2、芯片選擇1、AT89C52芯片:選用該單片機(jī)作為智能電風(fēng)扇控制部件,用來(lái)實(shí)現(xiàn)電風(fēng)扇調(diào)速核心功能。2、74LS245芯片:用來(lái)驅(qū)動(dòng)數(shù)碼管。3、74

6、LS373芯片:鎖存器,用來(lái)鎖存輸出的信號(hào)。4、74LS240芯片:八單線驅(qū)動(dòng)器,緩沖輸出的信號(hào)。5、DAC0832芯片:片選地址是FF80H,AOUT1插孔作為模擬量的輸出。6、8255芯片:可編程并行I/O接口芯片,用以擴(kuò)展單片機(jī)的IO口。7、LED數(shù)碼顯示管:用來(lái)顯示電機(jī)旋轉(zhuǎn)的速度是加速還是減速。8、741:運(yùn)算放大器。9、9014:NPN型三極管。2.3、DAC0832的主要性能指標(biāo) D/A轉(zhuǎn)換的基本原理是應(yīng)用電阻解碼網(wǎng)絡(luò),將位數(shù)字量逐位轉(zhuǎn)換為模擬量并求和,從而實(shí)現(xiàn)將位數(shù)字量轉(zhuǎn)換為相應(yīng)的模擬量。其性能指標(biāo)為:()分辨率:相對(duì)分辨率,越大,分辨率越高()線性度()轉(zhuǎn)換精度()建立時(shí)間()

7、溫度系數(shù)。DAC0832引腳功能圖如圖2.2圖2.2 數(shù)模轉(zhuǎn)換DAC0832引腳功能 1、DI0DI7:8位數(shù)字信號(hào)輸入端; 2、!CS:片選端;ILE: 數(shù)據(jù)鎖存允許控制端,高電平有效; 3、!WR1:輸入寄存器寫(xiě)選通控制端。當(dāng)!CS=0、ILE=1、!WR1=0時(shí),數(shù)據(jù)信號(hào)被鎖存在輸入寄存器中。4、!XFER:數(shù)據(jù)傳送控制 5、!WR2 :DAC寄存器寫(xiě)選通控制端。當(dāng)!XFER=0,!WR2 =0時(shí),輸入寄存器狀態(tài)傳入DAC寄存器中 6、IOUT1:電流輸出1端,輸入數(shù)字量全“1”時(shí),IOUT1最大,輸入數(shù)字量全為“0”時(shí),IOUT1最小。 7、IOUT2:D/A轉(zhuǎn)換器電流輸出2端,IOU

8、T2+IOUT1=常數(shù)。 8、 RFB:外部反饋信號(hào)輸入端, 內(nèi)部已有反饋電阻RFB,根據(jù)需要也可外接反饋電阻。 9、VCC:電源輸入端,可在+5V+15V范圍內(nèi)。 10、DGND:數(shù)字信號(hào)地。 11、AGND:模擬信號(hào)地2.4. 數(shù)字溫度傳感器DS18B20DS18B20“一線總線”數(shù)字化溫度傳感器支持“一線總線”接口,測(cè)量溫度范圍為-55+125,在-10+85范圍內(nèi),精度為0.15?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類(lèi)消費(fèi)電子產(chǎn)品等。DS18B20可以程序設(shè)定912位的分辨率,精度為0.15

9、,溫度采集具有準(zhǔn)確性、實(shí)時(shí)性。DS18B20的管腳排列如下:DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。如圖2.3所示。圖2.3數(shù)字溫度傳感器DS18B20引腳圖DS18B20檢測(cè)的溫度高于一定值時(shí),單片機(jī)引腳輸出高電平,打開(kāi)電風(fēng)扇,當(dāng)溫度低于一定值時(shí),單片機(jī)引腳輸出低電平,控制電風(fēng)扇停止轉(zhuǎn)動(dòng)。在此區(qū)間,每升高一度,風(fēng)扇轉(zhuǎn)速檔位加一,風(fēng)扇轉(zhuǎn)速與檔位的關(guān)系如表2.1所示:表2.1 風(fēng)扇轉(zhuǎn)速與檔位的關(guān)系環(huán)境溫度低于21.021.0-21.922.0-22.923.0-23.924.0-24.9轉(zhuǎn)速檔位01234環(huán)境溫度25.0-25.926.

10、0-26.927.0-27.928.0-28.929.0以上轉(zhuǎn)速檔位56789三、系統(tǒng)硬件電路設(shè)計(jì)3.1、AT89C52單片機(jī)最小系統(tǒng):AT89C52已包含了定時(shí)器、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器等硬件,其硬件能符合整個(gè)控制系統(tǒng)的要求,不需要外接其他存儲(chǔ)器芯片和定時(shí)器件,方便地構(gòu)成一個(gè)最小系統(tǒng)。整個(gè)系統(tǒng)結(jié)構(gòu)緊湊,抗干擾能力強(qiáng),性價(jià)比高。圖3.1為AT89C52芯片最小系統(tǒng)。一方面,單片機(jī)要通過(guò)I/O口中接收輸入信號(hào),另一方面要通過(guò)I/O口控制數(shù)碼管的初始化、顯示方式以及要顯示的字符。因此,設(shè)計(jì)必須以單片機(jī)為核心,顯示器為外圍設(shè)備。硬件上,單片機(jī)通過(guò)電路板電路與液晶顯示電路相連;軟件上,單片機(jī)要下載完整

11、的程序?qū)Χ哌M(jìn)行適時(shí)的控制。圖3.1 AT89C52芯片最小系統(tǒng)圖3.2.系統(tǒng)程序電路主程序CUP電路圖:AT89C52單片機(jī)P0、P2口擴(kuò)充電路圖如圖3.2:圖3.2 AT89C52系統(tǒng)管腳擴(kuò)充圖3.3、DAC0832與AT89C52單片機(jī)接口電路設(shè)計(jì)實(shí)驗(yàn)電路使用邏輯器件實(shí)現(xiàn)地址譯碼,地址FF80H接入數(shù)模轉(zhuǎn)換器DAC0832片選段,通過(guò)數(shù)模轉(zhuǎn)換后的模擬量通過(guò)運(yùn)放放大驅(qū)動(dòng)電機(jī)驅(qū)動(dòng),其電路圖如圖3.3所示:圖3.2 DAC0832與AT89C52單片機(jī)接口及電機(jī)控制電路3.4、顯示電路與AT89C52單片機(jī)電路設(shè)計(jì)實(shí)驗(yàn)電路使用IO擴(kuò)充芯片8255及鎖存芯片74LS245對(duì)六個(gè)數(shù)碼管選通控制顯示

12、。顯示部分電路圖如圖3.3所示:圖3.3 數(shù)碼管顯示部分電路圖四、系統(tǒng)程序流程設(shè)計(jì)4.1、系統(tǒng)程序流程框圖如圖4.1圖4.1 程序流程圖 五、調(diào)試與測(cè)試結(jié)果分析5.1、實(shí)驗(yàn)系統(tǒng)連線圖a、P3.0、P3.1、P3.2、P3.3分別連按鍵K1、K2、S1、S2b、DS18b20 數(shù)據(jù)線連 P3.4c、將DAC0832驅(qū)動(dòng)電路AOUT接至直流電機(jī)d、將P0口接至DAC0832數(shù)字輸入端e、將地址譯碼器電路(FF80H)接至DAC0832片選端5.2、程序調(diào)試 程序上電時(shí),直流電機(jī)默認(rèn)以中檔5檔工作,系統(tǒng)默認(rèn)工作在手動(dòng)模式下。數(shù)碼管顯示當(dāng)前環(huán)境溫度和電機(jī)運(yùn)行檔位。當(dāng)按下按鍵S1(P3.2)時(shí),直流電機(jī)

13、以加速轉(zhuǎn)動(dòng),同時(shí)數(shù)碼管顯示檔位速度,當(dāng)速度達(dá)到最大時(shí),繼續(xù)按下鍵S1第5個(gè)數(shù)碼管會(huì)顯示“”表示系統(tǒng)已達(dá)到最大風(fēng)速當(dāng)按下按鍵S2(P3.2)時(shí),直流電機(jī)以減速轉(zhuǎn)動(dòng),同時(shí)數(shù)碼管顯示檔位速度,當(dāng)速度達(dá)到最小時(shí),繼續(xù)按下鍵S2第5個(gè)數(shù)碼管會(huì)顯示“”表示系統(tǒng)已達(dá)到最小風(fēng)速。當(dāng)按下系統(tǒng)模式控制切換鍵k1可以實(shí)現(xiàn)模式的切換,在自動(dòng)模式下,數(shù)碼管第一位顯示“A”字樣,表示工作于自動(dòng)模式下,此時(shí)電機(jī)的轉(zhuǎn)速由環(huán)境溫度決定。并且顯示環(huán)境溫度和當(dāng)前溫度下電機(jī)運(yùn)行檔位。當(dāng)按下定時(shí)鍵K2時(shí),數(shù)碼管閃爍的顯示“000”,當(dāng)按S1時(shí),定時(shí)時(shí)間增加,數(shù)碼管閃爍顯示定時(shí)時(shí)間。按S2鍵時(shí),定時(shí)時(shí)間減少,同時(shí)數(shù)碼管也閃爍顯示定時(shí)時(shí)間

14、。再次按下K2鍵后,閃爍停止,定時(shí)開(kāi)始,數(shù)碼管顯示定時(shí)剩余時(shí)間。5.3、實(shí)驗(yàn)結(jié)果分析 電機(jī)運(yùn)行正常時(shí)即可實(shí)現(xiàn)調(diào)速現(xiàn)象,按鍵的消抖使得調(diào)速現(xiàn)象更加明顯。按鍵S1實(shí)現(xiàn)電風(fēng)扇加速運(yùn)行,按鍵S2實(shí)現(xiàn)電風(fēng)扇減速運(yùn)行。系統(tǒng)模式控制切換鍵k1可以實(shí)現(xiàn)模式的切換。定時(shí)鍵K2實(shí)現(xiàn)定時(shí)設(shè)定和定時(shí)確定。適當(dāng)?shù)目刂瓢存I,就可以實(shí)現(xiàn)所需要的效果。六、程序設(shè)計(jì)總結(jié)兩周的單片機(jī)課程設(shè)計(jì)讓我受益匪淺,無(wú)論從知識(shí)技能上還是團(tuán)隊(duì)合作方面。上課的時(shí)候的學(xué)習(xí)從來(lái)沒(méi)有見(jiàn)過(guò)真正的單片機(jī),只是從理論的角度去理解枯燥乏味。但在課程設(shè)計(jì)使用了單片機(jī)及其系統(tǒng),能夠理論聯(lián)系實(shí)際的學(xué)習(xí),開(kāi)闊了眼界,提高了單片機(jī)知識(shí)的理解和水平。在這次課程設(shè)計(jì)中又讓

15、我體會(huì)到了合作與團(tuán)結(jié)的力量,當(dāng)遇到不會(huì)或是設(shè)計(jì)不出來(lái)的地方,我們就會(huì)在QQ群里討論或者是同學(xué)之間相互幫助。團(tuán)結(jié)就是力量,無(wú)論在現(xiàn)在的學(xué)習(xí)中還是在以后的工作中,團(tuán)結(jié)都是至關(guān)重要的,有了團(tuán)結(jié)會(huì)有更多的理念、更多的思維、更多的情感。我們組的題目是智能電風(fēng)扇控制器設(shè)計(jì),基本要求是實(shí)現(xiàn)電機(jī)速度的控制,并且通過(guò)數(shù)碼管顯示出來(lái)。由于我在學(xué)院的創(chuàng)新實(shí)驗(yàn)室有過(guò)一年多的編程經(jīng)驗(yàn),因此在實(shí)驗(yàn)箱上實(shí)現(xiàn)基本功能并沒(méi)有很大難度,基本功能實(shí)現(xiàn)后,我們組想到了使設(shè)計(jì)更加智能化和多功能化,于是我們加入了數(shù)字溫度傳感器溫度采集和自動(dòng)控制,以及定時(shí)功能。并通過(guò)程序設(shè)計(jì),實(shí)現(xiàn)比較人性化的數(shù)碼管顯示。在整個(gè)程序設(shè)計(jì)和電路設(shè)計(jì)調(diào)試過(guò)程中

16、,遇到了不少問(wèn)題,最終也和組員共同解決了。主要的問(wèn)題有:l 仿真和實(shí)際的電路調(diào)試有一定的出入,在仿真上按鍵能夠很好的工作,但是在實(shí)際的電路調(diào)試過(guò)程中,按鍵往往不大靈敏,常出現(xiàn)按一下,系統(tǒng)反應(yīng)多次的問(wèn)題,最后通過(guò)延時(shí)時(shí)間的調(diào)整,使得按鍵較好的工作。l 由于數(shù)碼管采用動(dòng)態(tài)顯示方式,延時(shí)掃描時(shí)間的不恰當(dāng)使得數(shù)碼管顯示出現(xiàn)跳動(dòng)或者不穩(wěn)定的問(wèn)題,通過(guò)延時(shí)時(shí)間的正確設(shè)置和對(duì)整體程序的分析,使數(shù)碼管的顯示穩(wěn)定正常。l 隨著系統(tǒng)功能的增加,程序變的復(fù)雜,調(diào)試起來(lái)對(duì)程序的分析帶來(lái)了一定的難度,最后通過(guò)功能函數(shù)的模塊化使得程序更加清晰和易更改。將數(shù)字溫度傳感器的函數(shù)單獨(dú)設(shè)在一個(gè)C文件中,采用多文件編譯的方式,也增

17、加了程序的易移植性。l 程序的要完全運(yùn)行正確,不僅要弄清楚電路圖,尤其是各接口的接法,還要注重每個(gè)小的細(xì)節(jié),因?yàn)橥粋€(gè)很小的錯(cuò)誤,使得程序出現(xiàn)一些無(wú)法預(yù)料的結(jié)果,在程序的調(diào)試過(guò)程中,我們組出現(xiàn)了將=錯(cuò)寫(xiě)為了=,結(jié)果當(dāng)然運(yùn)行不出來(lái)。單片機(jī)是很重要的一門(mén)課程,學(xué)好一門(mén)單片機(jī),就憑這個(gè)技術(shù)這門(mén)手藝找一個(gè)好工作也不成問(wèn)題。盡管我們?cè)谡n堂學(xué)到的內(nèi)容很有限,但在以后的學(xué)習(xí)中單片機(jī)還需要好好的深入研究和學(xué)習(xí)。 七、參考文獻(xiàn)1陳海宴. 51單片機(jī)原理及應(yīng)用. 北京:北京航空航天大學(xué)出版社,2012.2郭天祥. 51單片機(jī)C語(yǔ)言教程. 北京:電子工業(yè)出版社,2005.3胡啟明,葛祥磊. Proteus從入門(mén)到

18、精通. 北京:電子工業(yè)出版社,2012. 4 張兆明.基于AT89S52單片機(jī)的自動(dòng)溫控電風(fēng)扇設(shè)計(jì).測(cè)控技術(shù), 2009, 03(). 附錄1:系統(tǒng)程序系統(tǒng)主函數(shù)/*設(shè)計(jì)題目:智能電風(fēng)扇控制器設(shè)計(jì)設(shè)計(jì)者: 設(shè)計(jì)功能:1. 系統(tǒng)分為自動(dòng)模式和手動(dòng)模式,通過(guò)自動(dòng)控制手動(dòng)控制切換鍵K1(P3.1)可以實(shí)現(xiàn)電機(jī)轉(zhuǎn)速控制,并用數(shù)碼管顯示其工作在何種狀態(tài)。2. 手動(dòng)狀態(tài)可以通過(guò)S1、S2(P3.2加,P3.3減)實(shí)現(xiàn)9級(jí)風(fēng)速增減調(diào)速,并通過(guò)數(shù)碼管顯示。3. 通過(guò)DS18B20可以實(shí)現(xiàn)風(fēng)扇附近環(huán)境溫度的檢測(cè),溫度精確到0.1攝氏度,并通過(guò)數(shù)碼管可以顯示實(shí)時(shí)溫度當(dāng)系統(tǒng)工作切換到自動(dòng)控制狀態(tài)時(shí),系統(tǒng)根據(jù)環(huán)境溫度

19、自動(dòng)控制轉(zhuǎn)速的快慢。4. 兩種工作狀態(tài)下,均可以通過(guò)定時(shí)設(shè)置功能鍵K1(P3.0)可以實(shí)現(xiàn)風(fēng)扇定時(shí)工作,通過(guò)時(shí)間增減鍵(P3.2加,P3.4減)實(shí)現(xiàn)定時(shí)時(shí)間設(shè)定時(shí)間到后風(fēng)扇停止工作系統(tǒng)連線 P3.0、P3.1、P3.2、P3.3分別連按鍵K1、K2、S1、S2 DS18b20 數(shù)據(jù)線連 P3.4 系統(tǒng)參數(shù): 1.轉(zhuǎn)速檔位 (本參數(shù)為仿真參數(shù))共分為9個(gè)檔位,從低到高為1-9檔,通過(guò)數(shù)碼管顯示,對(duì)應(yīng)電機(jī)兩端電壓分別為1.31V、2.62V、3.93V、5.24V、6.55V、7.86V、9.17V、10.5V、11.8V2.溫度參數(shù)系統(tǒng)使用的DS18b20可以實(shí)現(xiàn)0.0625攝氏度的精度。通過(guò)四

20、舍五入,數(shù)碼管顯示可以實(shí)現(xiàn)0.1攝氏度的精度。3.自動(dòng)模式下環(huán)境溫度與轉(zhuǎn)速關(guān)系環(huán)境溫度范圍與轉(zhuǎn)速關(guān)系為:21以下,停止;21-22 1檔;22-23 2檔;23-24 3檔;24-25 4檔;25-26 5檔; 26-27 6檔; 27-28 7檔;28-29 8檔;29以上,9檔 4.定時(shí)時(shí)間參數(shù)系統(tǒng)共設(shè)置7個(gè)定時(shí)時(shí)間,分別為1min,5min,10min,30min,1h,2h,5h*/#includereg51.h#include ds18b20.h#include /用于訪問(wèn)絕對(duì)地址#include #define uchar unsigned char#define uint uns

21、igned int#define ON 1#define OFF 0#define Confirm 2#define TimeGrade1 1/定時(shí)等級(jí)分別設(shè)置為1分鐘,5分鐘,10分鐘,30分鐘,1小時(shí),2小時(shí),5小時(shí)#define TimeGrade2 5#define TimeGrade3 10#define TimeGrade4 30#define TimeGrade5 60#define TimeGrade6 120#define TimeGrade7 300#define add XBYTE0xff23 /控制寄存器#define PA XBYTE0xff20 /位選為8255,A

22、口#define PB XBYTE0xff21 /段選為8255,B口#define DA XBYTE0xff80 /P0對(duì)應(yīng)的地址unsigned char tflag; /定時(shí)器時(shí)間標(biāo)志unsigned char TimeGrade;/風(fēng)扇定時(shí)等級(jí)unsigned int TimeGo,TIME,t1flag; /風(fēng)扇定時(shí)時(shí)間標(biāo)志位int temp_T,temp_T_A; /采集溫度值以及采集的溫度絕對(duì)值uint volt_d=140,volt_a;bit secflag = 0;bit Auto = OFF; /定義自動(dòng)控制允許位uchar TC = OFF; /定義定時(shí)功能允許位bit

23、 Ch_Full = 0; /定義調(diào)檔以最大或者最小標(biāo)志位bit TBZF = 0; /定義溫度低于0時(shí)標(biāo)志位uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x8b,0xbf,0xff; /共陽(yáng)數(shù)碼管編碼表uchar code wei=0x01,0x02,0x04,0x08,0x10,0x20;void delayMS(uint z);void Initial(void);void Time_Set

24、(void);void display(uchar aa,uchar bb);void Handle_display(void);void Key_check(void);void Anto_Control_speed(void);void TempTrans(void);void delayMS(uint z) /延時(shí)函數(shù)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uchar aa,uchar bb) /顯示子程序PA=weiaa; /位選PB=tablebb; /段選delayMS(2);void Initial(void)E

25、X0 = 1; /開(kāi)外部中斷0EX1 = 1; /開(kāi)外部中斷1EA = 1; /開(kāi)總中斷IT0 = 1; /下降沿觸發(fā)中斷0IT1 = 1; /下降沿觸發(fā)中斷1TMOD = 0x11; TH0 = (65536-20000)/256; TL0 = (65536-20000)%256;TH1 = (65536-50000)/256; TL1 = (65536-50000)%256; ET0 = 1; TR0 = 1; ET1 = 1;void Handle_display(void)/操作時(shí)數(shù)碼管顯示,包括溫度,檔位,定時(shí)時(shí)間和剩余時(shí)間uchar i,j; volt_a=volt_d/28;di

26、splay(0,volt_a); /數(shù)碼管輸出檔位 if(TC = OFF) /為設(shè)置時(shí)間時(shí)初始狀態(tài) if(TBZF=1)display(5,22);/在數(shù)碼管1顯示溫度為負(fù)display(4,temp_T_A/100); /數(shù)碼管輸出模擬量十位display(3,temp_T_A%100/10+10); /數(shù)碼管輸出模擬量個(gè)位display(2,temp_T_A%100%10); /數(shù)碼管輸出模擬量一位小數(shù) else Time_Set();for(j=80;j0;j-) display(4,(TIME-TimeGo)/100); /數(shù)碼管輸出模擬量十位display(3,(TIME-Time

27、Go)%100/10); /數(shù)碼管輸出模擬量個(gè)位display(2,(TIME-TimeGo)%100%10); /數(shù)碼管輸出模擬量一位小數(shù)display(0,volt_a); if(TC = ON)for(i=100;i0;i-)display(4,23); /數(shù)碼管輸出模擬量十位display(3,23); /數(shù)碼管輸出模擬量個(gè)位display(2,23); /數(shù)碼管輸出模擬量一位小數(shù)display(0,volt_a); void Key_check(void) /按鍵掃描函數(shù)unsigned char temp;temp=P3&0x03;if(temp != 0x03)delayMS(3

28、0); if(temp != 0x03) /當(dāng)P3.4和P3.5按下時(shí) if(temp=0x01) /模式設(shè)置鍵被按下 Auto=Auto; else if(temp=0x02) /定時(shí)設(shè)置鍵被按下TC+;if(TC=3)TC=0; void TempTrans(void)if(secflag = 1) secflag=0;temp_T=rd_temperature()/10;if(temp_T=300) volt_d=252;void Time_Set(void)if(TC = ON) switch(TimeGrade)case 0:TIME=0;break;case 1:TIME=Time

29、Grade1;break;case 2:TIME=TimeGrade2;break;case 3:TIME=TimeGrade3;break;case 4:TIME=TimeGrade4;break;case 5:TIME=TimeGrade5;break;case 6:TIME=TimeGrade6;break;case 7:TIME=TimeGrade7;break;else if(TC = Confirm)TR1 = 1;display(5,22);elseTIME=0;TR1 = 0;/關(guān)閉定時(shí)器2TimeGo=0; if(TimeGo=TIME)&(TC = Confirm)/定時(shí)時(shí)

30、間到TC =OFF;/關(guān)閉時(shí)間顯示標(biāo)志TR1 = 0;/關(guān)閉定時(shí)器2TimeGo=0;/定時(shí)后已運(yùn)行時(shí)間清零volt_d=0; /定時(shí)時(shí)間到后,風(fēng)扇停止轉(zhuǎn)動(dòng)void main() Initial();while(1) TempTrans();if(Auto = OFF) /當(dāng)系統(tǒng)為手動(dòng)控制時(shí)子函數(shù)if(Ch_Full=1)display(1,22);/在數(shù)碼管1顯示一橫線,表示檔位已經(jīng)最大或者最小 DA= volt_d; /把數(shù)字量賦給數(shù)模轉(zhuǎn)換器Handle_display();if(Auto = ON)/系統(tǒng)為自動(dòng)控制時(shí)函數(shù)display(5,20);/顯示自動(dòng)控制允許標(biāo)志DA= volt_

31、d;Anto_Control_speed();Handle_display();void ex0() interrupt 0 /外部中斷0子程序delayMS(200); if(TC = OFF)|(TC = Confirm) /如果不是時(shí)間設(shè)置時(shí),實(shí)現(xiàn)風(fēng)扇調(diào)速if(volt_d0)Ch_Full=0;volt_d-=28; else Ch_Full=1;else/如果時(shí)間設(shè)置標(biāo)志位打開(kāi),則定時(shí)設(shè)置 TimeGrade-;void isr_t1(void) interrupt 3TH1 = (65536-50000)/256; TL1 = (65536-50000)%256; t1flag+; if(t1flag = 1200) t1flag = 0;TimeGo+; 數(shù)字溫度傳感器DS18B20部分頭文件#ifndef _DS18B20_H#define _DS18B20_H#include reg51.h#include intrins.hsbit DQ = P34;bit init_ds18b20(void);void delay

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論