智能遙控溫控風(fēng)扇設(shè)計(jì)_第1頁
智能遙控溫控風(fēng)扇設(shè)計(jì)_第2頁
智能遙控溫控風(fēng)扇設(shè)計(jì)_第3頁
智能遙控溫控風(fēng)扇設(shè)計(jì)_第4頁
智能遙控溫控風(fēng)扇設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

引言生活中,我們經(jīng)常會(huì)使用一些與溫度有關(guān)的設(shè)備。比方,現(xiàn)在雖然不少城市家庭用上了空調(diào),但在占中國大局部人口的農(nóng)村地區(qū)依舊使用電風(fēng)扇作為降溫防暑設(shè)備,春夏〔夏秋〕交替時(shí)節(jié),白天溫度依舊很高,電風(fēng)扇應(yīng)高轉(zhuǎn)速、大風(fēng)量,使人感到清涼;到了晚上,氣溫降低,當(dāng)人入睡后,應(yīng)該逐步減小轉(zhuǎn)速,以免使人感冒。雖然電風(fēng)扇都有調(diào)節(jié)不同檔位的功能,但必須要人手動(dòng)換檔,睡著了就無能為力了,而普遍采用的定時(shí)器關(guān)閉的做法,一方面是定時(shí)時(shí)間長短有限制,一般是一兩個(gè)小時(shí);另一方面可能在一兩個(gè)小時(shí)后氣溫依舊沒有降低很多,而風(fēng)扇就關(guān)閉了,使人在睡夢中熱醒而不得不起床重新翻開風(fēng)扇,增加定時(shí)器時(shí)間,非常麻煩,而且可能屢次定時(shí)后最后一次定時(shí)時(shí)間太長,在溫度降低以后風(fēng)扇依舊繼續(xù)吹風(fēng),使人感冒;第三方面是只有簡單的到了定時(shí)時(shí)間就關(guān)閉風(fēng)扇電源的單一功能,不能滿足氣溫變化對(duì)風(fēng)扇風(fēng)速大小的不同要求。又比方在較大功率的電子產(chǎn)品散熱方面,現(xiàn)在絕大多數(shù)都采用了風(fēng)冷系統(tǒng),利用風(fēng)扇引起空氣流動(dòng),帶走熱量,使電子產(chǎn)品不至于發(fā)熱燒壞。要使電子產(chǎn)品保持較低的溫度,必須用大功率、高轉(zhuǎn)速、大風(fēng)量的風(fēng)扇,而風(fēng)扇的噪音與其功率成正比。如果要低噪音,那么要減小風(fēng)扇轉(zhuǎn)速,又會(huì)引起電子設(shè)備溫度上升,不能兩全其美。為解決上述問題,我們設(shè)計(jì)了這套智能遙控溫控自動(dòng)風(fēng)扇系統(tǒng)。本系統(tǒng)采用高精度集成溫度傳感器,用單片機(jī)控制,能顯示實(shí)時(shí)溫度,根據(jù)溫度用遙控器調(diào)節(jié)風(fēng)速的大小,晚上睡覺時(shí)可以設(shè)置風(fēng)扇的速度和定時(shí)時(shí)間、并且可以設(shè)置最小溫度關(guān)閉風(fēng)扇。智能遙控溫控風(fēng)扇設(shè)計(jì)摘要本設(shè)計(jì)主要介紹了一種智能遙控溫控電風(fēng)扇的設(shè)計(jì)方案。該系統(tǒng)以單片機(jī)為核心,為用戶提供了更智能化的管理。本設(shè)計(jì)采用的溫度智能控制,使風(fēng)扇可以感知環(huán)境的溫度,以調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速,到達(dá)更好的工作效果。用戶可以選擇這種智能調(diào)速的方式。中選擇遙控方式時(shí),用戶可以根據(jù)環(huán)境溫度或自己感受用遙控器調(diào)適風(fēng)速。而定時(shí)工作功能可以讓用戶自己定制風(fēng)扇工作時(shí)間的長短,以提供更人性化的效勞。數(shù)碼管顯示功能使用數(shù)碼管顯示當(dāng)前室溫度,風(fēng)扇工作時(shí)間等參數(shù),美觀大方。關(guān)鍵詞:智能控制、風(fēng)扇、溫控ABSTRACT:Thisdesignintroducesanintelligentremotecontroltemperaturecontrolfandesign.Microcontrollerasthecoreofthesystemtoprovideuserswithmoreintelligentmanagement.Thedesignofintelligentcontrolwithtemperature,sothatfanscansensethetemperatureoftheenvironment,toadjustthefanspeedtoachievebetterworkresults.Userscanchoosethiswayofintelligentspeedcontrol,youcanalsochoosetomanuallysettocontrolspeed.Whenyouselectremotecontrolmode,theusercanfeelthetemperaturewitharemotecontroloradjusttheirspeed.Whenyouselectmanualsettingmode,theremotecontroldoesnotwork.Theregularworkfunctionallowsuserstocustomizetheirownfansthelengthofworkinghourstoprovideamorepersonalizedservice.Digitaldisplayfeaturesadigitalcontroldisplaysthecurrentroomtemperature,currenttime,thefanworkingtimeandotherparameters,elegantappearance.Keyword:Intelligentcontrol,fan,temperaturecontrol目錄TOC\o"1-6"\u引言1摘要2第一章、遙控器電路41.工作原理及組成局部42.紅外發(fā)射53.紅外發(fā)射的編碼方式54.硬件設(shè)計(jì)65.軟件設(shè)計(jì)7第二章、紅外接收電路7第三章、單片機(jī)最小系統(tǒng)和電源電路81、單片機(jī)最小系統(tǒng)82、電源電路9第四章、數(shù)碼管顯示電路和聲響電路101、數(shù)碼管顯示電路102、聲響電路11第五章、溫度采集電路12第六章、電機(jī)控制電路171、控制局部172、風(fēng)類173、工作方式:自動(dòng)控制和遙控兩種方式184、硬件設(shè)計(jì):195、軟件設(shè)計(jì)19附錄1:智能遙控電風(fēng)扇控制器源程序22附錄2:總原理圖36總結(jié)與展望37致謝37參考文獻(xiàn)38第一章、遙控器電路為了能遠(yuǎn)離距的控制電風(fēng)扇,采用了紅外遙控器。通常紅外遙控器由發(fā)射和接收兩局部組成,發(fā)射局部由單片機(jī)89C2051等構(gòu)成。接收局部裝在電風(fēng)扇的控制器內(nèi),由89C51等構(gòu)成,如圖1.1所示。圖1.1紅外線系統(tǒng)遙控框圖1.工作原理及組成局部(1)CPU采用AT89C2051單片機(jī),AT89C2051的功能:和MCS-8051產(chǎn)品兼容、2KB可重編程閃速存儲(chǔ)器、耐久性:1000寫/擦除周期、2.7V~6V的操作范圍、全靜態(tài)操作:0Hz~24MHz、兩級(jí)加密程序存儲(chǔ)器、128×8位內(nèi)部RAM、15根可編程I/O引線、6個(gè)中斷源、可編程串行UART通道、直接LED驅(qū)動(dòng)輸出、片內(nèi)模擬比擬器、低耗空載和掉電方式?!?〕電源采用4節(jié)7號(hào)電池來提供電源,并用一個(gè)二極管〔IN4148〕進(jìn)行降壓?!?〕調(diào)制局部:采用CD40106進(jìn)行緩沖放大并整形.發(fā)送的數(shù)字信號(hào)與38K的載波進(jìn)行相與,將其調(diào)制在一起,整形并緩沖放大,經(jīng)8050進(jìn)行放大驅(qū)動(dòng)紅外發(fā)射管,使其發(fā)射紅外光。(4)紅外發(fā)射方原理見圖如圖1.2所示。鍵盤鍵盤38KHz載波發(fā)生器編碼調(diào)制紅外發(fā)射圖1.2遙控器原理框圖2.紅外發(fā)射〔1〕發(fā)射局部包括鍵盤矩陣、編碼調(diào)制、紅外發(fā)送器。使用89C2051芯片將按鍵信號(hào)調(diào)制在38KHz的載波信號(hào)上通過三極管放大后發(fā)射出去。紅外編碼為:全碼=引導(dǎo)碼+系統(tǒng)碼+系統(tǒng)反碼+數(shù)據(jù)碼+數(shù)據(jù)反碼。89C2051的P2口構(gòu)成矩陣式鍵盤,用T1產(chǎn)生定時(shí)中斷,驅(qū)動(dòng)P3.1產(chǎn)生一個(gè)38K的方波,作為紅外線的調(diào)制基波。將發(fā)送的數(shù)據(jù)和P3.0進(jìn)行邏輯與后,經(jīng)過40106整形,用三極管驅(qū)動(dòng)紅外發(fā)射管發(fā)射。(2)按鍵功能K1:低檔、中檔、高檔;鍵值為01HK2彩燈:鍵值為02HK3:自然風(fēng)、睡眠風(fēng)、正常風(fēng)鍵;值為03HK4定時(shí);鍵值為04HK5開/關(guān)機(jī);鍵值為05H(3)當(dāng)無鍵按下時(shí),延時(shí)10秒后進(jìn)入待機(jī)狀態(tài),系統(tǒng)處于低功耗模式。當(dāng)有按鍵按下時(shí),INT0中斷產(chǎn)生中斷,同時(shí)喚醒CPU進(jìn)行工作狀態(tài)。3.紅外發(fā)射的編碼方式遙控發(fā)射器專用芯片很多,根據(jù)編碼格式可以分成兩大類,這里我們以運(yùn)用比擬廣泛,解碼比擬容易的一類來加以說明,現(xiàn)以日本NEC的uPD6121G組成發(fā)射電路為例說明編碼原理。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:(1)采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,到達(dá)降低電源功耗的目的。然后再通過紅外發(fā)射二極管發(fā)射。(2)遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶識(shí)別碼固定為十六進(jìn)制0FFH;后16位為8位操作碼〔功能碼〕及其反碼。(3)遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1(4)其相關(guān)的波形圖如圖1.3所示:圖1.3遙控編碼4.硬件設(shè)計(jì)硬件設(shè)計(jì)見電路原理圖如圖1.4。圖1.4遙控器電路原理圖5.軟件設(shè)計(jì)(1)采用中斷的處理程序完成整個(gè)系統(tǒng)的操作,INT0中斷處理完成鍵盤掃描以及發(fā)送。(2)程序流程圖如圖1.5:開始初始化開始初始化延時(shí)10秒主程序有鍵閉合時(shí)進(jìn)入中斷系統(tǒng)進(jìn)入待機(jī)模式鍵盤中斷處理程序讀列線有鍵閉合讀行數(shù)有鍵閉合延時(shí)消抖動(dòng)發(fā)送RETI存鍵值取按鍵編碼yesYESYESNONO圖1.5遙控器軟件流程圖第二章、紅外接收電路紅外接收電路采用紅外HS0038接收頭,HS0038黑色環(huán)氧樹脂封裝,不受日光、熒光燈等光源干擾,內(nèi)附磁屏蔽,功耗低,靈敏度高。在用小功率發(fā)射管發(fā)射信號(hào)情況下,其接收距離可達(dá)35m。它能與TTL、COMS電路兼容。HS0038為直立側(cè)面收光型。它接收紅外信號(hào)頻率為38kHz,周期約26μs,三個(gè)管腳分別是地、+5V電源、解調(diào)信號(hào)輸出端。紅外接收電路一體化的紅外接收裝置將遙控信號(hào)的接收、放大、檢波、整形集于一身,并且輸出可以讓單片機(jī)識(shí)別的TTL信號(hào),這樣大大簡化了接收電路的復(fù)雜程度和電路的設(shè)計(jì)工作,如圖2所示。圖2紅外接收電路第三章、單片機(jī)最小系統(tǒng)和電源電路1、單片機(jī)最小系統(tǒng)AT89C52是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器〔FPEROM〕256B片內(nèi)RAM的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案電路圖如圖3.1所示。管腳功能:RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),那么在此期間外部程序存儲(chǔ)器〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。圖3.1單片機(jī)最小系統(tǒng)圖2、電源電路電源電路采用LM7805集成穩(wěn)壓器作為穩(wěn)壓器件,LM7805是三端正電源穩(wěn)壓電路,它的封裝形式是T0-220。由于內(nèi)部電流的限制,以及過熱保護(hù)和平安工作區(qū)的保護(hù),使他根本上不會(huì)損壞。如果能夠提過足夠的散熱片,它就能夠提供大于1.5A以上的電流。采用用典型接法,220V電源整流濾波后送入LM7805穩(wěn)壓,在輸出端接一個(gè)470U和0.1U電容進(jìn)一步濾除紋波,得到5V穩(wěn)壓電源如圖3.2所示。圖3.2電源電路第四章、數(shù)碼管顯示電路和聲響電路1、數(shù)碼管顯示電路顯示局部包括如下列圖5:5個(gè)八段〔共陽〕數(shù)碼管、PNP型三極管、電阻等。其連接方式如下:應(yīng)用單片機(jī)P0口連接八段數(shù)碼管,用P1口的P1.0—P1.4五個(gè)端口作為數(shù)碼管的片選信號(hào)輸出端口,其中要用8550〔PNP型〕三極管做驅(qū)動(dòng)。又因?yàn)镻0口做I/O口時(shí)要加上拉電阻,所以我們給P0各位各加一個(gè)10K的電阻到電源。為了防止燒壞數(shù)碼管,所以給數(shù)碼管各段各加一個(gè)2.2K歐姆的限流電阻。要顯示的數(shù)據(jù)通過P0口送給數(shù)碼管顯示,通過P1口的P1.0—P1.4五個(gè)端口分別對(duì)數(shù)碼管進(jìn)行位選,事實(shí)上數(shù)碼管是間斷被點(diǎn)亮的,只是其間斷時(shí)間十分短,掃描周期在20ms以下,利用人眼視覺暫留,我們根本看不出它們的閃爍電路圖如圖4.1所示流程圖如圖4.2所示。圖4.1顯示電路取掃描字入口取掃描字入口取顯示數(shù)據(jù)查段碼表從P0口輸出小數(shù)點(diǎn)處理延時(shí)指向下一位?P0,P1復(fù)位返回NY2、聲響電路聲響電路在每按下按鍵時(shí)會(huì)響一聲,當(dāng)沒有把DS18B20接入到電路中時(shí),單片機(jī)就會(huì)通過蜂鳴器發(fā)出報(bào)警聲音電路圖如圖4.3所示。圖4.3聲響電路第五章、溫度采集電路溫度采集電路主要是由DS18B20構(gòu)成,它可以把采集的溫度數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制數(shù),經(jīng)過單片機(jī)處理后輸出送數(shù)碼管顯示。DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改良型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:●獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;●多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;●無須外部器件;●可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;●零待機(jī)功耗;●溫度以9或12位數(shù)字;●用戶可定義報(bào)警設(shè)置;●報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度〔溫度報(bào)警條件〕的器件;●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;DS18B20采用3腳PR-35封裝或8腳SOIC封裝電路圖如圖5.1所示。圖5.1DS18B20封裝圖6464位ROM和一線端口存儲(chǔ)和控制邏輯高速暫存器8位CRC生成器供電方式選擇配置存放器低溫觸發(fā)器TL高溫觸發(fā)器TH溫度傳感器INTERNALVDDVDD圖5.2DS18B20的內(nèi)部結(jié)構(gòu)DS18B20的內(nèi)部結(jié)構(gòu)圖如圖5.2所示。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器。頭2個(gè)字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置存放器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)存放器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。DS18B20溫度轉(zhuǎn)換的時(shí)間比擬長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存RAM的第6、7、8字節(jié)保存未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃當(dāng)符號(hào)位S=0時(shí),表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。R1R0分辨率/位溫度最大轉(zhuǎn)向時(shí)間/ms00993.750110187.510113751112750表1DS18B20溫度轉(zhuǎn)換時(shí)間表DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比擬。假設(shè)T>TH或T<TL,那么將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測量溫度并進(jìn)行報(bào)警搜索。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼〔CRC〕。主機(jī)ROM的前56位來計(jì)算CRC值,并和存入DS18B20的CRC值作比擬,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門翻開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度存放器中,計(jì)數(shù)器1和溫度存放器被預(yù)置在-55電路圖如圖5.3所示,復(fù)位圖如圖5.4所示。圖5.3溫度采集電路入口總線=0?60us到?總線=0?總線拉高返回NYNYYN圖5.4DS18B20復(fù)位與檢測子程序第六章、電機(jī)控制電路1、控制局部如圖6.1所示。圖6.1電機(jī)引線圖1小時(shí)1小時(shí)2小時(shí)4小時(shí)30分鐘圖6.2定時(shí)時(shí)循環(huán)圖2、風(fēng)類自然風(fēng)的處理流程:弱風(fēng)6秒弱風(fēng)6秒中風(fēng)6秒強(qiáng)風(fēng)6秒停6秒圖6.3自然風(fēng)的循環(huán)圖睡眠風(fēng)的處理流程:弱風(fēng)6秒弱風(fēng)6秒中風(fēng)6秒強(qiáng)風(fēng)6秒停6秒高風(fēng)6秒停6秒圖6.4自然風(fēng)的循環(huán)圖正常風(fēng)的處理流程:弱風(fēng)弱風(fēng)10秒中風(fēng)10秒強(qiáng)風(fēng)10秒圖6.5正常風(fēng)循環(huán)3、工作方式:自動(dòng)控制和遙控兩種方式該電路為控制風(fēng)速的自動(dòng)控制與遙控兩種方式之溫控模式時(shí)的控制電路,中選擇為自動(dòng)控制時(shí),單片機(jī)默認(rèn)為弱風(fēng),當(dāng)當(dāng)前溫度低于所設(shè)的溫度下限TL時(shí)繼電器1吸合,關(guān)閉風(fēng)扇,當(dāng)當(dāng)前溫度高于所設(shè)的溫度上限時(shí)繼電器2吸合,切換到強(qiáng)風(fēng)檔,主要方便與晚上睡覺時(shí)使用。當(dāng)采用遙控方式時(shí),人們可以根據(jù)自身感受采用遙控器調(diào)節(jié)風(fēng)速和風(fēng)類。4、硬件設(shè)計(jì)電路圖如圖6.6所示:圖6.6電風(fēng)扇控制板電路原理圖5、軟件設(shè)計(jì)(1)紅外遙控輸入在P3.0。單片機(jī)收到一個(gè)中斷后,開始計(jì)數(shù),然后在主程序有一個(gè)判斷子程序,首先判斷是否>8MS,是否有高電平,再判斷是否>4MS的低電平,然后再判斷是否是0或1,循環(huán)32次完成,32個(gè)碼的接收和存儲(chǔ)。(2)程序流程圖如圖6.7所示。主程序主程序檢測中斷標(biāo)志位1標(biāo)志位處理程序開始初始化檢測中斷標(biāo)志位2NOYESYES圖6.7控制板主程序流程圖標(biāo)志位處理程序標(biāo)志位處理程序鍵值與〔04H〕比擬鍵值與〔05H〕比擬去除標(biāo)志位鍵值與〔01H〕比擬鍵值與〔02H〕比擬鍵值與〔03H〕比擬返回主程序處理K5子程序鍵值與〔05H〕比擬處理K1子程序處理K2子程序處理K3子程序處理K4子程序不等不等不等相等相等相等相等相等圖6.8鍵值處理流程入口入口C1=0,C2=0C1=0,C2=0C1=1,C2=1返回YYYYNNN圖6.9實(shí)時(shí)溫度值與設(shè)定TH,TL值比擬及超、欠溫處理子程序流程圖附錄1:智能遙控電風(fēng)扇控制器源程序#include"AT89x051.H"#defineucharunsignedchar#defineuintunsignedint#defineb10xe200#defineb20xe210#defineb30xe208#defineb40xe218#defineb50xe204#defineb60xe214#defineb70xe20c #defineb80xe21c #defineb90xe280 #defineon_off0xe240 #definech_a0xe250 #definech_soxe248 #definetime0xe2e8 #definelouver0xe24c #definecount_num500 #definetime1_num18000#definetime2_num100#definebellP3_4#definec_f0xd4 #definec_h0xce #definec_g0x81uinttime1=time1_num; uchartime2=time2_num;uintcount=count_num; ucharsort=3; uchardis_bit=0; ucharcode_length=16;uchardatadis[4]={0x02,0x02,0x00,0xff}; uchartemperature;uintcode_t=0;ucharcode1=0;ucharcode2=0;bitbdatacode_start=0; bitbdatabutton=0; bitbdatai_flag=0; bitbdatat_flag=0;bitbdatabt=0; bitbdataoff=0; ucharcodeTAB[11]={0x5f,0x0a,0x9d,0x9b,0xca,0xd3,0xd7,0x5a,0xdf,0xdb,0x75};voidtimer_0(void);voiddis_t(void); voiddis_s(void); voiddis_h(void); voiddis_off(void); voiddelay(uintt); uchard_code(uintt); ucharbegin=0; voidc_code(void); voidoff_time(void); voidmeasure_temperature(void);voidkey_time(void); voidsort_key(void);voidmov_p1(uchart0,t1,t2);voidbutton_process(void); //********定時(shí)關(guān)機(jī)*********voidoff_time(void) { if(off==1) { if(time1--==0) { time2--; time1=time1_num; } if(time2==0) { dis[3]=dis[3]-1; time2=time2_num; } if(dis[3]==0) { code_t=on_off; //關(guān)機(jī) c_code(); } } }//********定時(shí)器0中斷*********voidtimer0()interrupt1using2 { off_time(); if(dis_bit==0&&t_flag==0) { key_time(); sort_key(); } switch(sort) { case0: if(count!=0) { mov_p1(dis[0],dis[1],TAB[10]); count--; } break; case1: if(count!=0) { mov_p1(c_f,c_g,TAB[dis[2]]); count--; } break; case2: if(count!=0) { dis_h(); count--; } break; case3: mov_p1(0x5f,c_f,c_f); default: break; } timer_0(); if(count==0) { P3_0=P3_1=P3_5=1; if(i_flag==0&&t_flag==0) measure_temperature(); count=count_num; sort=(sort&0x03)+1; if(sort>=3) sort=0; } }//***********定時(shí)按鈕************voidkey_time(void) { biti=P1_2; P1_2=1; if(P1_2==0) { delay(50); if(P1_2==0) { bell=0; delay(100); bell=1; while(P1_2==0) {;} if(dis[3]==0xff) { dis[3]=1; off=0; } else { if(dis[3]<9) { dis[3]=dis[3]+1; off=0; } else off=1; } sort=2; code_t=time; c_code(); } } P1_2=i; i_flag=0; }//***********換檔按鈕************voidsort_key(void) { biti=P1_1; P1_1=1; if(P1_1==0) { delay(50); if(P1_1==0) { button=1; bell=0; delay(200); bell=1; while(P1_1==0) {;} if(dis[2]<9) { dis[2]=dis[2]+1; code2=dis[2]; } else { dis[2]=0; code2=10; } delay(100); sort=1; count=5000; } } P1_1=i; i_flag=0; }//********定時(shí)器1中斷測溫************voidtimer1()interrupt3using3 { uinttemp; TR0=0; //計(jì)數(shù)停 TR1=0; //定時(shí)停 temp=TH0*256+TL0; //取溫度值 temperature=(7000-temp)/11; //計(jì)算溫度 dis[0]=TAB[temperature/10]; dis[1]=TAB[temperature%10]; IE0=0; t_flag=0; timer_0(); EX0=1; }//***********鍵號(hào)轉(zhuǎn)換************voidc_code(void) { bitbdatai=0; switch(code_t) { caseb1: code1=1; break; caseb2: code1=2; break; caseb3: code1=3; break; caseb4: code1=4; break; caseon_off: code1=5; dis[3]=0xff; button=0; i_flag=0; bt=0; off=0; time1=time1_num; time2=time2_num; count=count_num; break; casetime: off=~off; if(off==0) dis[3]=0xff; i=1; bt=1; count=5000; sort=2; TF0=1; break; caselouver: P3_3=~P3_3; code1=code2; break; default: code1=0; break; } if(bt==1&&i==0) { if(code1<9) { dis[3]=code1; bt=0; } } else if(i==0) { code2=code1; count=5000; if(code1==10) { dis[2]=0; sort=3; } else { dis[2]=code1; sort=1; } TF0=1; } }//**********判斷代碼************uchard_code(uintt) { if(t<=0x220&&t>=0x190) return0; else { if(t<=0x430&&t>=0x390) return1; else return0xff; } }//***********接收代碼中斷************voidreceive_code()interrupt0using1 { uinttemp,i; ET0=0; i_flag=1; if(TR1==0) { TR1=0; TMOD=0x11; TH1=TL1=0; TR1=code_start=1; } else { TR1=code_start=0; temp=TH1*256+TL1; if((d_code(temp)==0||d_code(temp)==1)&&code_length!=0) { TH1=TL1=0; TR1=code_start=1; code_t=(code_t<<1)+d_code(temp); code_length--; } else { if(code_length==0&&((code_t&0xff00)==0xe200)) { code_length=16; bell=0; c_code(); for(i=0;i<6000;i++) { EX0=0; P3_0=P3_1=P3_5=1; if(i>800) bell=1; IE0=0; if(P3_2==0) i--; button=1; } i_flag=0; } else { code_length=16; for(i=0;i<6000;i++) { EX0=0; IE0=0; if(P3_2==0) i--; i_flag=0; //恢復(fù)執(zhí)行其它任務(wù) } } timer_0(); EX0=1; } } }//***********顯示代碼送P1口************voidmov_p1(uchart0,t1,t2) { switch(dis_bit) { case0: P1=t0; P3_1=P3_5=1; P3_0=0; dis_bit=1; break; case1: P1=t1; P3_0=P3_5=1; P3_1=0; dis_bit=2; break; case2: P1=t2; P3_1=P3_0=1; P3_5=0; dis_bit=0; break; } }//***********顯示定時(shí)時(shí)間************voiddis_h(void) { switch(dis_bit) { case0: P1=c_h; //"H" P3_1=P3_5=1; P3_0=0; dis_bit=1; break; case1: P1=c_g; //"=" P3_0=P3_5=1; P3_1=0; dis_bit=2; break; case2: if(dis[3]>10) P1=TAB[0]; else P1=TAB[dis[3]]; P3_1=P3_0=1; P3_5=0; dis_bit=0; break; } }//********定時(shí)器0************voidtimer_0(void) { TMOD=0x01; TR0=0; TH0=0xfc;TL0=0x55; ET0=1; TR0=1; }//***********延時(shí)************voiddelay(uintt){ uinti,j; for(i=0;i<t;i++) if(button==0) for(j=0;j<10;j++);}//***********測溫度************voidmeasure_temperature(void) { t_flag=1; ET1=1; EX0=0; ET0=0; TMOD=0x15; //T0計(jì)數(shù)方式1,T1定時(shí)方式1 TH1=0x3c;TL1=0xb0; //置初值100ms TH0=0x00;TL0=0x00; //清零 TR0=1; //計(jì)數(shù)開始 TR1=1; }//***********風(fēng)速************voids1(void) { P3_7=0; }voids2(void) { P3_7=0; delay(230); P3_7=1; delay(25); }voids3(void) { P3_7=0; delay(180); P3_7=1; delay(40); }voids4(void) { P3_7=0; delay(130); P3_7=1; delay(40); }voids5(void) { P3_7=0; delay(90); P3_7=1; delay(40); }voidgust(void) { uchari,j; if(button==1) j=255; else j=0; for(i=j;i<50;i++) s6(); P3_7=0; delay(5000); for(i=j;i<25;i++) s2(); for(i=j;i<35;i++) s3(); for(i=j;i<25;i++) s5(); delay(6000); }voidnatural(void) { uchari; ucharcode*p; for(i=0;i<100;i++) { if(button==0) { P3_7=0; delay((*p++)*8); P3_7=1; if(*p<10) delay(7000); else delay(300); } } }voidautomation(void) { if(temperature<=29) s6(); else if(temperature<=30) gust(); else if(temperature==31) s5(); else if(temperature==32) s4(); else if(temperature<=33) s3(); else if(temperature==34) s2(); else s1(); }//***********按鍵處理************voidbutton_process(void) { button=0; switch(code2) { case1: s1(); break; case2: s2(); break; case3: s3(); break; cas

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論