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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ì)2 / 25neuq目 錄序言一、 設(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é)果分析

2、.8 5.1、實(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í)可能遇到這樣的問題:當(dāng)凌晨降溫的時(shí)候電風(fēng)扇依然在工作,可是人們因?yàn)槭焖鵁o(wú)法察覺,既浪費(fèi)電資源又容易引起感冒,傳統(tǒng)的機(jī)械定時(shí)器雖然能夠控制電風(fēng)扇在工作一定后關(guān)閉,但定時(shí)圍有限,且無(wú)法對(duì)溫度變化靈活處理。鑒于以上方面的考慮,我們需要設(shè)計(jì)一種智能電風(fēng)扇控制系統(tǒng)來解決這些問題,使家用電器產(chǎn)品趨向于自動(dòng)化、智能化、環(huán)?;腿诵曰?,使

3、得由微機(jī)控制的智能電風(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)速;可以通過定時(shí)切換鍵和定時(shí)設(shè)置鍵實(shí)現(xiàn)系統(tǒng)工作定時(shí),使得在用戶需求的定時(shí)時(shí)間到后系統(tǒng)自動(dòng)停止工作。在日常生活中,單片機(jī)得到了越來越廣泛的應(yīng)用,本系統(tǒng)采用的AT89C52單片機(jī)體積小、重量輕、性價(jià)比高,尤其適合應(yīng)用于小型的自動(dòng)控制系統(tǒng)中。系統(tǒng)電風(fēng)扇起停的自動(dòng)控制,能夠解決夏天人們晚

4、上熟睡時(shí),由于夜里溫度下降而導(dǎo)致受涼,或者從睡夢(mèng)中醒來親自開關(guān)電風(fēng)扇的問題,具有重要的現(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è)檔位,可由用戶通過鍵盤手動(dòng)設(shè)定。 定時(shí)控制鍵實(shí)現(xiàn)定時(shí)時(shí)間設(shè)置,可以實(shí)現(xiàn)10小時(shí)的長(zhǎng)定時(shí)。 環(huán)境溫度檢測(cè),并通過

5、數(shù)碼管顯示,自動(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)扇控制部件,用來實(shí)現(xiàn)電風(fēng)扇調(diào)速核心功能。2、74LS245芯片:用來驅(qū)動(dòng)數(shù)碼管。

6、3、74LS373芯片:鎖存器,用來鎖存輸出的信號(hào)。4、74LS240芯片:八單線驅(qū)動(dòng)器,緩沖輸出的信號(hào)。5、DAC0832芯片:片選地址是FF80H,AOUT1插孔作為模擬量的輸出。6、8255芯片:可編程并行I/O接口芯片,用以擴(kuò)展單片機(jī)的IO口。7、LED數(shù)碼顯示管:用來顯示電機(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:輸入寄存器寫選通控制端。當(dāng)!CS=0、ILE=1、!WR1=0時(shí),數(shù)據(jù)信號(hào)被鎖存在輸入寄存器中。4、!XFER:數(shù)據(jù)傳送控制 5、!WR2 :DAC寄存器寫選通控制端。當(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端,

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

9、#177;0.15,溫度采集具有準(zhǔn)確性、實(shí)時(shí)性。DS18B20的管腳排列如下:DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。如圖2.3所示。圖2.3數(shù)字溫度傳感器DS18B20引腳圖DS18B20檢測(cè)的溫度高于一定值時(shí),單片機(jī)引腳輸出高電平,打開電風(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.

10、0-25.926.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ī)要通過I/O口中接收輸入信號(hào),另一方面要通過I/O口控制數(shù)碼管的初始化、顯示方式以與要顯示的字符。因此,設(shè)計(jì)必須以單片機(jī)為核心,顯示器為外圍設(shè)備。硬件上,單片機(jī)通過電路板電路與液晶顯示電路相連;軟件上

11、,單片機(jī)要下載完整的程序?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片選段,通過數(shù)模轉(zhuǎn)換后的模擬量通過運(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è)

12、數(shù)碼管選通控制顯示。顯示部分電路圖如圖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.

13、2)時(shí),直流電機(jī)以加速轉(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ù)碼管也

14、閃爍顯示定時(shí)時(shí)間。再次按下K2鍵后,閃爍停止,定時(shí)開始,數(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í)從來沒有見過真正的單片機(jī),只是從理論的角度去理解枯燥乏味。但在課程設(shè)計(jì)使用了單片機(jī)與其系統(tǒng),能夠理論聯(lián)系實(shí)際的學(xué)習(xí),開闊了眼界,提高了單片機(jī)知識(shí)的理解和水平。在這

