基于stc51系列單片機的紅外遙控風扇系統(tǒng)設計學士學位論文_第1頁
基于stc51系列單片機的紅外遙控風扇系統(tǒng)設計學士學位論文_第2頁
基于stc51系列單片機的紅外遙控風扇系統(tǒng)設計學士學位論文_第3頁
基于stc51系列單片機的紅外遙控風扇系統(tǒng)設計學士學位論文_第4頁
基于stc51系列單片機的紅外遙控風扇系統(tǒng)設計學士學位論文_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

青島大學本科生畢業(yè)論文(設計)復位電路51系列單片機的復位引腳是9腳,當此引腳連接高電平超過兩個機器周期時,即可產(chǎn)生復位動作。為了保證使單片機所正在進行的應用程序系統(tǒng)準確地功能進行復位,因此在設計本設計實驗所使用的復位電路進行復位時,通常的做法是使RST引腳始終保持在的高電平的時間要10ms以上。復位電路有上電復位和手動復位兩種,本例采用上電復位的形式。電路如圖2.5所示。圖2.5單片機最小系統(tǒng)2.3紅外發(fā)射芯片TC901紅外發(fā)射芯片TC9012是一款專門用于日本東芝公司所生產(chǎn)的紅外遙控系統(tǒng)的專用紅外發(fā)射集成電路。該款芯片在使用中可外以對外進行連接32個按鍵,可以提供8種可供用戶選擇的用戶編碼,與此同時,其按鍵還可以具備雙重按鍵的功能。紅外發(fā)射芯片TC9012的所應用的各個引腳的功能設置和所應用的外圍應用線路都進行比較高度的優(yōu)化,其目的是為了配合PCB的電氣布線和價格成本低廉的要求。2.3.1TC9012的引腳TC9012的引腳圖如圖2.6所示,其引腳功能定義見表2.2。圖2.6TC9012的引腳圖表2.2TC9012引腳功能引腳號名稱類型描述1-4KI0-KI3IN4位輸入引腳,用于鍵盤掃描輸入(平時為低電平,內(nèi)置下拉電阻)5REMOUT帶載波的遙控信號輸出6VDD電源正端(2-4.0V),3V(典型)7NC空引腳8OSC0OUT晶振輸出9OSC1IN晶振輸入10VSS電源負端(接地)11LMPOUT指示燈輸出12-19KO0-KO7OUT8位輸出引腳,用于鍵盤掃描輸出20SELIN用戶編碼選擇跳線(平時為高電平,內(nèi)置下拉電阻)2.3.2TC9012的編碼在本設計實驗所使用的TC9012芯片的一幀傳輸數(shù)據(jù)中,總共是含有了32位碼(兩次8位用戶碼、8位數(shù)據(jù)碼及其反碼),發(fā)射碼的格式如圖2.7所示。圖2.7TC9012的發(fā)射碼格式S0S1S2S3S4S5S6S7S0S1S2S3S4S5S6S7D0D1D2D3D4D5D6D7012345678引導碼用戶碼用戶碼數(shù)據(jù)碼數(shù)據(jù)碼的反碼TC9012共有8位用戶碼,其中S0、S1和S2由SEL與KO0-KO7的連接來確定,S3固定為“1”,S4、S5、S6和S7固定為“0”。用戶碼一共有8種,利用SEL引腳與KO0-KO7中的任意引腳相連接來進行選擇。TC9012的用戶碼設置見表2.3。表2.3TC9012的用戶碼設置與SEL相連用戶碼(S2S1S0)與SEL相連用戶碼(S2S1S0)KO0000KO4100KO1001KO5101KO2010KO6110KO3011KO7111紅外發(fā)射芯片TC9012最主要的功能設置是設置了4個通過按鍵進行的功能輸入端KI0-KI3和8個通過按鍵進行的功能輸出端KO0-KO7,從而形成了一個矩陣鍵盤,而這個矩陣鍵盤將共有4×8=32個功能按鍵,由于是在同一系統(tǒng)下,所以這32個功能按鍵均按照同一方式進行編碼,以實現(xiàn)特定的功能。其使用方法是:若將32組按鍵中其中一個按鍵按下且保持按下的狀態(tài),那么所產(chǎn)生的效果就是將一幀碼發(fā)完之后然后會不斷的發(fā)射固定的重復碼,而如果此時松開該枚按鍵,那么所產(chǎn)生的效果就是系統(tǒng)在該幀碼發(fā)完后會成功進入使用的低功耗模式。用戶碼以及鍵數(shù)據(jù)碼的發(fā)送順序所應用的規(guī)律均是低位在前,高位在后。2.3.3TC9012的工作模式紅外發(fā)射芯片TC9012有兩種比較常用的工作模式,這兩種模式分別是正常工作模式和低功耗模式。在實際實驗操作中,如果沒有任何按鍵被按下,那么實驗中的振蕩器所處的狀態(tài)是停振的,這樣的效果是可以明顯的降低功耗。在本電路中設計了消抖功能,如果在掃描過程中檢測到按鍵按下的的時間小于32毫秒,則被認為是按鍵的抖動,而不是正常的按鍵,所以沒有任何碼發(fā)出,隨之產(chǎn)生的效果是振蕩器會停振。紅外發(fā)射芯片TC9012所使用455KHz的晶振,與此同時,芯片采用的是可以進行脈寬調(diào)制的串行碼,定義產(chǎn)生的脈寬幅度為0.565毫秒、而兩個脈寬之間的間隔為0.56毫秒、總共的脈寬周期為1.125毫秒的組合表示二進制的“0”;定義產(chǎn)生的脈寬幅度為0.565毫秒、而兩個脈寬之間的間隔為1.685毫秒、總共的脈寬周期為2.25毫秒的組合表示二進制的“1”。2.4紅外接收頭HS0038一體化的紅外射線接收頭HS0038可以接收遙控信號、放大遙控信號、檢波遙控信號和整形遙控信號,而且在與單片機相配合情況下可以輸出能夠讓單片機識別的信號——TTL信號,這樣做的效果就是明顯簡化了本設計實驗中所使用接收電路的復雜程度以及整個實驗電路的設計工作。紅外一體化接收頭HS0038的外觀如圖2.8所示。圖2.8紅外一體化接收頭HS0038如上圖所示,一體化紅外接受頭芯片HS0038是黑色外殼,使用環(huán)氧樹脂材料進行封裝,這種封裝形式能夠使芯片不受熒光、燈日光等光源的干擾。在本設計實驗中,將會采用用小功率發(fā)射管進行信號的發(fā)射,由此所決定的接收距離大概為35米。HS0038為直立側面收光型。一體化紅外信號接收芯片HS0038所能構接收的紅外信號頻率為38kHz,由此得出其需要的周期為26微妙。如上圖所示,一體化紅外信號接收芯片HS0038共有三個引腳,分別是接地(GND)、+5V電源(Vs)、解調(diào)信號輸出端(OUT)。在進行本設計實驗時,當在遙控器上沒有任何按鍵按下時,對應的紅外發(fā)射二極管將不會發(fā)出紅外信號,此時,遙控信號接收頭所輸出的信號即為輸出信號1。而當在遙控器上有按鍵按下時,輸出信號0和輸出信號1編碼中的高電平經(jīng)遙控信號接收頭導向后所輸出的信號將會是輸出信號0。由于紅外遙控信號接收頭的輸出端與所相連接單片機的中斷引腳相關聯(lián),即相應的引腳的電平為低電平時將會觸發(fā)單片機產(chǎn)生中斷。而單片機在產(chǎn)生中斷時產(chǎn)生的效果是將會使用定時器0開始計時,并且同時通過特定的軟件可以判斷出當前的電平情況和周期和周期的情況,由此獲得的結果是可以得知接收到的數(shù)據(jù)是引導碼還是0或者1。如果接收到的情況是接收到了在一個完整的傳輸周期內(nèi)呈現(xiàn)高電平狀態(tài)時間為4.5毫秒,與此同時,在一個完整周期里維持低電平狀態(tài)的時間也為4.5毫秒,那么藉此所獲得的結論就是認為接收到的就是導引碼,而如果此時的所獲得的計時值是等于1.12毫秒,那么所獲得的結論就是認為接收到的是編碼0,而如果此時所獲得的計時值等于2.25毫秒,那么所獲得的結論就是認為接收到的是編碼1。解碼方法如下:

