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

下載本文檔

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

文檔簡介

智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第1頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第1頁。單片機(jī)課程設(shè)計(jì)設(shè)計(jì)題目:智能電風(fēng)扇控制器設(shè)計(jì)智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第2頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第2頁。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)試與測試結(jié)果分析…………..……...………….85.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附錄…………..……...121、源程序代碼………….……122、程序原理圖………………23智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第3頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第3頁。序言傳統(tǒng)電風(fēng)扇不能根據(jù)溫度的變化適時(shí)調(diào)節(jié)風(fēng)力大小,對于夜間溫差大的地區(qū),人們在夏夜使用電風(fēng)扇時(shí)可能遇到這樣的問題:當(dāng)凌晨降溫的時(shí)候電風(fēng)扇依然在工作,可是人們因?yàn)槭焖鵁o法察覺,既浪費(fèi)電資源又容易引起感冒,傳統(tǒng)的機(jī)械定時(shí)器雖然能夠控制電風(fēng)扇在工作一定后關(guān)閉,但定時(shí)范圍有限,且無法對溫度變化靈活處理。鑒于以上方面的考慮,我們需要設(shè)計(jì)一種智能電風(fēng)扇控制系統(tǒng)來解決這些問題,使家用電器產(chǎn)品趨向于自動(dòng)化、智能化、環(huán)?;腿诵曰沟糜晌C(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)控制,能夠解決夏天人們晚上熟睡時(shí),由于夜里溫度下降而導(dǎo)致受涼,或者從睡夢中醒來親自開關(guān)電風(fēng)扇的問題,具有重要的現(xiàn)實(shí)意義。設(shè)計(jì)實(shí)驗(yàn)條件及任務(wù)設(shè)計(jì)實(shí)驗(yàn)條件單片機(jī)實(shí)驗(yàn)室設(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)功能如下:智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第4頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第4頁。風(fēng)速設(shè)為從高到低9個(gè)檔位,可由用戶通過鍵盤手動(dòng)設(shè)定。定時(shí)控制鍵實(shí)現(xiàn)定時(shí)時(shí)間設(shè)置,可以實(shí)現(xiàn)10小時(shí)的長定時(shí)。環(huán)境溫度檢測,并通過數(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ù)字溫度數(shù)字溫度傳感器電機(jī)驅(qū)動(dòng)及電機(jī)執(zhí)行電路DAC0832AT89C52電機(jī)驅(qū)動(dòng)及電機(jī)執(zhí)行電路DAC0832AT89C52調(diào)速調(diào)時(shí)S1鍵調(diào)速調(diào)時(shí)S2鍵調(diào)速調(diào)時(shí)S2鍵LED數(shù)碼管顯示模式切換鍵K1LED數(shù)碼管顯示模式切換鍵K1定時(shí)功能鍵K2定時(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ù)碼管。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第5頁。3、74LS373智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第5頁。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ò),將N位數(shù)字量逐位轉(zhuǎn)換為模擬量并求和,從而實(shí)現(xiàn)將N位數(shù)字量轉(zhuǎn)換為相應(yīng)的模擬量。其性能指標(biāo)為:(1)分辨率:相對分辨率=1/2N,N越大,分辨率越高(2)線性度(3)轉(zhuǎn)換精度(4)建立時(shí)間(5)溫度系數(shù)。DAC0832引腳功能圖如圖2.2圖2.2數(shù)模轉(zhuǎn)換DAC0832引腳功能1、DI0~DI7:8位數(shù)字信號(hào)輸入端;2、!CS:片選端;ILE:數(shù)據(jù)鎖存允許控制端,高電平有效;智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第6頁。3、!智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第6頁。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端,IOUT2+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ù)字化溫度傳感器支持“一線總線”接口,測量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度為±0.15℃?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費(fèi)電子產(chǎn)品等。DS18B20可以程序設(shè)定9~12位的分辨率,精度為±0.15℃,溫度采集具有準(zhǔn)確性、實(shí)時(shí)性。DS18B20的管腳排列如下:DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。如圖2.3所示。圖2.3數(shù)字溫度傳感器DS18B20引腳圖智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第7頁。DS18B20檢測的溫度高于一定值時(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.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ù)碼管的初始化、顯示方式以及要顯示的字符。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第8頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第8頁。圖3.1AT89C52芯片最小系統(tǒng)圖3.2.系統(tǒng)程序電路主程序CUP電路圖:AT89C52單片機(jī)P0、P2口擴(kuò)充電路圖如圖3.2:圖3.2AT89C52系統(tǒng)管腳擴(kuò)充圖智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第9頁。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.2DAC0832與AT89C52單片機(jī)接口及電機(jī)控制電路3.4、顯示電路與AT89C52單片機(jī)電路設(shè)計(jì)智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第10頁。實(shí)驗(yàn)電路使用IO擴(kuò)充芯片8255及鎖存芯片74LS245對六個(gè)數(shù)碼管選通控制顯示。顯示部分電路圖如圖3智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第10頁。圖3.3數(shù)碼管顯示部分電路圖四、系統(tǒng)程序流程設(shè)計(jì)4.1、系統(tǒng)程序流程框圖如圖4.1圖4.1程序流程圖智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第11頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第11頁。五、調(diào)試與測試結(jié)果分析5.1、實(shí)驗(yàn)系統(tǒng)連線圖a、P3.0、P3.1、P3.2、P3.3 分別連按鍵K1、K2、S1、S2 b、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ī)以加速轉(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í)間。再次按下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)所需要的效果。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第12頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第12頁。六、程序設(shè)計(jì)總結(jié)兩周的單片機(jī)課程設(shè)計(jì)讓我受益匪淺,無論從知識(shí)技能上還是團(tuán)隊(duì)合作方面。上課的時(shí)候的學(xué)習(xí)從來沒有見過真正的單片機(jī),只是從理論的角度去理解枯燥乏味。但在課程設(shè)計(jì)使用了單片機(jī)及其系統(tǒng),能夠理論聯(lián)系實(shí)際的學(xué)習(xí),開闊了眼界,提高了單片機(jī)知識(shí)的理解和水平。在這次課程設(shè)計(jì)中又讓我體會(huì)到了合作與團(tuán)結(jié)的力量,當(dāng)遇到不會(huì)或是設(shè)計(jì)不出來的地方,我們就會(huì)在QQ群里討論或者是同學(xué)之間相互幫助。團(tuán)結(jié)就是力量,無論在現(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ì)調(diào)試過程中,遇到了不少問題,最終也和組員共同解決了。主要的問題有:仿真和實(shí)際的電路調(diào)試有一定的出入,在仿真上按鍵能夠很好的工作,但是在實(shí)際的電路調(diào)試過程中,按鍵往往不大靈敏,常出現(xiàn)按一下,系統(tǒng)反應(yīng)多次的問題,最后通過延時(shí)時(shí)間的調(diào)整,使得按鍵較好的工作。由于數(shù)碼管采用動(dòng)態(tài)顯示方式,延時(shí)掃描時(shí)間的不恰當(dāng)使得數(shù)碼管顯示出現(xiàn)跳動(dòng)或者不穩(wěn)定的問題,通過延時(shí)時(shí)間的正確設(shè)置和對整體程序的分析,使數(shù)碼管的顯示穩(wěn)定正常。隨著系統(tǒng)功能的增加,程序變的復(fù)雜,調(diào)試起來對程序的分析帶來了一定的難度,最后通過功能函數(shù)的模塊化使得程序更加清晰和易更改。將數(shù)字溫度傳感器的函數(shù)單獨(dú)設(shè)在一個(gè)C文件中,采用多文件編譯的方式,也增加了程序的易移植性。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第13頁。程序的要完全運(yùn)行正確,不僅要弄清楚電路圖,尤其是各接口的接法,還要注重每個(gè)小的細(xì)節(jié),因?yàn)橥粋€(gè)很小的錯(cuò)誤,使得程序出現(xiàn)一些無法預(yù)料的結(jié)果,在程序的調(diào)試過程中,我們組出現(xiàn)了將‘=’錯(cuò)寫為了‘==’智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第13頁。