15、次課程設(shè)計(jì)中又讓我體會(huì)到了合作與團(tuán)結(jié)的力量,當(dāng)遇到不會(huì)或是設(shè)計(jì)不出來的地方,我們就會(huì)在 群里討論或者是同學(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ī)速度的控制,并且通過數(shù)碼管顯示出來。由于我在學(xué)院的創(chuàng)新實(shí)驗(yàn)室有過一年多的編程經(jīng)驗(yàn),因此在實(shí)驗(yàn)箱上實(shí)現(xiàn)基本功能并沒有很大難度,基本功能實(shí)現(xiàn)后,我們組想到了使設(shè)計(jì)更加智能化和多功能化,于是我們加入了數(shù)字溫度傳感器溫度采集和自動(dòng)控制,以與定時(shí)功能。并通過程序設(shè)計(jì),實(shí)現(xiàn)比較人性化的數(shù)碼管顯示。在整個(gè)程序設(shè)計(jì)和電路設(shè)計(jì)

16、調(diào)試過程中,遇到了不少問題,最終也和組員共同解決了。主要的問題有:l 仿真和實(shí)際的電路調(diào)試有一定的出入,在仿真上按鍵能夠很好的工作,但是在實(shí)際的電路調(diào)試過程中,按鍵往往不大靈敏,常出現(xiàn)按一下,系統(tǒng)反應(yīng)多次的問題,最后通過延時(shí)時(shí)間的調(diào)整,使得按鍵較好的工作。l 由于數(shù)碼管采用動(dòng)態(tài)顯示方式,延時(shí)掃描時(shí)間的不恰當(dāng)使得數(shù)碼管顯示出現(xiàn)跳動(dòng)或者不穩(wěn)定的問題,通過延時(shí)時(shí)間的正確設(shè)置和對(duì)整體程序的分析,使數(shù)碼管的顯示穩(wěn)定正常。l 隨著系統(tǒng)功能的增加,程序變的復(fù)雜,調(diào)試起來對(duì)程序的分析帶來了一定的難度,最后通過功能函數(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)試過程中,我們組出現(xiàn)了將=錯(cuò)寫為了=,結(jié)果當(dāng)然運(yùn)行不出來。單片機(jī)是很重要的一門課程,學(xué)好一門單片機(jī),就憑這個(gè)技術(shù)這門手藝找一個(gè)好工作也不成問題。盡管我們?cè)谡n堂學(xué)到的容很有限,但在以后的學(xué)習(xí)中單片機(jī)還需要好好的深入研究和學(xué)習(xí)。七、參考文獻(xiàn)1 海宴. 51單片機(jī)原理與應(yīng)用. :航空航天大學(xué),2012.2 郭天祥. 51單片機(jī)C語(yǔ)言教程. :電子工業(yè),2005.3 胡啟明,祥磊. Prot

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