⑴進行單片機初始化外部中斷0,首先就是把定時器0設定為16位計數(shù)器,而初始值則設定為0。⑵程序第一次進入遙控中斷后,中斷開始計時。⑶通過軟件判斷在第一個周期內(nèi)高電平以及低電平的時間幅度,如果所獲得的計時值與事先預設的前導碼的時間幅度相符,那么直接進入第(4)步,而如果獲得的計時值與事先預設的不符,則就將會進入第(6)步。⑷繼續(xù)接收前導碼之后的地址碼兩次(16位)數(shù)據(jù)碼(8位)、數(shù)據(jù)反碼(8位)。⑸而當接收完總共的32位數(shù)據(jù)碼時,說明在此時接收完畢了一幀數(shù)據(jù)。此時可停止定時器的計時,并判斷本次接收的是否有效。如果兩次地址碼相同且等于本系統(tǒng)的地址,數(shù)據(jù)碼與數(shù)據(jù)反碼之和等于0xFFH,則接收的本幀數(shù)碼有效。否則丟棄本次接收到的數(shù)據(jù)。⑹接收完畢,初始化本次接收的數(shù)據(jù),準備下一次遙控接收。2.5雙H橋電動機驅動芯片L298NL298N芯片是由ST宏盛公司生產(chǎn)的一種電動機驅動芯片,該芯片可以驅動高電壓、大電流狀態(tài)下的電動機,其實物如圖2.9。圖2.9L298N芯片實物圖如圖2.9所示,雙H橋電機驅動芯片共有15個引腳,其特點主要是:工作電壓高、輸出電流大、額定功率高。在驅動芯片內(nèi)總共設置了兩個H橋的大電流高電壓形式的全橋式驅動器,該芯片的功能是既可以用來驅動直流電動機也可以用來驅動步進電機以及繼電器線圈等感性負載。而在使用L298N芯片驅動電動機,該芯片可以驅動一臺兩相步進電動機或四相步進電動機,也可以驅動兩臺直流電動機。L298采用15引腳的MULTIWATT15(垂直型)封裝,其引腳圖如圖2.10所示,各引腳定義見表2.4。圖2.10L298N的引腳圖表2.4L298N引腳說明引腳號符號引腳說明引腳號符號引腳說明1ISENA電流反饋A9VSS邏輯電源電壓2OUT1輸出引腳110IN3輸入引腳33OUT2輸出引腳211ENB使能引腳B4VS電源電壓12IN4輸入引腳45IN1輸入引腳113OUT3輸出引腳36ENA使能引腳A14OUT4輸出引腳47IN2輸入引腳215ISENB電流反饋B8GND接地引腳VSS所提供的電壓最小為4.5伏,最大可達36伏;VS最大電壓值也是36伏。但是經(jīng)過一系列的實驗比較,VS電壓應該比VSS電壓高,否則有時會出現(xiàn)失控現(xiàn)象。SENSEA、SENSEB為電流反饋引腳,用于電動機的保護,串聯(lián)0.5Ω/2W采樣電阻接地。當L298N控制電動機停止時,電動機由于慣性的作用并不能馬上停下來,還會繼續(xù)轉動。這是電動機就相當于“發(fā)電機”,產(chǎn)生較高的反向電壓,若沒有渠道將它釋放出來,它就自己找渠道反向放給驅動器芯片,于是L298N就會瞬間燒壞。這樣就需要增加續(xù)流二極管,接在L298N的輸出端與電源(地)之間,用來釋放反向電壓。本實驗的二極管選用快速反應二極管1N5822。2.6直流電動機2.6.1對于直流電動機的基本認識電動機簡稱電機,是使機械能與電能相互轉換的機械,直流電動機把直流電能變成機械能,其實物圖見圖2.11.圖2.11直流電動機直流電機的主要功能是作為執(zhí)行機電功能的動力元器件,其內(nèi)部會存在一個閉合的主磁路。線圈產(chǎn)生的主磁通將會在主磁路中流動,同時會與電動機內(nèi)部的兩個主要電路相交聯(lián),其中的一個電路是通過電磁定律來產(chǎn)生磁通的,稱為勵磁繞組,而另一個電路是對外提供動力的,稱為電樞回路。電動機必然會包括定子和轉子,在直流電機中,勵磁回路作為定子,電樞回路作為轉子。2.6.2直流電動機的基本工作原理下圖2.16是直流動機的工作原理圖。在電刷A和電刷B外接直流電源的情況下,兩個電刷及其與之相連的線圈內(nèi)會產(chǎn)生電流。如果電刷A是連接的外接電源的正極,而電刷B則連接的外接電源的負電位時,那么由此所形成的效果將會是此時與N極磁鐵相近的導體內(nèi)的電流方向是由a指向b,而在在S極范圍內(nèi)導體內(nèi)的電流流向是由c指向d。這樣產(chǎn)生的效果是通電線圈會在磁場中受到電磁力的作用,由于上下兩個導體所在磁場范圍不同,所以兩者所受的會相反。又由于N極和S極所產(chǎn)生的磁場相同的,上下兩個導體又流經(jīng)的相同的電流,所以a這兩條邊所受電磁力的將會是大小相等,方向相反。那么整個線圈就會受力轉動。當線圈繼續(xù)轉動直到轉到磁極的中性面上時,從圖中可以看出,換向器將會與電刷脫離,那么線圈將不再與外接電源相連,所以此時線圈中并未有電流流過,電流為零的情況下即不會在產(chǎn)生電磁力。電磁力為零,也即磁場中的線圈不再受力的作用,但是由于慣性的作用,線圈繼續(xù)轉動。線圈繼續(xù)轉動直到恰好轉過半周的位置上時,這個時候線圈一邊ab邊和線圈一邊cd邊的位置發(fā)生了調(diào)換,也即線圈的一條邊ab轉到了磁極S范圍內(nèi),而線圈的另一條邊cd邊轉到了磁極N的范圍內(nèi),與此同時,此前與電刷相連接的換向器也發(fā)生了調(diào)換,所產(chǎn)生的后果就是線圈內(nèi)流經(jīng)電流的方向也發(fā)生了變化,cd邊中的電流是d流向c,而ab邊中的電流則是從b流向a。所以,整個線圈所受的電磁力的方向依然不變,仍然受力按逆時針方向轉動??梢?,分別處在N極和S極的范圍內(nèi)的導體中的電流總是不變的,因此在其范圍內(nèi)的線圈的受力方向也不發(fā)生變化,這樣線圈就可以按照受力方向不停的旋轉,通過齒輪獲皮帶等機構的轉動,便可以帶動其他機械的工作。圖2.16直流電動機的原理圖從以上的分析可以看出,要使線圈按照一定方向的旋轉,關鍵問題是導體從一個磁極轉到另外一個磁極時,導體中的電流方向也要同時改變煤,而上圖所顯示的換向器和電刷就是完成這一任務的裝置。在直流電機中,換向器和電刷把輸入的直流電變成線圈中的交流電,從而帶動外部裝置一個方向的轉動。這就是直流電動機的基本原理。2.6.3直流電動機的驅動在本設計實驗中,用單片機進行控制驅動直流電動機時,不能直接相連,需要增加驅動電路來進行電機的驅動,這樣將會給直流電動機提供足夠大的驅動電流。根據(jù)不同的直流電機,選擇的驅動電流也不同。因此,我們根據(jù)實際需求來選擇合適的驅動電路。一般有三種驅動電路:三極管電流放大驅動電路,電機專用驅動模塊(如本實驗所使用的L298N)和達林頓驅動器。如果是驅動單個電機,并且電機的驅動電流不大時,可以使用三極管搭建驅動電路,但是這樣的電路連接比較復雜,所以本實驗未采用此種方式。如果所需要的驅動電流較大,可以直接選用電機驅動模塊,本實驗即選用的雙H橋電動機驅動芯片L298N,不僅能為本實驗所使用的電機提供較大的驅動電流,而且接口簡單,操作方便,較易使用,因此本實驗采用此種電機的驅動方式。本設計所應用的原理分析3.1紅外通信技術介紹本設計的信號發(fā)射與接收是使用的紅外通信實現(xiàn)的,即通過紅外發(fā)射芯片TC9012發(fā)射紅外信號,而通過紅外接收頭HS0038進行接收并解碼分析。而紅外通信,就是通過紅外線(波長范圍0.7微米—1毫米)進行傳輸數(shù)據(jù)的一種通信方式。電腦技術發(fā)展的早期,數(shù)據(jù)傳輸都是通過線纜等實物介質完成的,比較麻煩。所以后來就出現(xiàn)了可以明顯提高傳輸效率與質量的紅外通信技術。紅外通信技術實際上就是在兩點之間利用紅外技術進行一定距離以內(nèi)的保密通信和信息轉發(fā)的技術,用于紅外發(fā)射和紅外接收系統(tǒng)的裝置是其基本的結構組成,而由發(fā)射和接收裝置構成的系統(tǒng)稱為紅外通信系統(tǒng)。本設計設定的紅外發(fā)射裝置是紅外發(fā)射芯片TC9012,而設定的紅外接收裝置是紅外接收頭HS0038。一般來講,兩個事物如果傳遞信息進行通信,必然會通過一定的渠道,也即信息通道,而紅外通信所利用的通信信道是950納米近紅外線。紅外通信裝置的信息發(fā)射端將基帶上的二進制信號調(diào)制為一系列脈沖序列串信號,然后通過紅外發(fā)射管發(fā)射已變?yōu)槊}沖序列的紅外信號。紅外通信裝置的信息接收端將接收到的光脈沖轉換為電信號,在經(jīng)過放大濾波等處理后送給解調(diào)電路進行解調(diào),還原為二進制數(shù)字信號后輸出,這樣就完成了一組紅外通信。由于紅外線遙控技術沒有必要具有像無線電遙控技術那樣穿過一系列的障礙物去控制被控對象的能力,因此通常在設計和選擇紅外線的信息發(fā)射和信息接收裝置時,不必像無線電遙控器那樣,發(fā)射器和接收器要有不同的遙控頻率和編碼,所以同類的紅外線發(fā)射器和接收器,因此可以擁有相同的或者是相類似的遙控頻率或者是控制編碼,而不會出現(xiàn)像是無線電遙控通信時所產(chǎn)生的遙控信號“串門”的情況。3.2單片機的定時器中斷3.2.1中斷的基本概念在單片機處理指令的過程中,有些時候會產(chǎn)生中斷。所謂的單片機的中斷是指單片機的中央處理器在處理某一條指令A時,又接到了另外的一條指令B,請求處理器迅速去處理新接到的這條指令(中斷發(fā)生);此時處理器將會暫時停止原來指令的處理(中斷響應),而轉去處理剛剛接到的那條指令(中斷服務);待處理器將新近接到的那條指令處理完畢后,再回到原來接收原指令的地方繼續(xù)處理未完成的原指令的處理(中斷返回),這一過程稱為中斷。其流程圖如圖3.1所示。中斷響應圖3.1單片機中斷過程中斷響應主程序主程序中斷請求中斷請求執(zhí)行主程序執(zhí)行中斷斷點處理程序中斷返回繼續(xù)中斷返回執(zhí)行主程序單片機的CPU之所以會發(fā)生中斷,是因為有中斷源,中斷源意即引起單片機CPU中斷的根源,本設計實驗所使用的51單片機內(nèi)部一共有5個中斷源,分別是:外部中斷0(INT0),外部中斷1(INT1),定時器/計數(shù)器0中斷(T0),定時器/計數(shù)器1中斷(T1),串行口中斷(TX/RX)。3.2.2中斷允許寄存器IE在單片機中,用來控制各個中斷源的打開或關閉的寄存器是中斷允許寄存器IE。IE寄存器的字節(jié)地址為A8H,位地址(由低位到高位)分別是A8H—AFH,各位定義見表3.1。表3.1中斷允許寄存器位序號D7D6D5D4D3D2D1D0位符號EA——ESET1EX1ET0EX0位地址AFH——ACHABHAAHA9HA8H下面分列出各位符號的含義及賦值,為:EA——全局中斷允許位,EA=1,打開全局中斷控制,在此條件下,由各個中斷控制位確定相應中斷的打開或關閉,EA=0,關閉全部中斷;———無效位;ES——串行口中斷允許位,ES=1,打開出串行口中斷,ES=0,關閉出串行口中斷;ET1——定時器/計數(shù)器1中斷允許位,ET1=1,打開T1中斷,ET1=0,關閉T1中斷;EX1——外部中斷1中斷允許位,EX1=1,打開外部中斷1中斷,EX1=1,關閉外部中斷1中斷;ET0——定時器/計數(shù)器0中斷允許位,ET1=1,打開T0中斷,ET1=0,關閉T0中斷;EX0——外部中斷0中斷允許位,EX0=1,打開外部中斷0中斷,EX0=1,關閉外部中斷0中斷。3.2.2定時器/計數(shù)器工作方式寄存器TMOD定時器/計數(shù)器工作方式在特殊功能寄存器中,字節(jié)地址為89H,不能位尋址,TMOD用來確定定時器的工作方式及功能選擇。單片機復位時TMOD全部清0,其各位定義見表3.2。表3.2定時器/計數(shù)器工作方式寄存器TMOD位序號D7D6D5D4D3D2D1D0位符號GATEM1M0GATEM1M0定時器1定時器0由表3.2可知,TMOD的高4設置定時器1,低4設置定時器0,對應4位的含義如下:GATE——門控制位,GATE=0,定時器/計數(shù)器啟動與停止僅受TCON寄存器中的TRX(X=0,1)來控制,GATE=1,定時器/計數(shù)器啟動與停止受TCON寄存器中的TRX(X=0,1)和外部中斷引腳(INT0或INT1)來共同控制;——定時器模式和計數(shù)器模式選擇位,=1,為計數(shù)器模式,=0,為定時器模式;M1M0——工作方式選擇位,每個定時器/計數(shù)器都有4種工作方式,他們由M1M0設定,對應關系如表3.3所示。表3.3定時器/計數(shù)器的4種工作方式M1M0工作方式00方式0,為13位定時器/計數(shù)器01方式1,為16位定時器/計數(shù)器10方式2,8位初值自動重裝的8位定時器/計數(shù)器11方式3,僅適用于T1,分成兩個8位計時器,T1停止計數(shù)3.2.3定時器/計數(shù)器控制寄存器TCON在單片機中,用于控制定時器的啟、停、標志定時器溢出和中斷情況是定時器/計時器控制寄存器TCON,字節(jié)地址為88H,位地址(由低位到高位)分別是88H—8FH,其各位定義如表3.4。表3.4定時器/計數(shù)器控制寄存器TCON位序號D7D6D5D4D3D2D1D0位符號TF1TR1TF0TR0IE1IF0IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTF1—定時器1溢出標志位,當定時器1計滿溢出時,由硬件使TF1置1,并且申請中斷。進入中斷服務程序后,由硬件自動清0當查詢到該位置1后,就需要用軟件清0;TR1—定時器1運行控制位,由軟件清0關閉定時器1,當GATE=1,且INT1為高電平時,TR1置1啟動定時器1,當GATE=0時,TR1置1啟動定時器1;TF0—定時器0溢出標志,其功能及操作方法同TF1;TR0—定時器0運行控制位,其功能及操作方法同TR1;IE1—外部中斷1請求標志;當IT1=0時,為電平觸發(fā)方式,每個機器周期的S5P2采樣INT1引腳,若INT1腳為低電平,則置1,否則IE1清0;當IT1=1時,INT1為跳變延觸發(fā)方式,當?shù)谝粋€機器采樣周期采樣到INT1為低電平時,則IE1=1;表示外部中斷1正在向CPU請求中斷。當CPU響應中斷,轉向中斷服務程序時,該位由硬件清0;IT1—外部中斷1觸發(fā)方式選擇位,IT1=0時,為電平觸發(fā)方式,引腳INT1上低電平有效,IT1=1時,為跳變沿觸發(fā)方式,引腳INT1上的電平從高到低的負跳變有效;IE0—外部中斷0請求標志,其功能及操作方法同IE1;IT0—外部中斷0觸發(fā)方式選擇位,其功能及操作方法同IT!。3.3脈沖寬度調(diào)制PWM(脈沖寬度調(diào)制),是英文“PulseWidthModulation”的縮寫,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中。隨著電子技術的發(fā)展,出現(xiàn)了許多種PWM技術,其中包括:相電壓控制PWM,PWM法、隨機PWM、SPWM法、線電壓控制PWM等。在直流電動機控制中采用的是PWM法,它是把每一脈沖寬度均相等的脈沖作為PWM波形,通過改變脈沖列的周期可以調(diào)頻,改變脈沖的寬度或占空比可以調(diào)壓,采用適當控制方法即可使電壓與頻率協(xié)調(diào)變化??梢酝ㄟ^調(diào)整PWM的周期、PWM的占空比而達到控制電流,進而達到對電動機的轉速進行控制的目的。PWM是一種對模擬信號電平進行數(shù)字編碼的方法。通過高分辨計數(shù)器的使用,方波的占空比被調(diào)制用來對一個具體模擬信號的電平進行編碼。PWM信號仍然是數(shù)字的,因為在給定的任何時刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復脈沖序列被加到模擬負載上去。STC89C51單片機沒有專門的PWM產(chǎn)生模塊,但可以利用STC89C51單片機的定時器與I/O端口產(chǎn)生PWM信號。PWM信號包含兩個參數(shù):PWM信號的頻率和PWM信號的占空比。所以需要兩個定時器,其中一個用于控制PWM信號的頻率,另一個用來控制PWM信號的占空比。具體實現(xiàn)方法:用到兩個定時器,定時器0和定時器1.定時器0用來控制PWM的頻率,工作在模式1下,定時器1用來調(diào)節(jié)占空比,工作在模式2下。查資料得知電動機工作的最佳頻率為1KHz左右。初始化定時器0使其定時時間為1ms。在定時器0的中斷函數(shù)里開啟定時器1同時置位PWM的輸出引腳,在定時器1的中斷函數(shù)里復位PWM的輸出引腳。這樣就可以得到PWM信號了,PWM信號的頻率等于定時器0定時時間的倒數(shù),占空比等于定時器1的定時時間除以定時器2的定時時間。利用STC89C51單片機的定時器產(chǎn)生PWM信號的程序流程圖如圖3.2所示。圖3.2定時器產(chǎn)生PWM信號的程序流程(a)定時器初始化程序(b)定時器0中斷處理程序(c)定時器1處理中斷程序關定時器1重新設定定時器0與定時器1的初值關定時器1重新設定定時器0與定時器1的初值初始化定時器0工作在模式1改變PWM輸出引腳的電平為高改變PWM輸出改變PWM輸出引腳的電平為高改變PWM輸出引腳的電平為低設定時器0定時時間為1ms開定時器1初始化定時器1開定時器1初始化定時器1工作在模式2開定時器中斷開定時器中斷開定時器0硬件設計4.1總體方案設計及框圖首先,是利用紅外信號發(fā)射裝置的芯片TC9012,按下按鍵后將信號調(diào)制后發(fā)射出去,接收端芯片HS0038接收到信號后經(jīng)過譯碼重復出之前的調(diào)制信號并將其發(fā)送給STC51單片機進行處理,從而實現(xiàn)按鍵遠程的功能。然后,利用STC89C51單片機與L298雙H橋專用電動機驅動芯片通信,驅動小型直流電動機,通過調(diào)節(jié)PWM波的占空比實現(xiàn)對電動機轉速的控制。實現(xiàn)按鍵遠程控制電動機轉速的功能。本設計的設計框圖如下,見圖4.1。圖4.1本實驗的實驗框圖紅外接收端發(fā)射端紅外接收端發(fā)射端電動機驅動電路按鍵TC9012PWM輸出STC89C51電動機驅動電路按鍵TC9012PWM輸出STC89C51 4.2發(fā)射電路設計系統(tǒng)發(fā)射電路原理圖如圖4.2所示。圖4.2系統(tǒng)發(fā)射電路原理圖本設計實驗的發(fā)射電路使用的紅外發(fā)射芯片TC9012,使用3V的外接電源,,接到6腳上,使用455KHz的晶振,由8腳和9腳的晶振輸入和晶振輸出端接入,有5腳REM來進行帶載波的信號輸出,由11腳(LMP)連接LED顯示燈、100歐電阻和3伏電源來作為信號發(fā)出的指示燈輸出。而SEL引腳(20腳)與KO0相連,所以用戶碼的選擇即S0、S1、S2、S4、S5、S6、S7分別為0、0、0、1、0、0、0、0,換算成十六進制為08H。按鍵與發(fā)射數(shù)據(jù)對應表見表4.1。表4.1按鍵與發(fā)射數(shù)據(jù)對應表按鍵發(fā)送數(shù)據(jù)K1(一級)08(用戶嗎)08(用戶碼)00(數(shù)據(jù)碼)FF(數(shù)據(jù)碼的反碼)K2(二級)08(用戶嗎)08(用戶碼)01(數(shù)據(jù)碼)FE(數(shù)據(jù)碼的反碼)K3(三級)08(用戶嗎)08(用戶碼)02(數(shù)據(jù)碼)FD(數(shù)據(jù)碼的反碼)K4(四級)08(用戶嗎)08(用戶碼)03(數(shù)據(jù)碼)FC(數(shù)據(jù)碼的反碼)K5(五級)08(用戶嗎)08(用戶碼)04(數(shù)據(jù)碼)FB(數(shù)據(jù)碼的反碼)K6(關閉)08(用戶嗎)08(用戶碼)05(數(shù)據(jù)碼)FA(數(shù)據(jù)碼的反碼) 4.3接收電路設計系統(tǒng)接收電路的原理圖4.3所示。 圖4.3系統(tǒng)接收電路原理圖接收原理電路主要由三部分組成,分別是89C51單片機,紅外接收頭芯片HS0038,和雙H橋電動機驅動芯片L298N以及直流電動機。紅外接收頭芯片HS0038用來接收紅外信號,HS0038一共有三個引腳,其中1引腳接地,2引腳接+5伏電源,而3引腳作為信號輸出引腳將從TC9012接收來的紅外信號送至單片機進行解碼輸出。89C51單片機的閑置引腳處于最小系統(tǒng)下,即31引腳和40引腳(VCC)接5伏外接電源,9引腳(RST復位引腳)連接復位電路,使用上電復位的方式進行復位,在單片機最小系統(tǒng)中使用的是12MHz的晶振,通過18引腳(XTAL1晶振接入端)和19引腳(XTAL2晶振接出端)外接12MHz的晶振。將12引腳(即P3.2接口)作為HS0038芯片的3引腳發(fā)出的信號的接收接口,進而進行解碼,并根據(jù)破解代碼與設定代碼的比較,單片機輸出相應的控制信號,實現(xiàn)紅外遙控功能。雙H橋電動機驅動芯片L298N用來控制電動機的啟、停及速度調(diào)節(jié),9引腳(VSS)接5伏的電源電壓,而4引腳(VS)接512伏的邏輯電源電壓2引腳和3引腳作為輸出引腳外接直流電動機。為了不使電動機由于慣性作用而對L298N產(chǎn)生瞬時的較高的反向使其燒壞,因而在輸出端與地以及輸出端與12伏的外接電源之間接快速反應二極管IN4007作為續(xù)流二極管。L298N是恒壓恒流雙H橋集成電動機芯片,可以同時控制兩個直流電機,因此會有4個輸出引腳,但是本設計實驗只用到了1路H橋來控制一個直流電動機。由于STC89C51單片機沒有專用PWM調(diào)制信號輸出引腳,可以單片機普通I/O口加定時器用來模擬PWM輸出,L298N的ENA(6引腳)與STC89C51單片機的P2.0接口相連,用P2.0接口模擬PWM作為調(diào)制信號。L298N的IN1(5引腳)和IN2(7引腳)分別與STC89C51單片機的P2.2接口和P2.1接口相連接,作為電動機方向控制。電動機控制方向引腳見表4.2。表4.2L298N控制引腳使能邏輯關系ENA(B)IN1(IN3)IN2(IN4)電動機運行情況HHL正轉HLH反轉H同IN2(IN4)同IN1(IN3)快速停止LXX停止軟件設計該系統(tǒng)設計的軟件基于C語言編寫。程序是在KEIL公司集成開發(fā)環(huán)境上設計。實現(xiàn)紅外信號的發(fā)射、接收、解碼、輸出等功能,保證了各個硬件模塊協(xié)調(diào)運行,實現(xiàn)所設計的單片機功能。圖5.1是解碼程序流程圖,上電之后,進行初始化,由接收裝置進行接收數(shù)據(jù),然后判斷是否接收完3個數(shù)據(jù),是的話就發(fā)送應答信號送出顯示,如果不是的話返回繼續(xù)數(shù)據(jù)。這一部分的程序為:while(c++<3);if(redata1[0]==redata1[1]) //地址碼校驗{if(redata1[2]==-remdata[[3])//數(shù)據(jù)碼校驗 { remdata=remdata1[2];//如果數(shù)據(jù)碼校驗通過,則保存到變量remdata }}remout:;其中,redata[4]為定義數(shù)據(jù)的數(shù)組。圖5.2為接收程序總流程圖,單片機上電后,各模塊進入初始化狀態(tài),然后將接收到的紅外數(shù)據(jù)保存至事先定義的變量remdata中,然后對其進行判斷,然后得出相應的速度指令,如判斷remdata是否為0x00,若是則指令風扇為一級轉速,判斷結束后繼續(xù)接收數(shù)據(jù)保存至remdata重新進行判斷。接收數(shù)據(jù)并進行判斷的程序為:while(1){if(redata=0x00)//如果接收到的數(shù)據(jù)碼為0x00 { //即按鍵K1按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=5;;//則一級轉速控制輸出開啟 } else { if(redata=0x01)//如果接收到的數(shù)據(jù)碼為0x01 { //即按鍵K2按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x1f;;//則二級轉速控制輸出開啟 } else { if(redata=0x02)//如果接收到的數(shù)據(jù)碼為0x02 { //即按鍵K3按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x4f;;//則三級轉速控制輸出開啟 } else { if(redata=0x03)//如果接收到的數(shù)據(jù)碼為0x03 { //即按鍵K3按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x6f;;//則四級轉速控制輸出開啟 } else { if(redata=0x04)//如果接收到的數(shù)據(jù)碼為0x04 { //即按鍵K4按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x7f;;//則五級轉速控制輸出開啟,0x7f為Vlaue設定的最大值 } else { if(remdata=0x05)//如果接收的數(shù)據(jù)碼為0x05 { MotorIn1=0; motorIn2=0; Value=0;//則風扇電動機停轉 } } } } } }}} 圖5.1解碼程序流程圖5.2接收程序總流程開始開始開始開始初始化初始化初始化初始化接收紅外數(shù)據(jù)接收紅外數(shù)據(jù)保存至remdataRemdata是否為0x00?Remdata是否為0x00?風扇一級轉速風扇一級轉速接收數(shù)據(jù)是是否接收完3個數(shù)據(jù)?否否是否接收完3個數(shù)據(jù)?Remdata是否為0x01?Remdata是否為0x01?風扇二級轉速風扇二級轉速否是否Remdata是否為0x02?Remdata是否為0x02?風扇三級轉速發(fā)送應答信號風扇三級轉速發(fā)送應答信號否送出顯示送出顯示否 Remdata是否為0x03?Remdata是否為0x03?風扇四級轉速風扇四級轉速否Remdata是否為0x04?Remdata是否為0x04?風扇六級轉速Remdata是否為0x05?風扇五級轉速是風扇六級轉速Remdata是否為0x05?風扇五級轉速否是第6章系統(tǒng)測試為了保證設計的系統(tǒng)能夠正常的進行工作,對系統(tǒng)各個模塊進行測試,各系統(tǒng)模塊正常工作后,測試整個系統(tǒng)各模塊協(xié)調(diào)工作性能。6.1測試工具直流穩(wěn)壓電源、普通及發(fā)光二極管、示波器等。6.2各功能模塊的測試1、STC89C51單片機的最小系統(tǒng)板測試可正常工作,單片機可進行編程與仿真。系統(tǒng)電源供電測試端子測試為3.3V,電源指示燈工作。編程測試外部晶振,程序正常運行,示波器觀測32.768KH晶振兩端振蕩波形正常。復位按鍵按下,單片機能夠正常復位。單片機最小系統(tǒng)板工作正常。2、紅外一體化接收頭及紅外發(fā)射裝置的測試可利用圖6.1所示的電路進行,在HS0038的電源端與信號輸出端之間串聯(lián)一只普通二極管和發(fā)光二極管,再配上規(guī)定的外接電源(+5伏),當手拿含TC9012芯片的遙控器對著接收頭按任意鍵時,發(fā)光二極管會閃爍,說明紅外接收頭和遙控器工作都正常,如果發(fā)光二極管不閃爍發(fā)光,說明紅外接收頭和遙控器至少有一個損壞。圖6.1HS0038測試圖3、6.3模塊軟件測試及系統(tǒng)測試將整個系統(tǒng)各硬件模塊測試完畢后,進行模塊軟件測試,即需要編寫各模塊驅動程序供系統(tǒng)編程時使用。模塊軟件測試完畢后,完整功能測試。6.4完整程序功能測試說明 系統(tǒng)的完整程序測試主要步驟為:將本系統(tǒng)設計進行安裝調(diào)試,待上電正常后進入開機程序,系統(tǒng)檢測各個硬件模塊的工作是否正常,若正常后開始執(zhí)行主程序。首先,主程序開始進行各模塊初始化,初始化完成后進入外部中斷0,用來解碼數(shù)據(jù),進行判斷,之后進入定時器1調(diào)節(jié)占空比,之后進行數(shù)據(jù)的接收,各項測試系統(tǒng)均能正常執(zhí)行。小型紅外遙控風扇系統(tǒng)測試通過。結束語本系統(tǒng)設計是采用STC的8位51系列單片機STC89C51實現(xiàn)系統(tǒng)的設計,將由紅外裝置控制的風扇作為未來智能家居集成化控制的一次嘗試。文中主要介紹了照明控制系統(tǒng)各個模塊的主要裝置以及所應用的原理,硬件設計以及軟件實現(xiàn)流程等。經(jīng)過系統(tǒng)測試和調(diào)試,風扇能夠實現(xiàn)遙控器的控制。按下遙控器的K1鍵之后,風扇啟動,并成一級轉速轉動。接著按下將遙控器的K2鍵之后,風扇成二級轉速轉動,接著按下將遙控器的K3鍵之后,風扇成三級轉速轉動,接著按下將遙控器的K4鍵之后,風扇成四級轉速轉動,接著按下將遙控器的K5鍵之后,風扇成5級轉速轉動,然后按下K6鍵則風扇停止轉動,再次按鍵則風扇再次轉動。整個電路的裝置簡便易得,電源使用外接的5伏電源。本次設計能夠基本滿足要求,經(jīng)過實際測試應用數(shù)月后,得到使用者的肯定與贊許,但是有些方面還要改進,比如本設計所用的驅動電機的模塊是L298N,這是一個雙H橋的電機驅動芯片,即可以同時驅動2臺直流電動機,但是在本設計實驗中,只應用了其中的一個,有點資源的浪費,因此需要進一步改進,設計出更合理的方案。在比如,本設計產(chǎn)品只是實驗類產(chǎn)品,只是原理應用類產(chǎn)品,距離真正的家居使用產(chǎn)品尚有一段距離,有些地方更需重新設計以更實用化,智能化。但是,本設計實驗作為智能家居的部分嘗試,還是取得了預期的效果,成本也能得到控制,成品較宜向市場推廣。謝辭光陰荏苒,日月如梭,歲月在指尖悄然流逝,不知不覺般我走過四年的大學之路,即將踏入人生的另一段征程?;厥走@四年,有辛酸,有苦甜,而最為重要的則是我在這大學四年中的種種人生經(jīng)歷,不管是高興下成功還是低落中失敗,都將為我的性格重塑發(fā)揮作用,為我以后的社會經(jīng)歷埋下鋪墊,都將影響我以后的人生生涯。再看這四年,我已然褪去了大一時青澀,蛻變成為了今天這個相對成熟些的大四畢業(yè)生。期間,經(jīng)歷種種讓人難以忘懷的往事,有幸進入我校的創(chuàng)新實驗室就是其中之一。早在大一剛入校時,我們就有幸參觀過這個實驗室,聽楊老師講解過,告訴我們來青島大學自動化學院是幸運的,因為這里有個穿心實驗室。如此在我的心中種下了萌芽,想要進入這個實驗室學習。終于在第二年我們上大二的時候通過考核進入實驗室,有了自己的分組,當時的感覺就是有了自己另外一個像宿舍一樣的地方??墒鞘挚上В蠖r功課比較多,而且我還選了第二專業(yè)學習經(jīng)濟學,再加上一些瑣事纏身,留在實驗室里的時間很少了。后來,由于成績下滑到了低谷,感到力不從心,就漸漸離開實驗室,后來的一些活動也沒有參加??傊俏易约翰慌υ斐傻倪@些事情,現(xiàn)在回想起來,只能怪自己意志不堅定,讓自己錯失了那么多學習進步的機會,十分后悔。然而,上個學期末,楊老師不計較我之前在實驗室的不辭而別,主動聯(lián)系我,來做我畢業(yè)設計的指導老師,我十分感動,心想要以自己的一番行動來回報楊老師的期許。經(jīng)過一番努力,本文終于得以完成。而細思本文能夠完成,首先就應該感謝這篇論文的指導老師——楊艷老師,在這篇論文的選題、立題、撰寫、修改方面,楊老師都給予了我較大的幫助,特別是讓我明白了該怎樣對待論文和該以什么樣的姿態(tài)來完成這篇論文,這些都讓我獲益匪淺,對未來的人生態(tài)度也有一定的啟發(fā),在此表示衷心的感謝。同時,我還要感謝在我大學學習的這四年里,感謝我的舍友和同學,他們和我在這四年里一起學習,一起生活,一起進步,共同走過四年的大學生活,共同邁過這人生最青春的時光。四年間可能會有摩擦,亦或是隔閡,但是相聚的緣分早已讓我們相逢一笑,抿去樂憂。雖然我們宿舍里的幾個人在畢業(yè)之后路途迥異,我們之間有讀研的,有去電網(wǎng)公司的,有去鐵路部門的,還有考研復讀的,但是我們彼此之間并未改變我們彼此的位置,依舊如故。在論文的完成中,我們也是互幫互助,把這一次論文的完成當成我們整個宿舍的一次知識的提高。而我的這篇論文中的原理圖的完成,就得到我們宿舍的陳明帥同學的大力支持,非常感謝!最后,感謝在大學四年里所有教過我課的任課老師,是你們,教會了在大學里最需要的專業(yè)技能,讓我的大學生活得以充實,有意義。讓我為未來的人生道路積淀了重要的基礎,謝謝!祝愿各位老師工作時順順心心、生活中美美滿滿!參考文獻[1]郭天祥,新概念51單片機C語言教程——入門、提高、開發(fā)、拓展全攻略,電子工業(yè)出版社,2008[2]張元良,高艷,呂艷,郎慶陽,周志民,單片機綜合設計實用教程,機械工業(yè)出版社,2013.8[3]萬福君,潘松峰,劉芳,吳賀榮,王秀梅,MCS-51單片機原理、系統(tǒng)設計與應用,清華大學出版社,2008[4]李發(fā)海,朱東起,電機學,科學出版社,2013[5]張新,陳躍琴,51單片機應用開發(fā),電子工業(yè)出版社——基于Proteus仿真,2013[6]李永東,脈寬調(diào)制(PWM)技術——回顧、現(xiàn)狀及展望,《電氣傳動》,1996,[7]《數(shù)字社區(qū)&智能家居》編輯部,智能生活從指尖開始——家居智能化終端推薦專題,2008[8]王正勇,輕松實現(xiàn)DesignerAltium板極設計與數(shù)據(jù)管理,電子工業(yè)出版社,2013[9]孫旭才,L298N在直流電機PWM調(diào)速系統(tǒng)中的應用,濰坊學院學報,2009.7[10]許繼彥,杜欽生,紅外通信模塊的設計與實現(xiàn),長春大學學報,2009.10[11]張林,王春,劉志鵬,TC9012紅外遙控發(fā)射集成電路的研究及其在MCS-51單片機的應用,《消費電子》,2013[12]聶詩良,李磊民,采用單片機發(fā)送并接收紅外遙控信號的方法,《信息技術》,2004.2[13]譚浩強,C程序設計(第三版),清華大學出版社,2005.7附錄/***********頭文件*********/#include<reg51.h>#include<intrins.h>/***********引腳定義*********/sbitremin=P3^2; //紅外信號輸入引腳sbitPWM=P2^0; //電動機PWM控制輸出引腳sbitMotorIn1=P2^1;//電動機方向控制引腳1sbitMotorIn1=P2^2;//電動機方向控制引腳2/***********全局變量定義*********/unsignedcharremdata=0xff;//定義變量,用來保存接收的數(shù)據(jù)碼unsignedcharPWMFlag=0;unsignedcharValue=0;/***********主程序*********/main(){TMOD=0x20;TH1=0xa4;//100微妙中斷一次TL1=0xa4;EA=1;//開總中斷EX0=1;//允許外部中斷ET1=1;//允許定時器1中斷TR1=1;//開定時器1MotorIn1=0;MotorIn1=0;EA=EX0=1;while(1){if(redata=0x00)//如果接收到的數(shù)據(jù)碼為0x00 { //即按鍵K1按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=5;;//則一級轉速控制輸出開啟 } else { if(redata=0x01)//如果接收到的數(shù)據(jù)碼為0x01 { //即按鍵K2按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x1f;;//則二級轉速控制輸出開啟 } else { if(redata=0x02)//如果接收到的數(shù)據(jù)碼為0x02 { //即按鍵K3按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x4f;;//則三級轉速控制輸出開啟 } else { if(redata=0x03)//如果接收到的數(shù)據(jù)碼為0x03 { //即按鍵K3按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x6f;;//則四級轉速控制輸出開啟 } else { if(redata=0x04)//如果接收到的數(shù)據(jù)碼為0x04 { //即按鍵K4按下 MotorIn1=0; MotorIn1=1; //風扇電動機正轉 Value=0x7f;;//則五級轉速控制輸出開啟,0x7f為Vlaue設定的最大值

溫馨提示

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

評論

0/150

提交評論