單片機(jī)是很重要的一門課程,學(xué)好一門單片機(jī),就憑這個(gè)技術(shù)這門手藝找一個(gè)好工作也不成問題。盡管我們在課堂學(xué)到的內(nèi)容很有限,但在以后的學(xué)習(xí)中單片機(jī)還需要好好的深入研究和學(xué)習(xí)。七、參考文獻(xiàn)[1]

陳海宴.51單片機(jī)原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,2012.

[2]

郭天祥.51單片機(jī)C語言教程.北京:電子工業(yè)出版社,2005.

[3]

胡啟明,葛祥磊.Proteus從入門到精通.北京:電子工業(yè)出版社,2012.[4] 張兆明.基于AT89S52單片機(jī)的自動(dòng)溫控電風(fēng)扇設(shè)計(jì).測控技術(shù),2009,03(210820).智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第14頁。

附錄1:智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第14頁。系統(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級風(fēng)速增減調(diào)速,并通過數(shù)碼管顯示。 3.通過DS18B20可以實(shí)現(xiàn)風(fēng)扇附近環(huán)境溫度的檢測,溫度精確到0.1攝氏度,并通過數(shù)碼管可以顯示實(shí)時(shí)溫度當(dāng)系統(tǒng)工作切換到自動(dòng)控制狀態(tài)時(shí),系統(tǒng)根據(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ù)碼管顯示,對應(yīng)電機(jī)兩端電壓分別為1.31V、2.62V、3.93V、5.24V、6.55V、7.86V、9.17V、10.5V、11.8V 2.溫度參數(shù)系統(tǒng)使用的DS18b20可以實(shí)現(xiàn)0.0625攝氏度的精度。通過四舍五入,數(shù)碼管顯示可以實(shí)現(xiàn)0.1攝氏度的精度。 3.自動(dòng)模式下環(huán)境溫度與轉(zhuǎn)速關(guān)系環(huán)境溫度范圍與轉(zhuǎn)速關(guān)系為:21以下,停止;21-221檔;22-232檔;23-243檔;24-254檔;25-265檔;26-276檔;27-287檔;28-298檔;29以上,9檔 4.定時(shí)時(shí)間參數(shù) 系統(tǒng)共設(shè)置7個(gè)定時(shí)時(shí)間,分別為1min,5min,10min,30min,1h,2h,5h智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第15頁。********************************************************************智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第15頁。#include"reg51.h"#include"ds18b20.h"#include<absacc.h>//用于訪問絕對地址#include<math.H>#defineucharunsignedchar#defineuintunsignedint#defineON 1#defineOFF0#defineConfirm 2#defineTimeGrade1 1 //定時(shí)等級分別設(shè)置為1分鐘,5分鐘,10分鐘,30分鐘,1小時(shí),2小時(shí),5小時(shí)#defineTimeGrade2 5#defineTimeGrade3 10#defineTimeGrade4 30#defineTimeGrade5 60#defineTimeGrade6 120#defineTimeGrade7 300#defineaddXBYTE[0xff23]//控制寄存器#definePAXBYTE[0xff20]//位選為8255,A口智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第16頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第16頁。#defineDAXBYTE[0xff80]//P0對應(yīng)的地址unsignedchartflag; //定時(shí)器時(shí)間標(biāo)志unsignedcharTimeGrade; //風(fēng)扇定時(shí)等級unsignedintTimeGo,TIME,t1flag; //風(fēng)扇定時(shí)時(shí)間標(biāo)志位inttemp_T,temp_T_A; //采集溫度值以及采集的溫度絕對值uintvolt_d=140,volt_a;bitsecflag=0;bitAuto=OFF; //定義自動(dòng)控制允許位ucharTC=OFF; //定義定時(shí)功能允許位bitCh_Full=0;//定義調(diào)檔以最大或者最小標(biāo)志位bitTBZF=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};//共陽數(shù)碼管編碼表智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第17頁。ucha智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第17頁。voiddelayMS(uintz);voidInitial(void);voidTime_Set(void);voiddisplay(ucharaa,ucharbb);voidHandle_display(void);voidKey_check(void);voidAnto_Control_speed(void);voidTempTrans(void);voiddelayMS(uintz)//延時(shí)函數(shù){ ucharx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voiddisplay(ucharaa,ucharbb)//顯示子程序{ PA=~wei[aa]; //位選 PB=table[bb]; //段選 delayMS(2); }智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第18頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第18頁。{ EX0=1;//開外部中斷0 EX1=1;//開外部中斷1 EA=1;//開總中斷 IT0=1;//下降沿觸發(fā)中斷0 IT1=1;//下降沿觸發(fā)中斷1 TMOD=0x11; TH0=(65536-20000)/256; TL0=(65536-20000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET0=1; TR0=1; ET1=1;}voidHandle_display(void) //操作時(shí)數(shù)碼管顯示,包括溫度,檔位,定時(shí)時(shí)間和剩余時(shí)間{ uchari,j; volt_a=volt_d/28; display(0,volt_a);//數(shù)碼管輸出檔位智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第19頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第19頁。 { 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>0;j--) { display(4,(TIME-TimeGo)/100);//數(shù)碼管輸出模擬量十位智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第20頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第20頁。 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); } } }voidKey_check(void) //按鍵掃描函數(shù) { unsignedchartemp;智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第21頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第21頁。 if(temp!=0x03) delayMS(30); if(temp!=0x03) //當(dāng)P3.4和P3.5按下時(shí) { if(temp==0x01) //模式設(shè)置鍵被按下 Auto=~Auto; elseif(temp==0x02) //定時(shí)設(shè)置鍵被按下 { TC++; if(TC==3) TC=0; } } }voidTempTrans(void){ if(secflag==1) { secflag=0;智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第22頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第22頁。 if(temp_T<0) { temp_T_A=65536-temp_T; //溫度為負(fù)數(shù)時(shí),溫度的絕對值為65536與溫度的差 TBZF=1; } else { temp_T_A=temp_T; //溫度為負(fù)數(shù)時(shí),溫度的絕對值即為溫度 TBZF=0; //當(dāng)值為正值,不顯示負(fù)溫度標(biāo)志 } }}voidAnto_Control_speed(void) //根據(jù)溫度實(shí)現(xiàn)溫度與轉(zhuǎn)速自動(dòng)控制子函數(shù){ switch(temp_T/10) { case29:volt_d=252;break;智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第23頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第23頁。 case27:volt_d=196;break; case26:volt_d=168;break; case25:volt_d=140;break; case24:volt_d=112;break; case23:volt_d=84;break; case22:volt_d=56;break; case21:volt_d=28;break; default:volt_d=0; } if(temp_T>=300) volt_d=252;}voidTime_Set(void){ if(TC==ON) { switch(TimeGrade) { case0:TIME=0;break; case1:TIME=TimeGrade1;break; case2:TIME=TimeGrade2;break; 智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第24頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第24頁。 case4:TIME=TimeGrade4;break; case5:TIME=TimeGrade5;break; case6:TIME=TimeGrade6;break; case7:TIME=TimeGrade7;break; } } elseif(TC==Confirm) {TR1=1;display(5,22);} else { TIME=0; TR1=0; //關(guān)閉定時(shí)器2 TimeGo=0; } if((TimeGo>=TIME)&&(TC==Confirm)) //定時(shí)時(shí)間到 { TC=OFF; //關(guān)閉時(shí)間顯示標(biāo)志 TR1=0; //關(guān)閉定時(shí)器2 TimeGo=0; //定時(shí)后已運(yùn)行時(shí)間清零 volt_d=0; //定時(shí)時(shí)間到后,風(fēng)扇停止轉(zhuǎn)動(dòng)智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第25頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第25頁。}voidmain(){ 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)志智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第26頁。 Anto_Control_speed(); Handle_display(); } }}voidex0()interrupt0//外部中斷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è)置智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第27頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第27頁。 TimeGrade++; if(TimeGrade==8) TimeGrade=0; }}voidisr_t0(void)interrupt1{ TH0=(65536-20000)/256; TL0=(65536-20000)%256;tflag++;if(tflag==10) //定時(shí)為1秒,每1秒采集一次溫度{tflag=0; secflag=1; Key_check(); //每過200ms掃描按鍵狀態(tài)}}voidex1()interrupt2//外部中斷1子程序{ delayMS(200);智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第28頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第28頁。 { if(volt_d>0) { Ch_Full=0; volt_d-=28; } else Ch_Full=1; }else //如果時(shí)間設(shè)置標(biāo)志位打開,則定時(shí)設(shè)置 { TimeGrade--; }}voidisr_t1(void)interrupt3{ TH1=(65536-50000)/256; TL1=(65536-50000)%256;t1flag++;if(t1flag==1200) 智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第29頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第29頁。t1flag=0; TimeGo++;}}數(shù)字溫度傳感器DS18B20部分頭文件#ifndef_DS18B20_H#define_DS18B20_H#include"reg51.h"#include"intrins.h"sbitDQ=P3^4;bitinit_ds18b20(void);voiddelay(unsignedintt);voidwr_ds18b20(unsignedcharbyt);unsignedcharrd_ds18b20(void);intrd_temperature(void);#endif數(shù)字溫度傳感器DS18B20部分C文件#include"ds18b20.h"#include"math.h"智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第30頁。智能電風(fēng)扇控制器設(shè)計(jì)單片機(jī)課程設(shè)計(jì)全文共36頁,當(dāng)前為第30頁。{while(t--);}//DS18B20初始化函數(shù)bitinit_ds18b20(void){bitinitflag=0;DQ=1;delay(12);DQ=0;delay(80);//延時(shí)大于480usDQ=1;delay(10);//14initflag=DQ;//in

溫馨提示

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

最新文檔

評論

0/150

提交評論