基于單片機的步進電機控制系統(tǒng)_畢業(yè)設計論文_第1頁
基于單片機的步進電機控制系統(tǒng)_畢業(yè)設計論文_第2頁
基于單片機的步進電機控制系統(tǒng)_畢業(yè)設計論文_第3頁
基于單片機的步進電機控制系統(tǒng)_畢業(yè)設計論文_第4頁
基于單片機的步進電機控制系統(tǒng)_畢業(yè)設計論文_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機的步進電機控制系統(tǒng)設計與實現(xiàn)摘要步進電機是一種純粹的數(shù)字控制電動機,是一種受電脈沖信號控制的無刷式直流電動機,是現(xiàn)代定位驅(qū)動裝置的核心,廣泛應用在機械、電力、紡織、電子、儀表、印刷以及航空航天、船舶、兵器等國防工業(yè)等領域?;趩纹瑱C的步進電機控制系統(tǒng)具有穩(wěn)定度高、成本低、控制方便、應用范圍廣等特點。本系統(tǒng)是由STC89C52單片機核心處理模塊,遙控器命令輸入模塊,ULN2003及28BYJ48步進電機組成的電機模塊,12864液晶輸出模塊共同組成的基于單片機的步進電機控制系統(tǒng)。本設計以載波為38KHZ的紅外遙控器作為用戶的控制端,它的功能是把用戶的命令轉(zhuǎn)換為紅外信號。紅外信號由TL1838接收,它可以將光信號轉(zhuǎn)換為電信號,并將其發(fā)送給微控制器STC89C52。STC89C52對電信號進行相應處理即可獲得用戶所發(fā)出的指令,并依此來控制28BYJ48型四相八拍電機并以12864液晶作為當前狀態(tài)的顯示器。用戶可以對步進電機進行加速、減速、正轉(zhuǎn)、反轉(zhuǎn)的控制。本步進電機控制系統(tǒng)具有精度高、運行穩(wěn)定、控制方便、維護簡單、應用范圍廣等特點。關鍵詞STC89C5212864液晶步進電機紅外遙控DESIGNANDIMPLEMENTATIONOFSTEPPERMOTORCONTROLSYSTEMBASEDONMCUABSTRACTSTEPPERMOTORISAKINDOFPUREDIGITALCONTROLMOTORANDBRUSHLESSDCMOTORCONTROLLEDBYELECTRICPULSESIGNALTYPESTEPPERMOTORISTHECOREOFTHEMODERNORIENTATIONDRIVE,WIDELYUSEDINMACHINERY,ELECTRICPOWER,TEXTILE,ELECTRONICS,INSTRUMENTS,PRINTINGANDAEROSPACE,SHIPS,WEAPONS,ANDOTHERAREASOFTHEDEFENSEINDUSTRY,ETCTHECHARACTERISTICSOFTHESTEPPINGMOTORCONTROLSYSTEMBASEDONSINGLECHIPMICROCOMPUTERINCLUDEHIGHSTABILITY,LOWCOST,CONVENIENTCONTROLANDWIDEAPPLICATION,ETCTHESTEPPERMOTORCONTROLSYSTEMCONSISTSOFCOREPROCESSORUSINGTHESINGLECHIPPROCESSOR,COMMANDINPUTCONTROLMODULEUSINGIRREMOTECONTROL,DISPLAYMODULEUSING12864LCDAND28BYJ48STEPPINGMOTORMODULEWHICHUSINGULN2003ASDRIVERTHEINFRAREDREMOTECONTROLWITHCARRIERFOR38KHZISUSEDASTHECONTROLENDOFTHEUSER,WHICHCANCONVERTTHEUSERSCOMMANDSINTOTHEINFRAREDSIGNALTHETL1838CANRECEIVETHEINFRAREDSIGNALANDCONVERTITINTOELECTRICALSIGNAL,WHICHINPUTTOTSTC89C52THEMCUCANOBTAININSTRUCTIONSOFUSERSBYPROCESSINGTHEINCOMINGSIGNALANDCONTROLSTEPPINGMOTOROFTHE28BYJ48TYPE,THECURRENTSTATUSCANBESHOWNBY12864LCDUSERSCOULDCONTROLACCELERATION,DECELERATION,FORWARD,INVERSIONFORTHESTEPPINGMOTORTHEFEATURESOFTHECONTROLSYSTEMOFSTEPPERMOTORINCLUDESHIGHPRECISION,STABLERUNNING,CONVENIENTCONTROLANDSIMPLEMAINTENANCEANDWIDEAPPLICATION,ETCKEYWORDMCU12864LCDSTEPPERMOTORINFRAREDREMOTECONTROL目錄1引言12總體設計方案221系統(tǒng)設計原理222總體設計框圖23系統(tǒng)硬件模塊的組成331單片機控制模塊3311STC89C52主要結(jié)構(gòu)3312STC89C52功能特性描述3313時鐘電路6314復位電路632步進電機模塊7321步進電機簡介7322步進電機的結(jié)構(gòu)832328BYJ48步進電機工作原理833ULN2003芯片概述與特點934紅外線發(fā)射接收模塊10341紅外線遙控的介紹10342紅外通信基本原理10343紅外遙控發(fā)射系統(tǒng)12344紅外遙控接收系統(tǒng)12345TL1838與單片機的接口143512864顯示模塊1435112864液晶的特點1435212864液晶的引腳說明1535312864液晶的讀寫操作1735412864液晶的控制指令1735512864液晶接口電路2036蜂鳴器模塊20361蜂鳴器介紹20362蜂鳴器的接口電路214軟件設計與調(diào)試2241主程序流程圖2242程序設計思路23421遙控器的解碼23422步進電機的控制23423顯示屏的控制24424蜂鳴器的控制24425模塊中的通信245編程與下載軟件2551KEIL軟件2552STCISP下載軟件266硬件電路制作2761原理圖的繪制2762電路實現(xiàn)的基本步驟277結(jié)論30謝辭31參考文獻32附錄331引言步進電機是一種純粹的數(shù)字控制電動機,又稱為階躍電機或脈沖電機1。是一種轉(zhuǎn)動速率與轉(zhuǎn)動步數(shù)可以由脈沖數(shù)量與頻率控制的直流電機,也就是說這是一種轉(zhuǎn)動速度與脈沖頻率相一致的同步電機。它是一種將電脈沖能量轉(zhuǎn)換為機械能的機制,這種方式使它轉(zhuǎn)動的每一個角度,每個角度占用的時間都由用戶掌控。隨著科學技術(shù)的迅猛發(fā)展,步進電機的研究也到達了新的水準。定位驅(qū)動系統(tǒng)已完全由步進系統(tǒng)所主宰。在過去,人們認為步進系統(tǒng)在很多方面都不及伺服系統(tǒng),但是由于技術(shù)的不斷革新,材料的不斷升級優(yōu)化以及計算機技術(shù)的不斷成熟,使得步進控制系統(tǒng)在技術(shù)層面上迎來了嶄新的一頁。定位驅(qū)動系統(tǒng)是處于不斷發(fā)展狀態(tài)的,經(jīng)歷了步進系統(tǒng)、直流伺服系統(tǒng)、交流伺服系統(tǒng)等過程的發(fā)展與過度,現(xiàn)在又回到了步進控制系統(tǒng)。定位驅(qū)動裝置之所以再一次回到步進系統(tǒng),是因為它可以將系統(tǒng)簡化,維護非常簡單,它所構(gòu)成的開環(huán)控制系統(tǒng)是無需反饋的,同時又能保持非常高的精度。所以現(xiàn)如今的定位驅(qū)動裝置大多是采用步進系統(tǒng)的,這在將來的幾十年都不會改變,這種由脈沖去控制轉(zhuǎn)動方位,脈沖頻率決定轉(zhuǎn)動速度的定位方式一定會在很大程度上決定著工業(yè)與生活中的定位裝置的發(fā)展趨勢。步進電機的上述特點使得它廣泛應用于冶金、機械、電力、紡織、電子、輕工、重工、電子、醫(yī)療、印刷以及航空航天等國防工業(yè)等領域。舉一個典型的例子,數(shù)控機床在機械行業(yè)中有著舉足輕重的地位,而數(shù)控機床的正常運轉(zhuǎn)又是依賴步進電機的,它核心就是步進電機系統(tǒng)。這種無需反饋的開環(huán)系統(tǒng)決定了數(shù)控機床的工作可靠、性能穩(wěn)定、維護方便、加工迅捷的特點,也使數(shù)控機床成為如今機床發(fā)展的主要方向。在其他的許多行業(yè)中,步進控制系統(tǒng)也發(fā)揮著舉足輕重的作用。比如我們在生活中常見的有鐘表、廣告牌、繪圖儀等,在生產(chǎn)中常見的有印刷機器、紡織機、包裝機械等。本設計主要是基于單片機的步進電機控制系統(tǒng),可以通過遙控器的鍵盤設置期望的步進電機轉(zhuǎn)動狀態(tài),通過紅外發(fā)射裝置及接收裝置,使單片機接收到用戶需要的控制命令,進行相應的處理,使步進電機改變運動狀態(tài)并在LCD顯示屏顯示出來。本設計雖然是理論上的步進系統(tǒng),并沒有廣泛應用于工業(yè)中的定位裝置與生產(chǎn)當中。但是隨著步進電機技術(shù)的不斷革新和電機身上所固有的脈沖與角位移嚴格成正比的特點,以及紅外遙控的準確、迅捷、易于控制的優(yōu)勢,步進電機對步進電機穩(wěn)定、高效、準確的控制,都決定了基于單片機的紅外控制步進電機系統(tǒng)將在生活生產(chǎn)中迎來廣闊的市場。為了表現(xiàn)步進電機的在生活生產(chǎn)中的應用廣泛性,本設計的一些功能的設定有一定的針對性,可以具體的表現(xiàn)出紅外控制的步進系統(tǒng)的優(yōu)越性能。2總體設計方案21系統(tǒng)設計原理單片機STC89C52是整個系統(tǒng)關鍵部分,通過對遙控器上鍵盤的命令輸入,經(jīng)遙控器編碼后發(fā)出紅外信號,TL1838接收到信號并在單片機中解碼。本文提出的采用38KHZ的遙控器為核心控制器件的步進電機控制系統(tǒng),根據(jù)輸出信號的不同可以控制步進電機的轉(zhuǎn)動狀態(tài),其中采用了28BYJ48的步進電機,以ULN2003為驅(qū)動芯片,并通過單片機程序控制和處理,從而實現(xiàn)了步進電機的狀態(tài)控制及相應狀態(tài)顯示。本系統(tǒng)采用STC89C52單片機為核心處理器,遙控器為命令輸入模塊,由ULN2003及28BYJ48步進電機組成的轉(zhuǎn)動模塊、12864液晶的輸出模塊共同組成的基于單片機的步進電機控制系統(tǒng)。22總體設計框圖本設計采用STC89C52單片機為核心處理器,利用載波為38KHZ的遙控器為輸入模塊鍵盤輸入模塊,控制步進電機的正轉(zhuǎn)和反轉(zhuǎn),并以三種不同的速度進行轉(zhuǎn)動,并且轉(zhuǎn)動狀態(tài)在12864液晶上顯示。系統(tǒng)構(gòu)成如圖21所示。圖21系統(tǒng)框圖由系統(tǒng)框圖可知,遙控器和TL1838為輸入裝置,步進電機、12864液晶、蜂鳴器為輸出裝置,單片機為中心處理裝置,ULN2003為驅(qū)動器。遙控器TL1838單片機ULN2003步進電機12864液晶蜂鳴器3系統(tǒng)硬件模塊的組成31單片機控制模塊主控電路中,以單片機為主體,通過分析遙控輸入的指令,改變步進電機的運行參數(shù)和顯示參數(shù)。它是系統(tǒng)的大腦。單片機(MICROCONTROLLER,又稱微控制器)是在一塊硅片上集成了各種部件的微型機算計,這些部件包括中央處理器CPU、數(shù)據(jù)存貯器RAM、程序存貯器ROM、定時器/計數(shù)器和多種I/O接口電路3。311STC89C52主要結(jié)構(gòu)STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程FLASH,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標準功能8K字節(jié)FLASH,512字節(jié)RAM,32位I/O口線,內(nèi)置4KBEEPROM,MAX810復位電路,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口4。312STC89C52功能特性描述STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲器。使用宏晶公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上FLASH允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程FLASH,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、有效的解決方案。STC89C52具有以下標準功能8K字節(jié)FLASH、256字節(jié)RAM、32位I/O口線、看門狗定時器、2個數(shù)據(jù)指針、三個16位定時器/計數(shù)器、一個6向量2級中斷結(jié)構(gòu)、全雙工串行口、片內(nèi)晶振及時鐘電路。另外,STC89C52可降至0HZ靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下個中斷或硬件復位為止5。STC89C52的引腳結(jié)構(gòu)如圖31所示。圖31STC89C52單片機引腳圖GND接地。VCC供電電壓。P0口P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內(nèi)部上拉電阻。在FLASH編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。此外,P10和P12分別作定時器/計數(shù)器2的外部計數(shù)輸入(P10/T2)和時器/計數(shù)器2的觸發(fā)輸入(P11/T2EX),在FLASH編程和校驗時,P1口接收低8位地址字節(jié)。P2口P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器。能驅(qū)動4個TTL邏輯電平。P2口P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸P0TEX3567RS9XDINWALVCU出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如表31所示。表31P3口的第二功能信道位第二功能說明P30RXD串行口的輸出P31TXD串行口的輸入P32ERROR外部中斷0的中斷請求輸入P33ERROR外部中斷1的中斷請求輸入P34T0計數(shù)器0的計數(shù)輸入P35T1計數(shù)器1的計數(shù)輸入P36ERROR外部數(shù)據(jù)存儲器的寫選通信號P37ERROR外部數(shù)據(jù)存儲器的讀選通信號RST復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機PSEN器周期兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的信號將PSEN不出現(xiàn)。/VPP當保持低電平時,則在此期間外部程序存儲器(0000HEAFFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為EARESET;當端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2來自反向振蕩器的輸出。313時鐘電路STC89C52有內(nèi)部時鐘和外部時鐘兩種連接方式。設計中使用內(nèi)部時鐘,即在RXD和TXD兩端并聯(lián)晶振和適當電容。需要注意的是并不是晶振有定時的作用,而是通過和單片機內(nèi)部的高增益反相放大器連接,使它可以在一定頻率下穩(wěn)定震動,起到口令的作用。其連接電路如圖32所示。圖32時鐘電路在RXD和TXD引腳上并聯(lián)的晶振是系統(tǒng)的定時元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。時鐘電路中選用的晶振可以在1224MHZ之間選擇,并聯(lián)的電容值可在530PF之間選擇,為單片機提供了有序準確的命令,是單片機正常運行的前提。314復位電路AT89C52的外圍電路是必須有復位功能的,一般分為自動復位和按鍵復位。設計使用的是手動復位,電路原理是在普通RC復位電路的基礎上接一個有下拉電阻10K、上拉電容10F接VCC,電源由開關經(jīng)串接的1K限流電阻至復位腳(和上拉電容并聯(lián)),上拉電容支路負責在“上電”瞬間實施復位;開關通過1K上拉電阻和10K下拉電阻分壓器,保證對單片機實施按鍵電平復位6。電路圖如圖33所示。2Y09M3PFCASEMIXTLGND圖33復位電路復位可以對單片機初始化。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序7。復位一般有兩種作用,一種是在進入系統(tǒng)時要正常的初始化,另一種是程序可能會出現(xiàn)錯誤,運行混亂,是系統(tǒng)處于死鎖狀態(tài),為了解決這種困境,通常采用復位方式。32步進電機模塊321步進電機簡介人類社會進入自動化時代的今天,傳統(tǒng)電動機的功能已不能滿足各種運動控制系統(tǒng)的要求。為了適應這些要求,發(fā)展了一系列新的具備控制功能的電動機系統(tǒng),其中較有自己特點,且應用十分廣泛的一類便是步進電機。從發(fā)展趨向來講,步進電機已經(jīng)能與直流電動機,異步電動機,以及同步電動機并列,成為電動機的一種基本類型,步進電機己成為除直流電動機和交流電動機以外的第三類電動機。步進電機是電動脈沖信號為角位移或線位移的開環(huán)步進電機控制元件塊。步進電機對于其他種類電機的優(yōu)勢是在非超載的情況下,電機的運動狀態(tài)如電動機轉(zhuǎn)速、停止的位置非常穩(wěn)定,可以完全在用戶的掌控之中的,負載的變化,在惡劣環(huán)境下都不會對它產(chǎn)生影響,這取決于它的控制方式的與眾不同。步進電機的轉(zhuǎn)動圈數(shù)完全取決于給它脈沖的數(shù)量,它轉(zhuǎn)動速度又完全取決于脈沖頻率。只要給步進電機一個脈沖,就會驅(qū)動電機在旋轉(zhuǎn)方向上轉(zhuǎn)動一個固定的角度,稱為“步進角”,旋轉(zhuǎn)角度是固定的一步一步的操作8。所以它的可操作性非常優(yōu)越,但是步進電機的轉(zhuǎn)動速度是比較慢的,隨著科技的發(fā)展,這種缺點也在逐漸改善。步進電機的實物圖如圖34所示。10KR5VUFC2SWPBGNDT圖3428BYJ48型四相八拍電機本設計選擇28BYJ48步進電機作為設計對象,步進電機28BYJ48型四相八拍電機,電壓為DC5VDC12V。使步進電機連續(xù)轉(zhuǎn)動的方法是不斷的供給控制脈沖。每個脈沖都對應步進電機的某一項或兩項繞組,當它的通電狀態(tài)改變時對應的轉(zhuǎn)子就會轉(zhuǎn)過一定角度,這個角度叫做步距角。通電狀態(tài)改變一個周期時轉(zhuǎn)子所轉(zhuǎn)的角度成為齒距。四相步進電機可以在不同的通電方式下運行,常見的通電方式有單(單相繞組通電)四拍(ABCDA),雙(雙相繞組通電)四拍(ABBCCDDAAB),八拍(AABBBCCCDDDAA)。322步進電機的結(jié)構(gòu)步進電機有轉(zhuǎn)子和定子兩部分,在電流作用下的,定子和轉(zhuǎn)子的相互作用,使得電機不停轉(zhuǎn)動。28BYJ48步進電機的定子是由硅鋼片疊成的,定子上有8大磁極,每2個相對的磁極(N,S)組成一對,共有4對,如圖35所示。定子齒有個勵磁繞阻,其幾何軸線依次分別與轉(zhuǎn)子齒軸線錯開。0、1/4、2/4、3/4(相鄰兩轉(zhuǎn)子齒軸線間的距離為齒距以表示),即A與齒1相對齊,B與齒2向右錯開1/4,C與齒3向右錯開1/2,D與齒4向右錯開3/4。而轉(zhuǎn)子是由軟磁材料制成,其外表面也均勻地分布著小齒,與定子上的小齒相同,并且小齒的大小相同,間距相同。32328BYJ48步進電機工作原理步進電機是一種將電脈沖轉(zhuǎn)換為角位移的執(zhí)行機構(gòu),步進電機的轉(zhuǎn)動圈數(shù)完全取決于給它脈沖的數(shù)量,它轉(zhuǎn)動速度又完全取決于脈沖頻率。只要給步進電機一個脈沖,就會驅(qū)動電機在旋轉(zhuǎn)方向上轉(zhuǎn)動一個固定的角度,可以通過電脈沖個數(shù)來控制角偏移量,從而達到準確定位的目的,同時可以通過控制脈沖頻率,來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的。本設計選擇28BYJ48步進電機作為設計對象,其原理圖如35所示。圖35步進電機接線示意圖在圖中可以看到附在周圍的是定子,在中間的是轉(zhuǎn)子。定子的作用是產(chǎn)生一個電磁場,這個電磁場和轉(zhuǎn)子的磁場可以產(chǎn)生一個扭力9,使得步進電機轉(zhuǎn)動。但是定子的電磁場是不能和轉(zhuǎn)子磁場在同一直線的。使步進電機不停轉(zhuǎn)動的前提是定子的磁場不停的變換,這個變換是通過一次改變繞組的磁場,始終是定子和轉(zhuǎn)子的磁場產(chǎn)生錯位,促使步進電機的穩(wěn)定轉(zhuǎn)動。而改變磁場切換的時間間隔,就可以控制步進電機的速度了,這就是步進電機的驅(qū)動原理。由于單片機的驅(qū)動電流較小,不能直接用來驅(qū)動步進電機,優(yōu)勢不能充分展現(xiàn),所以一般都是使用ULN2003達林頓陣列驅(qū)動,可以為步進電機提供較大的扭力,使電機穩(wěn)定工作。33ULN2003芯片概述與特點ULN2003芯片是高耐壓、大電流達林頓陣列,由7組達林頓晶體管陣列和相應的電阻網(wǎng)絡以及鉗位二極管網(wǎng)絡構(gòu)成,具有同時驅(qū)動7組負載的能力,為單片雙極型大功率高速集成電路10。由于步進電機并不是簡單的轉(zhuǎn)動,它要帶動不同的負載,完成不同的工作,所以需要產(chǎn)生較大的扭力,又由于直接使用三極管驅(qū)動的局限和功率電子電路大多要求具有大電流輸出能力,所以步進電機的驅(qū)動一般使用ULN2003。ULN2003芯片高壓大電流達林頓晶體管陣列產(chǎn)品屬于可控大功率器件功率驅(qū)動電路,可控大功率驅(qū)動器件驅(qū)動電路是功率電子設備輸出電路的一個重要組成部分。具體電路圖如圖36所示。圖36ULN2003接線示意圖ULN2003實際上只是一個放大電路,用來放大電流,對于實際的邏輯控制沒有任何作用。如果沒有這個芯片電機也會轉(zhuǎn)動,只是轉(zhuǎn)動的扭力會受很大影響,制約步進電機的性能。34紅外線發(fā)射接收模塊341紅外線遙控的介紹紅外線是太陽光線中眾多不可見光線中的一種,在太陽光中就包含著紅外線。由德國科學家霍胥爾于1800年發(fā)現(xiàn),又稱為紅外熱輻射。很多人不知道紅外線與紫外線等不可見光線或者紅光等可見光線的產(chǎn)生區(qū)別,它們最大的區(qū)別是波長不同,波長是震蕩頻率的結(jié)果。人眼能夠識別的可見光的種類為紅、橙、黃、綠、青、藍、紫,波長是從長到短排列的。其中紅光的波長范圍為062076UM;紫光的波長范圍為038046。比紫光的波長還要短的光叫紫外線,比紅光的波長還要長的光叫紅外線。紅外線遙控技術(shù)就是利用波長為07615M之間的近紅外線來傳送控制信號的。紅外線是我們最常用的一種不可見光線,家用電器的遙控器基本上都是使用紅外線。有一個很有趣的特點,當按下遙控器的鍵盤時,我們看不到紅外發(fā)射頭發(fā)出的光線,但是如果我們用照相機來對著紅外發(fā)射頭,按下鍵盤時,在相機中我們可以觀察到它發(fā)出了亮光。紅外遙控的特點是造價較低,適合市場的推廣,各類家庭用戶的使用。編解碼較容易,不會因為程序電路的復雜性而經(jīng)常出現(xiàn)故障。它由32位碼長,4段碼,通過用戶碼的不同區(qū)別開了不同產(chǎn)品的不同遙控,以免互相干擾,不影響周邊環(huán)境、不干擾其它電器設備。還有一個重要原因,紅外線不會對人體造成傷害,發(fā)射接收距離較長,方便用戶使用。一般在10米以內(nèi)可以靈敏接收的。342紅外通信基本原理通信控制系統(tǒng)大多是由發(fā)射與接收兩部分組成的,紅外通信也不例外。發(fā)射系統(tǒng)對一個紅外輻射源進行調(diào)制后發(fā)射紅外信號,而接收系統(tǒng)用紅外一體化接收頭進行接收,兩者聯(lián)合構(gòu)成了紅外通信系統(tǒng)。紅外通信的基本原理是發(fā)送端將基帶二進制信號調(diào)制為一系列的脈沖串信號(載波信號),通過紅外發(fā)射管發(fā)射紅外信號。紅外信號由接收端轉(zhuǎn)換成電信號,并對其進行放大、濾波等處理,還原成二進制數(shù)字信號,并將其輸出。由于各遙控產(chǎn)品的不同,還有很多不同的遙控廠商,必須有一個通信協(xié)議來保障不同種類的紅外產(chǎn)品獲得最佳的通信效果。紅外線的波長在750NM至1MM之間,紅外通信一般采用紅外波段內(nèi)的近紅外線,波長在075UM至25UM之間。紅外數(shù)據(jù)協(xié)會將紅外通信協(xié)議定為波長限定在850NM900NM范圍之間。紅外線的調(diào)制方法常用的有兩種,一種是通過脈沖寬度來實現(xiàn)信號調(diào)制的脈寬調(diào)制(PWM),另一種是通過脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制的脈沖調(diào)制(PPM)13。本設計采用脈沖調(diào)制方法,即二進制信息由兩個脈沖的時間間隔來表示,首先產(chǎn)生一個同步頭,然后產(chǎn)生2個8位用戶碼,接著8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,如圖37所示。圖37PPM調(diào)制波形圖紅外遙控的一個數(shù)據(jù)幀是由引導碼、用戶碼、數(shù)據(jù)碼和數(shù)據(jù)反碼組成的。每個品牌的用戶碼一般都是不同的,數(shù)據(jù)碼同種種類的遙控器一般差異不大。每段碼都為8位,2段用戶碼,數(shù)據(jù)碼及其反碼只有1段。每幀數(shù)據(jù)由一個起始位、2段8個用戶碼位8個數(shù)據(jù)碼和數(shù)據(jù)反碼構(gòu)成,如圖38所示。每幀傳送1個字節(jié)的數(shù)據(jù)。圖38數(shù)據(jù)幀結(jié)構(gòu)示意圖由于紅外光存在反射,在全雙工的方式下發(fā)送的信號也可能會被本身接收,因056MS056MS1125MS225MS數(shù)據(jù)0數(shù)據(jù)145MS45MS引導碼用戶碼用戶碼數(shù)據(jù)碼數(shù)據(jù)反碼數(shù)據(jù)幀結(jié)構(gòu)8位8位8位8位此,紅外通信應采用異步半雙工方式,即通信的某一方發(fā)送和接收交替進行。343紅外遙控發(fā)射系統(tǒng)紅外遙控系統(tǒng)結(jié)構(gòu)紅外遙控系統(tǒng)主要分為調(diào)制、發(fā)射、接收和解調(diào)四部分,如圖39所示。圖39紅外遙控系統(tǒng)調(diào)制紅外遙控發(fā)射數(shù)據(jù)時采用調(diào)制的方式,即把數(shù)據(jù)和一定頻率的載波進行“與”操作,這樣可以提高發(fā)射效率和降低電源功耗。調(diào)制載波頻率一般在30KHZ到60KHZ之間,一般紅外遙控使用的是38KHZ,占空比1/3的方波。如圖310所示。88US264US圖310載波波形有很多芯片都可以發(fā)射紅外光,但是對于遙控的芯片選擇要考慮使用設備和編碼種類的不同。對于家用電器的遙控,必須功率要低,這樣電池才可以長時間使用,一般都使用可休眠的的發(fā)射芯片,能不按鍵時遙控處于不工作模式。芯片一般選用的晶振為陶瓷共鳴器,因為其有足夠的物理撞擊能力,雖然準確性不如石英晶體,但是通常是可以允許一些誤差的。經(jīng)過編碼后,要用專用的發(fā)射頭發(fā)射出去。普通的發(fā)光二極管是不能擔此重任的,因為它只能發(fā)射出可見光。紅外發(fā)射二極管是專門用來發(fā)射紅外線的,它的內(nèi)部材料是與普通二極管完全不同的,所以導致了其發(fā)出的是紅外線而不是可見光12。聽上去紅外發(fā)射二極管價格也很便宜,與普通發(fā)光二極管差不多,某些方面也促進了紅外通信技術(shù)的發(fā)展。344紅外遙控接收系統(tǒng)有發(fā)射就要有接收,由于發(fā)射的紅外線有38K的載波,所以一定要先把接收的信號濾波才行,為了得到準確的編碼,還要把信號進行放大、積分等。這是一個復雜的過程,也應該有復雜的電路來處理。隨著科技的發(fā)展,芯片集成能力的不斷提高,這個看似復雜的任務只需要一個叫做紅外接收頭的電子器件就可以完成工作。常用的紅外接收頭有HX1838,TL1838等,它們的性能、結(jié)構(gòu)基本都是一樣的,可以把38K載波濾掉,并進行一定的處理,使中心處理器件接收到準確的編碼,但需要注意的是它處理后的是原來編碼的反碼。圖311中就是TL1838一體化紅外接收頭,其38就是接收38K載波的意思。圖311TL1838實物圖TL1838如圖311所示,從左邊開始,分別為1腳、2腳、3腳,分別為信號輸出腳、地和電源,其電平與TTL兼容。TL1838系列特性如下工作電壓2755V工作電流14MA距離15M頻率38K角度45波長940NM當TL1838接收到紅外光信號時,內(nèi)部的PIN紅外接收管將其裝換為電信號,又經(jīng)過放大電路、解調(diào)電路的作用,由輸出引腳輸出與TTL電平兼容的電信號,該電信號可以直接送到微處理器中處理。TL1838的輸出波形如圖312所示。當接收到頻帶內(nèi)的紅外信號時,TL1838接收器會輸出低電平,否則數(shù)出高電平,從而“將時斷時續(xù)”的紅外信號解調(diào)成原來的連續(xù)方波信號。需要注意的一點是,它并沒有把紅外信號解碼,因為它處理后發(fā)出的信號不是標準的1、0高低電平。不管是1還是0,都包含著高低電平,只是高低電平所持續(xù)的時間是不同的,這需要單片機自己通過程序來判斷了。圖312A已調(diào)制紅外信號BTL1838輸出信號TL1838的有效傳輸距離是15M,它的工作電壓為2755V,接收穩(wěn)定,功率小,在各種紅外接收場合的可以使用。TL1838由于它的穩(wěn)定性能,低廉的價格,是一款性價比很高的紅外一體化接收頭13。345TL1838與單片機的接口本設計的紅外遙控系統(tǒng)是將普通遙控器解碼,把它的32位碼寫進單片機程序中,使得可以通過對遙控器鍵盤的控制,單片機可以得到相對指令。其連接線電路如圖313所示。圖313遙控的接收頭的連線把其輸出端接單片機的外部中斷0,每當遙控器發(fā)出信號時都會觸發(fā)單片機外部中斷,這時再觸發(fā)單片機的定時中斷對其發(fā)出的信號進行鑒定,以檢測出其碼位。3512864顯示模塊35112864液晶的特點現(xiàn)在的字符型液晶模塊已經(jīng)是單片機應用設計中最常用的信息顯示器件了。12864型液晶顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點。設計中用到的就是這種顯示屏。其實物圖如圖314所示。低電平高電平GND5V123UTL8P圖31412864實物圖12864型液晶顯示屏共有20個引腳,其中有8位數(shù)據(jù)總線D0D7,5個控制引腳R/W、E、RS、PSB、RST,5個電源引腳,其中包括背光電源和顯示器電源。三個用于調(diào)節(jié)背景亮度和字符亮度以及供電的引腳。12864型液晶是利用液晶經(jīng)過處理后能夠改變光線傳輸方向的特性,達到顯示字符或圖形的目的。它由點陣字符顯示器件和專用的行和列驅(qū)動器組成,體積小、功耗極低、顯示內(nèi)容豐富??梢酝ㄟ^對外圍電路的調(diào)節(jié)來控制屏幕亮度,工作電壓為5V。本設計使用的液晶使用ST7920控制器,5V電壓驅(qū)動,帶背光,內(nèi)置8192個1616點陣、128個字符(816點陣)及64256點陣顯示RAM。與外部CPU接口采用并行或串行兩種控制方式。35212864液晶的引腳說明12864液晶有多種驅(qū)動芯片,雖然驅(qū)動芯片有很多種,但原理基本相同。本次設計采用驅(qū)動芯片為ST7920的12864液晶對步進電機工作狀態(tài)進行顯示,其引腳分布圖如圖315所示。圖31512864液晶管腳圖12864液晶管腳及其功能描述,如表32所示表3212864管腳說明管腳號管腳名稱電平管腳功能描述1VSS0V電源地2VCC35V電源正3V0對比度(亮度)調(diào)整4RSCSH/LRS“H”,表示DB7DB0為顯示數(shù)據(jù)RS“L”,表示DB7DB0為顯示指令數(shù)據(jù)5R/WSIDH/LR/W“H”,E“H”,數(shù)據(jù)被讀到DB7DB0R/W“L”,E“HL”,DB7DB0的數(shù)據(jù)被寫到R或DR6ESCLKH/L使能信號7DB0H/L三態(tài)數(shù)據(jù)線8DB1H/L三態(tài)數(shù)據(jù)線9DB2H/L三態(tài)數(shù)據(jù)線10DB3H/L三態(tài)數(shù)據(jù)線11DB4H/L三態(tài)數(shù)據(jù)線12DB5H/L三態(tài)數(shù)據(jù)線13DB6H/L三態(tài)數(shù)據(jù)線14DB7H/L三態(tài)數(shù)據(jù)線15PSBH/LH8位或4位并口方式,L串口方式16NC空腳17RESETH/L復位端,低電平有效18VOUTLCD驅(qū)動電壓輸出端19AVDD背光源正端VSC0EDBNPK/WTOU在對液晶模塊進行操作時,其忙標志位(BF)提供內(nèi)部工作情況,BF1表示模塊在進行內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù)。BF0時,模塊為準備狀態(tài),隨時可以接受外部指令和數(shù)據(jù)14。原則上每次對控制器進行讀/寫操作之前,都必須進行讀/寫檢測。實際上,由于單片機的操作速度低于液晶控制器的反應速度,因此可不必進行讀/寫檢測,或只進行簡短的延時即可。35312864液晶的讀寫操作12864與外部CPU接口有并行或串行兩種控制方式,由于本設計采用的是并行讀寫模式,所以主要介紹并行控制方式。讀狀態(tài)的操作時序為RSL,R/WH,EH;讀數(shù)據(jù)操作時序為RSH,R/WH,EH;時序圖如圖316所示。圖31612864液晶的讀時序20KVSS背光源負端寫指令的操作指令為RSL,R/WL,E高脈沖脈沖,DB0DB7指令碼。寫數(shù)據(jù)的操作指令為RSH,R/WL,E高脈沖,DB0DB7數(shù)據(jù)14,時序圖如317所示。圖31712864液晶的寫時序12864液晶是一種可以讀數(shù)據(jù)和存數(shù)據(jù)的器件。由于設計中只用到了些操作,所以要著重說明寫操作的方法。E端為使能端,R/W來區(qū)分讀和寫,RS來控制數(shù)據(jù)還是指令,時序的協(xié)調(diào)性非常重要。35412864液晶的控制指令12864共有18條控制指令,來對顯示器寫狀態(tài)。現(xiàn)在詳細分析液晶的顯示集。1清除顯示CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能清除顯示屏幕,把DDRAM位址計數(shù)器調(diào)整為“00H”。2位址歸位CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHX功能把DDRAM位址計數(shù)器調(diào)整為“00H”,游標回原點,該功能不影響顯示DDRAM。3位址歸位CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHI/DS功能把DDRAM位址計數(shù)器調(diào)整為“00H”,游標回原點,該功能不影響顯示DDRAM4顯示狀態(tài)開/關CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHDCB功能D1;整體顯示ONC1;游標ONB1;游標位置ON5游標或顯示移位控制CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLHS/CR/LXX功能設定游標的移動與顯示的移位控制位這個指令并不改變DDRAM的內(nèi)容。6功能設定CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHDLX0REXX功能DL1(必須設為1)RE1;擴充指令集動作RE0基本指令集動作。7設定CGRAM位址CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能設定CGRAM位址到位址計數(shù)器(AC)。8設定DDRAM位址CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能設定DDRAM位址到位址計數(shù)器(AC)。9讀取忙碌狀態(tài)(BF)和位址CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LHBFAC6AC5AC4AC3AC2AC1AC0功能讀取忙碌狀態(tài)(BF)可以確認內(nèi)部動作是否完成,同時可以讀出位址計數(shù)器(AC)的值。10寫資料到RAMCODERWRSDB7DB6DB5DB4DB3DB2DB1DB0HLD7D6D5D4D3D2D1D0功能寫入資料到內(nèi)部的RAM(DDRAM/CGRAM/TRAM/GDRAM)。11讀出RAM的值CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0功能從內(nèi)部RAM讀取資料(DDRAM/CGRAM/TRAM/GDRAM)。12待命模式(12H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能進入待命模式,執(zhí)行其他命令都可終止待命模式。13卷動位址或IRAM位址選擇(13H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHSR功能SR1;允許輸入卷動位址SR0;允許輸入IRAM位址。14反白選擇(14H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHR1R0功能選擇4行中的任一行作反白顯示,并可決定反白的與否。15睡眠模式(015H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHSLXX功能SL1;脫離睡眠模式SL0;進入睡眠模式。16擴充功能設定(016H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHX1REGL功能RE1;擴充指令集動作RE0;基本指令集動作G1;繪圖顯示ONG0;繪圖顯示OFF。17設定IRAM位址或卷動位址(017H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能SR1;AC5AC0為垂直卷動位址SR0;AC3AC0寫ICONRAM位址。18設定繪圖RAM位址(018H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能設定GDRAM位址到位址計數(shù)器(AC)。35512864液晶接口電路本設計中顯示器顯示出電機的轉(zhuǎn)動狀態(tài),正轉(zhuǎn)、反轉(zhuǎn)、速度等顯示內(nèi)容。本設計的液晶電路如圖318所示。圖318LCD連接電路圖此電路是液晶的驅(qū)動電路,使液晶顯示電機狀態(tài),單片機的P1口為數(shù)據(jù)接口,P35及P36控制液晶的命令與數(shù)據(jù)傳輸?;瑒与娮杵饔脕砜刂埔壕У牧炼?。36蜂鳴器模塊361蜂鳴器介紹蜂鳴器是一種常見的一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,在計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產(chǎn)品中廣泛應用。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標準用“FM”、“LB”、“JD”等)表示15。362蜂鳴器的接口電路蜂鳴器有無源蜂鳴器和有源蜂鳴器之分。有源蜂鳴器在接通接通電源后,內(nèi)部振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,產(chǎn)生震蕩,使蜂鳴器周期性發(fā)聲。無源蜂鳴器需要通過外接信號震蕩,從而使蜂鳴器發(fā)聲。設計中使用的是無源揚聲器,所以必須由單片機供給震蕩信號。其連接電路如圖319所示。U512864晶P307NCKRESTAPVGD圖319蜂鳴器連接電路圖由于設計所用的是無源蜂鳴器,接PNP三極管以放大電流,單片機P00口用來發(fā)出脈沖以驅(qū)動蜂鳴器,每當按下遙控器的鍵盤時蜂鳴器都會發(fā)出聲音。4軟件設計與調(diào)試41主程序流程圖通過在遙控器上的指令輸入,發(fā)出紅外信號,設計中的TL1838接收到紅外信號濾波并處理傳送給單片機,單片機對所得到的信號進行解碼,以判斷所得命令的用意,來控制步進電機的轉(zhuǎn)動以及顯示器的顯示。主程序流程圖如41所示。Q12N3906VCR5ESPLSBLGD否否是是完畢完畢圖41主程序流程圖設計中的程序主要是由中斷函數(shù)來主宰。主要用了外部中斷1,定時中斷2,而主函數(shù)主要用來初始化和等待中斷。當收到外部中斷0的觸發(fā)時,證明遙控器已發(fā)射信號需要解碼,定時器2產(chǎn)生中斷時來供給步進電機脈沖。42程序設計思路本設計的程序設計包括遙控的解碼,顯示屏的顯示及步進電機的驅(qū)動。其中遙控發(fā)出的碼位通過TL1838接收由單片機中程序解碼并依此來控制步進電機及顯主程序輸入初始化LCD顯示W(wǎng)HILE循環(huán)改變電機轉(zhuǎn)動狀態(tài)及相應顯示是否觸發(fā)外部中斷0定時器1是否中斷產(chǎn)生脈沖驅(qū)動電機遙控解碼驅(qū)動蜂鳴器開始結(jié)束示屏。421遙控器的解碼遙控器具有發(fā)射指令作用,由于本設計所用遙控器是任意電視遙控,其載頻為38KHZ,所以需將遙控器的所有用到鍵位解碼,得到相應鍵位編碼后,將其鍵位編碼放到單片機程序中,當遙控器向TL1838發(fā)射時,單片機又對其解碼,如果其編碼與單片機所存編碼相同時即認定此為用戶要發(fā)的命令,執(zhí)行這個命令來控制顯示器及步進電機。由上所述,遙控器的解碼很重要。遙控器發(fā)射32位碼,當我想要知道其所用的鍵的編碼時,必須編一個程序可以顯示相應的鍵的編碼。將TL1838連接到單片機的外部中斷0口,當接受到所發(fā)信息后,TL1838會首先去掉其38K的載頻,以此得到真正要發(fā)射的信息。由于發(fā)射的信息是二進制碼,所以只包含1和0,又因為發(fā)射的1和0都包括高電平和低電平,只是其高低電平的時間不同,所以當外部中斷采用脈沖觸發(fā)時,每個碼都會觸發(fā)外部中斷,當觸發(fā)外部中斷時,立刻開啟定時器定時,以此判斷1和0,同時把其編碼發(fā)送到顯示器上并記錄,然后寫到本設計的程序中。在本設計中,識別遙控器的編碼的程序思路與上面所述是相同的,只是設計中將其編碼進行比較來判斷。422步進電機的控制在本設計中,當單片機發(fā)送一組步進電機識別的編碼脈沖時,步進電機就會轉(zhuǎn)動。所以在程序中,將其脈沖編碼放在數(shù)組中,以供程序調(diào)用并控制電機。此脈沖編碼共有8個狀態(tài),正反轉(zhuǎn)是相同的只是其調(diào)用書序相反,需要注意的是調(diào)用時編碼必須按順序,其編碼表為0X01,0X03,0X02,0X06,0X04,0X0C,0X08,0X09。當發(fā)送完這一串編碼后,步進電機只轉(zhuǎn)動45度,所以要轉(zhuǎn)動一圈,需要調(diào)用8次,也就是說,轉(zhuǎn)動一圈需要64個脈沖。要控制步進電機的速度,只需在每次發(fā)完編碼表一次后,延時。步進電機的優(yōu)點就是轉(zhuǎn)動角位移準確,所以設計中用定時器發(fā)送脈沖,這樣可以得到非常準確的轉(zhuǎn)動速度。設計中,用P2口發(fā)送脈沖編碼,即把脈沖編碼一個一個的通過P2口發(fā)送給步進電機。而此動作放在定時中斷中,每次中斷傳送一個編碼,這樣步進電機優(yōu)化了普通延時程序的不穩(wěn)定、不準確等問題。423顯示屏的控制12864液晶是一種帶存貯功能的器件,有4個顯示行,每行可顯示8個漢字、16個英文字符,一共有20個引腳,帶有背光燈,亮度可以調(diào)節(jié)。在控制顯示屏的顯示時,分為命令和數(shù)據(jù)的控制。無論是數(shù)據(jù)控制還是命令控制,都需要向顯示器的數(shù)據(jù)口中寫數(shù)據(jù),此數(shù)據(jù)口為8位,在本設計中用單片機的P1口來傳輸。而寫數(shù)據(jù)和寫命令控制上的區(qū)別是RS和E引腳。寫命令時控制方法是,RS置為0,E置為0,將要寫命令通過數(shù)據(jù)口用單片機傳輸,然后將E置為1,即把命令寫入顯示器中。寫數(shù)據(jù)時先將RS置為1,E置為0,將要寫數(shù)據(jù)通過數(shù)據(jù)口用單片機傳輸,然后將E職位1,即把數(shù)據(jù)寫入顯示器中。寫命令和寫數(shù)據(jù)是相互配合使用的。寫命令是控制顯示器的顯示格式、顯示位置、清屏、光標設置等,只有指定了上述的命令,才可以寫數(shù)據(jù)寫到自己滿意的地方。寫數(shù)據(jù)就是寫命令之后把自己要顯示的內(nèi)容寫到顯示器中。424蜂鳴器的控制設計中揚聲器用的是無源蜂鳴器,用來指示遙控按鍵后單片機是否解碼成功。無源蜂鳴器的聲音往往大于有源蜂鳴器,所以本設計選用了無源蜂鳴器。無源蜂鳴器和有源蜂鳴器程序上控制的區(qū)別在于有源蜂鳴器給正5V電壓即可發(fā)出聲音。而無源蜂鳴器必須有震蕩,所以要發(fā)送高頻脈沖。為了方便,設計中直接用延時函數(shù)并且0與1不停的連續(xù)發(fā)送。425模塊中的通信依前面所述,各模塊都可以單獨工作,但是要稱為一個整體,就必須找到一個模塊之間通信的方法。本設計用的是控制變量的方式來協(xié)調(diào)各模塊的工作。當遙控器發(fā)出命令后,TL1838接收并傳送到單片機中,單片機接收并解碼,判斷所發(fā)出命令。設置一個變量NUM,不同的遙控器按鍵給NUM不同的數(shù)值。通過這個NUM的數(shù)值,傳遞給步進電機和顯示屏。在步進電機和顯示屏中都用條件語句,來判斷NUM的值并響應不同的動作。程序運行初始化以后即進入WHILE循環(huán)中,這是一個死循環(huán)。死循環(huán)的作用是等待,等待定時器1的中斷,等待外部中斷0的中斷。其中設置定時器1的中斷優(yōu)先級高于外部中斷0。把解碼程序放入外部中斷0中,驅(qū)動電機的程序放入定時器1中斷中,再通過對變量的賦值的判斷,即可完成整個設計的不同模塊之間的通信。5編程與下載軟件單片機的正常運行需要程序的支持,一般使用匯編語言或C語言的編程,編譯鏈接成HEX文件并下載到單片機中。KEIL軟件為用戶提供了程序編輯、編譯、鏈接、調(diào)試等功能,為用戶提供一套完整的程序開發(fā)環(huán)境。但是KEIL生成的HEX文件必須依靠STCISP軟件才能下載到STC89C52中。下面介紹KEIL和STCISP的特點及使用方法。51KEIL軟件隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,KEIL軟件是目前最流行開發(fā)MCS51系列單片機的軟件。KEIL提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(UVISION)將這些部份組合在一起。運行KEIL軟件需要PENTIUM或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT

溫馨提示

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

評論

0/150

提交評論