19、據(jù)環(huán)境溫度自動(dòng)控制轉(zhuǎn)速的快慢。4. 兩種工作狀態(tài)下,均可以通過定時(shí)設(shè)置功能鍵K1(P3.0)可以實(shí)現(xiàn)風(fēng)扇定時(shí)工作,通過時(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檔,通過數(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攝氏度的精

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*/#include"reg51.h"#include "ds18b20.h"#include<absacc.h> /用于訪問絕對(duì)地址#include

21、 <math.H>#define uchar unsigned char#define uint unsigned 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#defi

22、ne add XBYTE0xff23 /控制寄存器#define PA XBYTE0xff20 /位選為8255,A口#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 =

23、 0;bit Auto = OFF; /定義自動(dòng)控制允許位uchar TC = OFF; /定義定時(shí)功能允許位bit Ch_Full = 0; /定義調(diào)檔以最大或者最小標(biāo)志位bit TBZF = 0; /定義溫度低于0時(shí)標(biāo)志位ucharcodetable=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,0x

24、20;void delayMS(uint z);void Initial(void);void Time_Set(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;x>0;x-)for(y=110;y>0;y-);void display(uchar aa,uchar bb)

25、/顯示子程序PA=weiaa; /位選PB=tablebb; /段選delayMS(2);void Initial(void)EX0 = 1; /開外部中斷0EX1 = 1; /開外部中斷1EA = 1; /開總中斷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_displa

26、y(void)/操作時(shí)數(shù)碼管顯示,包括溫度,檔位,定時(shí)時(shí)間和剩余時(shí)間uchar i,j; volt_a=volt_d/28;display(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;j>

27、;0;j-) display(4,(TIME-TimeGo)/100); /數(shù)碼管輸出模擬量十位display(3,(TIME-TimeGo)%100/10); /數(shù)碼管輸出模擬量個(gè)位display(2,(TIME-TimeGo)%100%10); /數(shù)碼管輸出模擬量一位小數(shù)display(0,volt_a); if(TC = ON)for(i=100;i>0;i-)display(4,23); /數(shù)碼管輸出模擬量十位display(3,23); /數(shù)碼管輸出模擬量個(gè)位display(2,23); /數(shù)碼管輸出模擬量一位小數(shù)display(0,volt_a); void Key_chec

28、k(void) /按鍵掃描函數(shù)unsigned char temp;temp=P3&0x03;if(temp != 0x03)delayMS(30); 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<0) temp_T_A=65536-tem

29、p_T; /溫度為負(fù)數(shù)時(shí),溫度的絕對(duì)值為65536與溫度的差TBZF=1; else temp_T_A=temp_T;/溫度為負(fù)數(shù)時(shí),溫度的絕對(duì)值即為溫度TBZF=0;/當(dāng)值為正值,不顯示負(fù)溫度標(biāo)志void Anto_Control_speed(void)/根據(jù)溫度實(shí)現(xiàn)溫度與轉(zhuǎn)速自動(dòng)控制子函數(shù)switch(temp_T/10)case 29: volt_d=252;break;case 28: volt_d=224;break;case 27: volt_d=196;break;case 26: volt_d=168;break;case 25: volt_d=140;break;case 2

30、4: volt_d=112;break;case 23: volt_d=84;break;case 22: volt_d=56;break;case 21: volt_d=28;break; default: volt_d=0;if(temp_T>=300) volt_d=252;void Time_Set(void)if(TC = ON) switch(TimeGrade)case 0:TIME=0;break;case 1:TIME=TimeGrade1;break;case 2:TIME=TimeGrade2;break;case 3:TIME=TimeGrade3;break;c

31、ase 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í)間到TC =OFF;/關(guān)閉時(shí)間顯示標(biāo)志TR1 = 0;/關(guān)閉定時(shí)器2TimeGo=0;/定時(shí)后已運(yùn)行時(shí)間清零volt_

32、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_d;Anto_Control_speed();Handle_display();void ex0() interrup

33、t 0 /外部中斷0子程序delayMS(200); if(TC = OFF)|(TC = Confirm) /如果不是時(shí)間設(shè)置時(shí),實(shí)現(xiàn)風(fēng)扇調(diào)速if(volt_d<250)Ch_Full=0;volt_d+=28; else Ch_Full=1;else/如果時(shí)間設(shè)置標(biāo)志位打開,則定時(shí)設(shè)置 TimeGrade+; if(TimeGrade=8) TimeGrade=0;void isr_t0(void) interrupt 1TH0 = (65536-20000)/256; TL0 = (65536-20000)%256; tflag+; if(tflag = 10) /定時(shí)為1秒, 每

34、1秒采集一次溫度 tflag = 0;secflag = 1;Key_check(); /每過200ms掃描按鍵狀態(tài) void ex1() interrupt 2 /外部中斷1子程序delayMS(200);if(TC = OFF)|(TC = Confirm) /如果不是時(shí)間設(shè)置時(shí),實(shí)現(xiàn)風(fēng)扇調(diào)速if(volt_d>0)Ch_Full=0;volt_d-=28; else Ch_Full=1;else/如果時(shí)間設(shè)置標(biāo)志位打開,則定時(shí)設(shè)置 TimeGrade-;void isr_t1(void) interrupt 3TH1 = (65536-50000)/256; TL1 = (6553

35、6-50000)%256; t1flag+; if(t1flag = 1200) t1flag = 0;TimeGo+; 數(shù)字溫度傳感器DS18B20部分頭文件#ifndef _DS18B20_H#define _DS18B20_H#include "reg51.h"#include "intrins.h"sbit DQ = P34;bit init_ds18b20(void);void delay(unsigned int t);void wr_ds18b20(unsigned char byt);unsigned char rd_ds18b20(void);int rd_temperature(void);#endif數(shù)字溫度傳感器DS18B20部分C文件#include "ds18b20.h"#include "math.h"void delay(unsigned int t) while(t-);/DS18B20初始化函數(shù)bit init_ds18b20(void) bit initflag =

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論