2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢 業(yè) 設(shè) 計</b></p><p>  設(shè)計題目:基于STC89C52單片機的步進電機控制系統(tǒng)設(shè)計與實現(xiàn)</p><p>  系 別: 信息工程系 </p><p>  班 級: </p><p

2、>  姓   名: </p><p>  指 導(dǎo) 教 師: </p><p>  2013年6月10 日</p><p>  基于單片機的步進電機控制系統(tǒng)</p><p><b>  設(shè)計與實現(xiàn)</b></p&

3、gt;<p><b>  摘 要</b></p><p>  步進電機是一種純粹的數(shù)字控制電動機,是一種受電脈沖信號控制的無刷式直流電動機,是現(xiàn)代定位驅(qū)動裝置的核心,廣泛應(yīng)用在機械、電力、紡織、電子、儀表、印刷以及航空航天、船舶、兵器等國防工業(yè)等領(lǐng)域?;趩纹瑱C的步進電機控制系統(tǒng)具有穩(wěn)定度高、成本低、控制方便、應(yīng)用范圍廣等特點。</p><p>  本

4、系統(tǒng)是由STC89C52單片機核心處理模塊,遙控器命令輸入模塊,ULN2003及28BYJ-48步進電機組成的電機模塊,12864液晶輸出模塊共同組成的基于單片機的步進電機控制系統(tǒng)。</p><p>  本設(shè)計以載波為38KHZ的紅外遙控器作為用戶的控制端,它的功能是把用戶的命令轉(zhuǎn)換為紅外信號。紅外信號由TL1838接收,它可以將光信號轉(zhuǎn)換為電信號,并將其發(fā)送給微控制器STC89C52。STC89C52對電信號進

5、行相應(yīng)處理即可獲得用戶所發(fā)出的指令,并依此來控制28BYJ48型四相八拍電機并以12864液晶作為當前狀態(tài)的顯示器。用戶可以對步進電機進行加速、減速、正轉(zhuǎn)、反轉(zhuǎn)的控制。本步進電機控制系統(tǒng)具有精度高、運行穩(wěn)定、控制方便、維護簡單、應(yīng)用范圍廣等特點。</p><p>  關(guān)鍵詞:STC89C52 12864液晶 步進電機 紅外遙控</p><p>  Design and Im

6、plementation of Stepper Motor Control System Based on MCU</p><p><b>  Abstract</b></p><p>  Stepper motor is a kind of pure digital control motor and brushless dc motor controlled b

7、y electric pulse signal type. Stepper motor is the core of the modern orientation drive, widely used in machinery, electric power, textile, electronics, instruments, printing and aerospace, ships, weapons, and other area

8、s of the defense industry, etc. The characteristics of the stepping motor control system based on single chip microcomputer include high stability, low cost, convenient control and wide appl</p><p>  The ste

9、pper motor control system consists of core processor using the single chip processor, command input control module using IR remote control , display module using 12864 LCD and 28BYJ48 stepping motor module which using UL

10、N2003 as driver.</p><p>  The infrared remote control with carrier for 38 KHZ is used as the control end of the user, which can convert the users’ commands into the infrared signal. The TL1838 can receive t

11、he infrared signal and convert it into electrical signal, which input to tSTC89C52.The MCU can obtain instructions of users by processing the incoming signal and control stepping motor of the 28BYJ48 type, the current st

12、atus can be shown by 12864 LCD. Users could control acceleration, deceleration, forward, inversion </p><p>  Key word: MCU; 12864 LCD; Stepper Motor; Infrared remote control</p><p><b>  目

13、 錄</b></p><p><b>  1 引言1</b></p><p>  2 總體設(shè)計方案2</p><p>  2.1 系統(tǒng)設(shè)計原理2</p><p>  2.2 總體設(shè)計框圖2</p><p>  3系統(tǒng)硬件模塊的組成3</p><p&g

14、t;  3.1單片機控制模塊3</p><p>  3.1.1 STC89C52主要結(jié)構(gòu)3</p><p>  3.1.2 STC89C52功能特性描述3</p><p>  3.1.3 時鐘電路6</p><p>  3.1.4復(fù)位電路6</p><p>  3.2 步進電機模塊7</p>

15、<p>  3.2.1 步進電機簡介7</p><p>  3.2.2步進電機的結(jié)構(gòu)8</p><p>  3.2.3 28BYJ-48步進電機工作原理8</p><p>  3.3 ULN2003芯片概述與特點9</p><p>  3.4 紅外線發(fā)射接收模塊10</p><p>  3.4.1

16、紅外線遙控的介紹10</p><p>  3.4.2紅外通信基本原理10</p><p>  3.4.3 紅外遙控發(fā)射系統(tǒng)12</p><p>  3.4.4 紅外遙控接收系統(tǒng)12</p><p>  3.4.5 TL1838與單片機的接口14</p><p>  3.5 12864顯示模塊14</p

17、><p>  3.5.1 12864液晶的特點14</p><p>  3.5.2 12864液晶的引腳說明15</p><p>  3.5.3 12864液晶的讀寫操作17</p><p>  3.5.4 12864液晶的控制指令17</p><p>  3.5.5 12864液晶接口電路20</p>

18、;<p>  3.6 蜂鳴器模塊20</p><p>  3.6.1 蜂鳴器介紹20</p><p>  3.6.2 蜂鳴器的接口電路21</p><p>  4 軟件設(shè)計與調(diào)試22</p><p>  4.1 主程序流程圖22</p><p>  4.2程序設(shè)計思路23</p>

19、<p>  4.2.1 遙控器的解碼23</p><p>  4.2.2 步進電機的控制23</p><p>  4.2.3 顯示屏的控制24</p><p>  4.2.4 蜂鳴器的控制24</p><p>  4.2.5 模塊中的通信24</p><p>  5 編程與下載軟件25</

20、p><p>  5.1 Keil軟件25</p><p>  5.2 STC-ISP下載軟件26</p><p>  6 硬件電路制作27</p><p>  6.1 原理圖的繪制27</p><p>  6.2 電路實現(xiàn)的基本步驟27</p><p><b>  7 結(jié) 論3

21、0</b></p><p><b>  謝 辭31</b></p><p><b>  參考文獻32</b></p><p><b>  附 錄33</b></p><p><b>  1 引言</b></p><

22、p>  步進電機是一種純粹的數(shù)字控制電動機,又稱為階躍電機或脈沖電機[1]。是一種轉(zhuǎn)動速率與轉(zhuǎn)動步數(shù)可以由脈沖數(shù)量與頻率控制的直流電機,也就是說這是一種轉(zhuǎn)動速度與脈沖頻率相一致的同步電機。它是一種將電脈沖能量轉(zhuǎn)換為機械能的機制,這種方式使它轉(zhuǎn)動的每一個角度,每個角度占用的時間都由用戶掌控。</p><p>  隨著科學技術(shù)的迅猛發(fā)展,步進電機的研究也到達了新的水準。定位驅(qū)動系統(tǒng)已完全由步進系統(tǒng)所主宰。在過去

23、,人們認為步進系統(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ū)動裝

24、置大多是采用步進系統(tǒng)的,這在將來的幾十年都不會改變,這種由脈沖去控制轉(zhuǎn)動方位,脈沖頻率決定轉(zhuǎn)動速度的定位方式一定會在很大程度上決定著工業(yè)與生活中的定位裝置的發(fā)展趨勢。</p><p>  步進電機的上述特點使得它廣泛應(yīng)用于冶金、機械、電力、紡織、電子、輕工、重工、電子、醫(yī)療、印刷以及航空航天等國防工業(yè)等領(lǐng)域。舉一個典型的例子,數(shù)控機床在機械行業(yè)中有著舉足輕重的地位,而數(shù)控機床的正常運轉(zhuǎn)又是依賴步進電機的,它核心就

25、是步進電機系統(tǒng)。這種無需反饋的開環(huán)系統(tǒng)決定了數(shù)控機床的工作可靠、性能穩(wěn)定、維護方便、加工迅捷的特點,也使數(shù)控機床成為如今機床發(fā)展的主要方向。在其他的許多行業(yè)中,步進控制系統(tǒng)也發(fā)揮著舉足輕重的作用。比如我們在生活中常見的有鐘表、廣告牌、繪圖儀等,在生產(chǎn)中常見的有印刷機器、紡織機、包裝機械等。</p><p>  本設(shè)計主要是基于單片機的步進電機控制系統(tǒng),可以通過遙控器的鍵盤設(shè)置期望的步進電機轉(zhuǎn)動狀態(tài),通過紅外發(fā)射裝

26、置及接收裝置,使單片機接收到用戶需要的控制命令,進行相應(yīng)的處理,使步進電機改變運動狀態(tài)并在LCD顯示屏顯示出來。本設(shè)計雖然是理論上的步進系統(tǒng),并沒有廣泛應(yīng)用于工業(yè)中的定位裝置與生產(chǎn)當中。但是隨著步進電機技術(shù)的不斷革新和電機身上所固有的脈沖與角位移嚴格成正比的特點,以及紅外遙控的準確、迅捷、易于控制的優(yōu)勢,步進電機對步進電機穩(wěn)定、高效、準確的控制,都決定了基于單片機的紅外控制步進電機系統(tǒng)將在生活生產(chǎn)中迎來廣闊的市場。為了表現(xiàn)步進電機的在生

27、活生產(chǎn)中的應(yīng)用廣泛性,本設(shè)計的一些功能的設(shè)定有一定的針對性,可以具體的表現(xiàn)出紅外控制的步進系統(tǒng)的優(yōu)越性能。</p><p><b>  2 總體設(shè)計方案</b></p><p>  2.1 系統(tǒng)設(shè)計原理</p><p>  單片機STC89C52是整個系統(tǒng)關(guān)鍵部分,通過對遙控器上鍵盤的命令輸入,經(jīng)遙控器編碼后發(fā)出紅外信號,TL1838接收到信號

28、并在單片機中解碼。本文提出的采用38KHZ的遙控器為核心控制器件的步進電機控制系統(tǒng), 根據(jù)輸出信號的不同可以控制步進電機的轉(zhuǎn)動狀態(tài),其中采用了28BYJ-48的步進電機,以ULN2003為驅(qū)動芯片,并通過單片機程序控制和處理, 從而實現(xiàn)了步進電機的狀態(tài)控制及相應(yīng)狀態(tài)顯示。</p><p>  本系統(tǒng)采用STC89C52單片機為核心處理器,遙控器為命令輸入模塊,由ULN2003及28BYJ-48步進電機組成的轉(zhuǎn)動模

29、塊、12864液晶的輸出模塊共同組成的基于單片機的步進電機控制系統(tǒng)。</p><p>  2.2 總體設(shè)計框圖</p><p>  本設(shè)計采用STC89C52單片機為核心處理器,利用載波為38KHZ的遙控器為輸入模塊鍵盤輸入模塊,控制步進電機的正轉(zhuǎn)和反轉(zhuǎn),并以三種不同的速度進行轉(zhuǎn)動,并且轉(zhuǎn)動狀態(tài)在12864液晶上顯示。系統(tǒng)構(gòu)成如圖2-1所示。</p><p><

30、;b>  圖2-1 系統(tǒng)框圖</b></p><p>  由系統(tǒng)框圖可知,遙控器和TL1838為輸入裝置,步進電機、12864液晶、蜂鳴器為輸出裝置,單片機為中心處理裝置,ULN2003為驅(qū)動器。</p><p>  3系統(tǒng)硬件模塊的組成</p><p>  3.1單片機控制模塊</p><p>  主控電路中,以單片機為主

31、體,通過分析遙控輸入的指令,改變步進電機的運行參數(shù)和顯示參數(shù)。它是系統(tǒng)的大腦。</p><p>  單片機(Micro Controller,又稱微控制器)是在一塊硅片上集成了各種部件的微型機算計,這些部件包括中央處理器CPU、數(shù)據(jù)存貯器RAM、程序存貯器ROM、定時器/計數(shù)器和多種I/O接口電路[3]。</p><p>  3.1.1 STC89C52主要結(jié)構(gòu)</p>&l

32、t;p>  STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),

33、全雙工串行口[4]。</p><p>  3.1.2 STC89C52功能特性描述</p><p>  STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用宏晶公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)

34、可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(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ù)器、串口、

35、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下個中斷或硬件復(fù)位為止[5]。STC89C52的引腳結(jié)構(gòu)如圖3-1所示。</p><p>  圖3-1 STC89C52單片機引腳圖 </p><p><b>  GND:接地。</b></p><p><b>  VCC:供電電壓。</b&g

36、t;</p><p>  P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。</p><p>  P1口

37、:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),在flash編程和校驗時,P1口接收低8位地址字節(jié)。P2 口:P2 口是一個具

38、有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器。能驅(qū)動4個TTL 邏輯電平。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址

39、的高八位。在給出地址“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口也可作為AT8

40、9C51的一些特殊功能口,如表3-1所示。</p><p>  表3-1 P3口的第二功能</p><p>  RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩

41、器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 :外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的信號將

42、不出現(xiàn)。 /VPP:當保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為RESET;當端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTA</p><p>  3.1.3 時鐘電路</p><p>  STC89C52有內(nèi)部時鐘和外部時鐘兩種連接方

43、式。設(shè)計中使用內(nèi)部時鐘,即在RXD和TXD兩端并聯(lián)晶振和適當電容。需要注意的是并不是晶振有定時的作用,而是通過和單片機內(nèi)部的高增益反相放大器連接,使它可以在一定頻率下穩(wěn)定震動,起到口令的作用。其連接電路如圖3-2所示。</p><p>  圖3-2 時鐘電路 </p><p>  在RXD和TXD引腳上并聯(lián)的晶振是系統(tǒng)的定時元件,內(nèi)部振蕩器就產(chǎn)生自激

44、振蕩。 時鐘電路中選用的晶振可以在1.2~24MHz之間選擇,并聯(lián)的電容值可在5~30pF之間選擇,為單片機提供了有序準確的命令,是單片機正常運行的前提。</p><p><b>  3.1.4復(fù)位電路</b></p><p>  AT89C52的外圍電路是必須有復(fù)位功能的,一般分為自動復(fù)位和按鍵復(fù)位。設(shè)計使用的是手動復(fù)位,電路原理是在普通RC復(fù)位電路的基礎(chǔ)上接一個有

45、下拉電阻10K、上拉電容10μf接VCC,電源由開關(guān)經(jīng)串接的1K限流電阻至復(fù)位腳(和上拉電容并聯(lián)),上拉電容支路負責在“上電”瞬間實施復(fù)位;開關(guān)通過1K上拉電阻和10K下拉電阻分壓器,保證對單片機實施按鍵電平復(fù)位[6]。電路圖如圖3-3所示。</p><p><b>  圖3-3 復(fù)位電路</b></p><p>  復(fù)位可以對單片機初始化。其主要功能是把PC初始化為

46、0000H,使單片機從0000H單元開始執(zhí)行程序[7]。復(fù)位一般有兩種作用,一種是在進入系統(tǒng)時要正常的初始化,另一種是程序可能會出現(xiàn)錯誤,運行混亂,是系統(tǒng)處于死鎖狀態(tài),為了解決這種困境,通常采用復(fù)位方式。</p><p>  3.2 步進電機模塊</p><p>  3.2.1 步進電機簡介</p><p>  人類社會進入自動化時代的今天,傳統(tǒng)電動機的功能已不能滿

47、足各種運動控制系統(tǒng)的要求。為了適應(yīng)這些要求,發(fā)展了一系列新的具備控制功能的電動機系統(tǒng),其中較有自己特點,且應(yīng)用十分廣泛的一類便是步進電機。從發(fā)展趨向來講,步進電機已經(jīng)能與直流電動機,異步電動機,以及同步電動機并列,成為電動機的一種基本類型,步進電機己成為除直流電動機和交流電動機以外的第三類電動機。步進電機是電動脈沖信號為角位移或線位移的開環(huán)步進電機控制元件塊。步進電機對于其他種類電機的優(yōu)勢是在非超載的情況下,電機的運動狀態(tài)如電動機轉(zhuǎn)速、

48、停止的位置非常穩(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ā)展,這種缺點也在逐漸改善。步進電機的實物圖如圖

49、3-4所示。</p><p>  圖3-4 28BYJ48型四相八拍電機</p><p>  本設(shè)計選擇28BYJ-48步進電機作為設(shè)計對象,步進電機28BYJ48型四相八拍電機,電壓為DC5V—DC12V。使步進電機連續(xù)轉(zhuǎn)動的方法是不斷的供給控制脈沖。每個脈沖都對應(yīng)步進電機的某一項或兩項繞組,當它的通電狀態(tài)改變時對應(yīng)的轉(zhuǎn)子就會轉(zhuǎn)過一定角度, 這個角度叫做步距角。通電狀態(tài)改變一個周期時轉(zhuǎn)子

50、所轉(zhuǎn)的角度成為齒距。四相步進電機可以在不同的通電方式下運行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB),八拍(A-AB-B-BC-C-CD-D-DA-A)。</p><p>  3.2.2步進電機的結(jié)構(gòu)</p><p>  步進電機有轉(zhuǎn)子和定子兩部分,在電流作用下的,定子和轉(zhuǎn)子的相互作用,使得電機不停轉(zhuǎn)動。28BYJ

51、-48步進電機的定子是由硅鋼片疊成的,定子上有8大磁極,每2個相對的磁極(N,S)組成一對,共有4對,如圖3-5所示。定子齒有個勵磁繞阻,其幾何軸線依次分別與轉(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)子是由軟磁材料制成,其外表面也均勻地分布著小齒,與定子上的小齒相同,并且小齒的大小相同,

52、間距相同。</p><p>  3.2.3 28BYJ-48步進電機工作原理</p><p>  步進電機是一種將電脈沖轉(zhuǎn)換為角位移的執(zhí)行機構(gòu),步進電機的轉(zhuǎn)動圈數(shù)完全取決于給它脈沖的數(shù)量,它轉(zhuǎn)動速度又完全取決于脈沖頻率。只要給步進電機一個脈沖,就會驅(qū)動電機在旋轉(zhuǎn)方向上轉(zhuǎn)動一個固定的角度,可以通過電脈沖個數(shù)來控制角偏移量,從而達到準確定位的目的,同時可以通過控制脈沖頻率,來控制電機轉(zhuǎn)動的速度

53、和加速度,從而達到調(diào)速的目的。本設(shè)計選擇28BYJ-48步進電機作為設(shè)計對象,其原理圖如3-5所示。</p><p>  圖3-5 步進電機接線示意圖</p><p>  在圖中可以看到附在周圍的是定子,在中間的是轉(zhuǎn)子。定子的作用是產(chǎn)生一個電磁場,這個電磁場和轉(zhuǎn)子的磁場可以產(chǎn)生一個扭力[9],使得步進電機轉(zhuǎn)動。但是定子的電磁場是不能和轉(zhuǎn)子磁場在同一直線的。使步進電機不停轉(zhuǎn)動的前提是定子的磁

54、場不停的變換,這個變換是通過一次改變繞組的磁場,始終是定子和轉(zhuǎn)子的磁場產(chǎn)生錯位,促使步進電機的穩(wěn)定轉(zhuǎn)動。而改變磁場切換的時間間隔,就可以控制步進電機的速度了,這就是步進電機的驅(qū)動原理。由于單片機的驅(qū)動電流較小,不能直接用來驅(qū)動步進電機,優(yōu)勢不能充分展現(xiàn),所以一般都是使用ULN2003達林頓陣列驅(qū)動,可以為步進電機提供較大的扭力,使電機穩(wěn)定工作。</p><p>  3.3 ULN2003芯片概述與特點</p

55、><p>  ULN2003芯片是高耐壓、大電流達林頓陣列,由7組達林頓晶體管陣列和相應(yīng)的電阻網(wǎng)絡(luò)以及鉗位二極管網(wǎng)絡(luò)構(gòu)成,具有同時驅(qū)動7組負載的能力,為單片雙極型大功率高速集成電路[10]。由于步進電機并不是簡單的轉(zhuǎn)動,它要帶動不同的負載,完成不同的工作,所以需要產(chǎn)生較大的扭力,又由于直接使用三極管驅(qū)動的局限和功率電子電路大多要求具有大電流輸出能力,所以步進電機的驅(qū)動一般使用ULN2003。ULN2003芯片高壓大電

56、流達林頓晶體管陣列產(chǎn)品屬于可控大功率器件功率驅(qū)動電路,可控大功率驅(qū)動器件驅(qū)動電路是功率電子設(shè)備輸出電路的一個重要組成部分。具體電路圖如圖3-6所示。</p><p>  圖3-6 ULN2003接線示意圖</p><p>  ULN2003實際上只是一個放大電路,用來放大電流,對于實際的邏輯控制沒有任何作用。如果沒有這個芯片電機也會轉(zhuǎn)動,只是轉(zhuǎn)動的扭力會受很大影響,制約步進電機的性能。&

57、lt;/p><p>  3.4 紅外線發(fā)射接收模塊</p><p>  3.4.1 紅外線遙控的介紹</p><p>  紅外線是太陽光線中眾多不可見光線中的一種,在太陽光中就包含著紅外線。由德國科學家霍胥爾于1800年發(fā)現(xiàn),又稱為紅外熱輻射。很多人不知道紅外線與紫外線等不可見光線或者紅光等可見光線的產(chǎn)生區(qū)別,它們最大的區(qū)別是波長不同,波長是震蕩頻率的結(jié)果。人眼能夠識別

58、的可見光的種類為紅、橙、黃、綠、青、藍、紫,波長是從長到短排列的。其中紅光的波長范圍為0.62~0.76um;紫光的波長范圍為0.38~0.46。比紫光的波長還要短的光叫紫外線,比紅光的波長還要長的光叫紅外線。紅外線遙控技術(shù)就是利用波長為0.76~1.5μm之間的近紅外線來傳送控制信號的。紅外線是我們最常用的一種不可見光線,家用電器的遙控器基本上都是使用紅外線。有一個很有趣的特點,當按下遙控器的鍵盤時,我們看不到紅外發(fā)射頭發(fā)出的光線,但

59、是如果我們用照相機來對著紅外發(fā)射頭,按下鍵盤時,在相機中我們可以觀察到它發(fā)出了亮光。</p><p>  紅外遙控的特點是造價較低,適合市場的推廣,各類家庭用戶的使用。編解碼較容易,不會因為程序電路的復(fù)雜性而經(jīng)常出現(xiàn)故障。它由32位碼長,4段碼,通過用戶碼的不同區(qū)別開了不同產(chǎn)品的不同遙控,以免互相干擾,不影響周邊環(huán)境、不干擾其它電器設(shè)備。還有一個重要原因,紅外線不會對人體造成傷害,發(fā)射接收距離較長,方便用戶使用。

60、一般在10米以內(nèi)可以靈敏接收的。</p><p>  3.4.2紅外通信基本原理 </p><p>  通信控制系統(tǒng)大多是由發(fā)射與接收兩部分組成的,紅外通信也不例外。發(fā)射系統(tǒng)對一個紅外輻射源進行調(diào)制后發(fā)射紅外信號,而接收系統(tǒng)用紅外一體化接收頭進行接收,兩者聯(lián)合構(gòu)成了紅外通信系統(tǒng)。紅外通信的基本原理是:發(fā)送端將基帶二進制信號調(diào)制為一系列的脈沖串信號(載波信號),通過紅外發(fā)射管發(fā)射紅外信號。

61、紅外信號由接收端轉(zhuǎn)換成電信號,并對其進行放大、濾波等處理,還原成二進制數(shù)字信號,并將其輸出。</p><p>  由于各遙控產(chǎn)品的不同,還有很多不同的遙控廠商,必須有一個通信協(xié)議來保障不同種類的紅外產(chǎn)品獲得最佳的通信效果。紅外線的波長在750nm至1mm之間,紅外通信一般采用紅外波段內(nèi)的近紅外線,波長在0.75um至25um之間。紅外數(shù)據(jù)協(xié)會將紅外通信協(xié)議定為波長限定在850nm~900nm范圍之間。紅外線的調(diào)制

62、方法常用的有兩種,一種是通過脈沖寬度來實現(xiàn)信號調(diào)制的脈寬調(diào)制(PWM),另一種是通過脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制的脈沖調(diào)制(PPM)[13] 。</p><p>  本設(shè)計采用脈沖調(diào)制方法,即二進制信息由兩個脈沖的時間間隔來表示,首先產(chǎn)生一個同步頭,然后產(chǎn)生2個8位用戶碼,接著8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,如圖3-7所示。</p><p>  圖3-7 PPM調(diào)制波形圖</p>

63、;<p>  紅外遙控的一個數(shù)據(jù)幀是由引導(dǎo)碼、用戶碼、數(shù)據(jù)碼和數(shù)據(jù)反碼組成的。每個品牌的用戶碼一般都是不同的,數(shù)據(jù)碼同種種類的遙控器一般差異不大。每段碼都為8位,2段用戶碼,數(shù)據(jù)碼及其反碼只有1段。每幀數(shù)據(jù)由一個起始位、2段8個用戶碼位8個數(shù)據(jù)碼和數(shù)據(jù)反碼構(gòu)成,如圖3-8所示。每幀傳送1個字節(jié)的數(shù)據(jù)。</p><p>  圖3-8 數(shù)據(jù)幀結(jié)構(gòu)示意圖</p><p>  由于紅

64、外光存在反射,在全雙工的方式下發(fā)送的信號也可能會被本身接收,因此,紅外通信應(yīng)采用異步半雙工方式,即通信的某一方發(fā)送和接收交替進行。</p><p>  3.4.3 紅外遙控發(fā)射系統(tǒng)</p><p>  紅外遙控系統(tǒng)結(jié)構(gòu)紅外遙控系統(tǒng)主要分為調(diào)制、發(fā)射、接收和解調(diào)四部分,如圖3-9所示。</p><p>  圖3-9 紅外遙控系統(tǒng)</p><p>

65、;  調(diào)制紅外遙控發(fā)射數(shù)據(jù)時采用調(diào)制的方式,即把數(shù)據(jù)和一定頻率的載波進行“與”操作,這樣可以提高發(fā)射效率和降低電源功耗。調(diào)制載波頻率一般在30kHz到60kHz之間,一般紅外遙控使用的是38kHz,占空比1/3的方波。如圖3-10所示。</p><p>  圖3-10 載波波形</p><p>  有很多芯片都可以發(fā)射紅外光,但是對于遙控的芯片選擇要考慮使用設(shè)備和編碼種類的不同。對于家用電

66、器的遙控,必須功率要低,這樣電池才可以長時間使用,一般都使用可休眠的的發(fā)射芯片,能不按鍵時遙控處于不工作模式。芯片一般選用的晶振為陶瓷共鳴器,因為其有足夠的物理撞擊能力,雖然準確性不如石英晶體,但是通常是可以允許一些誤差的。經(jīng)過編碼后,要用專用的發(fā)射頭發(fā)射出去。普通的發(fā)光二極管是不能擔此重任的,因為它只能發(fā)射出可見光。紅外發(fā)射二極管是專門用來發(fā)射紅外線的,它的內(nèi)部材料是與普通二極管完全不同的,所以導(dǎo)致了其發(fā)出的是紅外線而不是可見光[12

67、]。聽上去紅外發(fā)射二極管價格也很便宜,與普通發(fā)光二極管差不多,某些方面也促進了紅外通信技術(shù)的發(fā)展。</p><p>  3.4.4 紅外遙控接收系統(tǒng)</p><p>  有發(fā)射就要有接收,由于發(fā)射的紅外線有38K的載波,所以一定要先把接收的信號濾波才行,為了得到準確的編碼,還要把信號進行放大、積分等。這是一個復(fù)雜的過程,也應(yīng)該有復(fù)雜的電路來處理。隨著科技的發(fā)展,芯片集成能力的不斷提高,這個

68、看似復(fù)雜的任務(wù)只需要一個叫做紅外接收頭的電子器件就可以完成工作。常用的紅外接收頭有HX1838,TL1838等,它們的性能、結(jié)構(gòu)基本都是一樣的,可以把38K載波濾掉,并進行一定的處理,使中心處理器件接收到準確的編碼,但需要注意的是它處理后的是原來編碼的反碼。圖3-11中就是TL1838一體化紅外接收頭,其38就是接收38K載波的意思。</p><p>  圖3-11 TL1838實物圖</p>&l

69、t;p>  TL1838如圖3-11所示,從左邊開始,分別為1腳、2腳、3腳,分別為信號輸出腳、地和電源,其電平與TTL兼容。TL1838系列特性如下:</p><p>  工作電壓:2.7~5.5V</p><p>  工作電流:1.4mA</p><p><b>  距離:15M</b></p><p><

70、;b>  頻率:38K</b></p><p><b>  角度:±45°</b></p><p><b>  波長:940nm</b></p><p>  當TL1838接收到紅外光信號時,內(nèi)部的PIN紅外接收管將其裝換為電信號,又經(jīng)過放大電路、解調(diào)電路的作用,由輸出引腳輸出與TTL

71、電平兼容的電信號,該電信號可以直接送到微處理器中處理。 </p><p>  TL1838的輸出波形如圖3-12所示。當接收到頻帶內(nèi)的紅外信號時,TL1838接收器會輸出低電平,否則數(shù)出高電平,從而“將時斷時續(xù)”的紅外信號解調(diào)成原來的連續(xù)方波信號。需要注意的一點是,它并沒有把紅外信號解碼,因為它處理后發(fā)出的信號不是標準的1、0高低電平。不管是1還是0,都包含著高低電平,只是高低電平所持續(xù)的時間是不同的,這需要單片

72、機自己通過程序來判斷了。</p><p>  圖3-12(a) 已調(diào)制紅外信號 (b) TL1838輸出信號</p><p>  TL1838的有效傳輸距離是15m,它的工作電壓為2.7~5.5V,接收穩(wěn)定,功率小,在各種紅外接收場合的可以使用。TL1838由于它的穩(wěn)定性能,低廉的價格,是一款性價比很高的紅外一體化接收頭[13]。</p><p>  3.4.5 T

73、L1838與單片機的接口</p><p>  本設(shè)計的紅外遙控系統(tǒng)是將普通遙控器解碼,把它的32位碼寫進單片機程序中,使得可以通過對遙控器鍵盤的控制,單片機可以得到相對指令。其連接線電路如圖3-13所示。</p><p>  圖3-13 遙控的接收頭的連線</p><p>  把其輸出端接單片機的外部中斷0,每當遙控器發(fā)出信號時都會觸發(fā)單片機外部中斷,這時再觸發(fā)單片

74、機的定時中斷對其發(fā)出的信號進行鑒定,以檢測出其碼位。</p><p>  3.5 12864顯示模塊</p><p>  3.5.1 12864液晶的特點</p><p>  現(xiàn)在的字符型液晶模塊已經(jīng)是單片機應(yīng)用設(shè)計中最常用的信息顯示器件了。12864型液晶顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點。設(shè)計中用到的就是這種顯示屏。其實物圖如圖3-14所示。<

75、/p><p>  圖3-14 12864實物圖</p><p>  12864型液晶顯示屏共有20個引腳,其中有8位數(shù)據(jù)總線D0~D7,5個控制引腳R/W、E、RS、PSB、RST,5個電源引腳,其中包括背光電源和顯示器電源。三個用于調(diào)節(jié)背景亮度和字符亮度以及供電的引腳。12864型液晶是利用液晶經(jīng)過處理后能夠改變光線傳輸方向的特性,達到顯示字符或圖形的目的。它由點陣字符顯示器件和專用的行和列

76、驅(qū)動器組成,體積小、功耗極低、顯示內(nèi)容豐富??梢酝ㄟ^對外圍電路的調(diào)節(jié)來控制屏幕亮度,工作電壓為5V。</p><p>  本設(shè)計使用的液晶使用ST7920控制器,5V電壓驅(qū)動,帶背光,內(nèi)置8192個16*16點陣、128個字符(8*16點陣)及64*256點陣顯示RAM。與外部CPU接口采用并行或串行兩種控制方式。</p><p>  3.5.2 12864液晶的引腳說明</p>

77、;<p>  12864液晶有多種驅(qū)動芯片,雖然驅(qū)動芯片有很多種,但原理基本相同。本次設(shè)計采用驅(qū)動芯片為ST7920的12864液晶對步進電機工作狀態(tài)進行顯示,其引腳分布圖如圖3-15所示。</p><p>  圖3-15 12864液晶管腳圖</p><p>  12864液晶管腳及其功能描述,如表3-2所示:</p><p>  表3-2 12

78、864管腳說明</p><p>  在對液晶模塊進行操作時,其忙標志位(BF)提供內(nèi)部工作情況,BF=1表示模塊在進行內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù)。BF=0時,模塊為準備狀態(tài),隨時可以接受外部指令和數(shù)據(jù)[14]。</p><p>  原則上每次對控制器進行讀/寫操作之前,都必須進行讀/寫檢測。實際上,由于單片機的操作速度低于液晶控制器的反應(yīng)速度,因此可不必進行讀/寫檢測,或只進行

79、簡短的延時即可。</p><p>  3.5.3 12864液晶的讀寫操作</p><p>  12864與外部CPU接口有并行或串行兩種控制方式,由于本設(shè)計采用的是并行讀寫模式,所以主要介紹并行控制方式。讀狀態(tài)的操作時序為RS=L,R/W=H,E=H;讀數(shù)據(jù)操作時序為RS=H,R/W=H,E=H;時序圖如圖3-16所示。</p><p>  圖3-16 1286

80、4液晶的讀時序</p><p>  寫指令的操作指令為RS=L,R/W=L,E=高脈沖脈沖,DB0~DB7=指令碼。寫數(shù)據(jù)的操作指令為RS=H,R/W=L,E=高脈沖,DB0~DB7=數(shù)據(jù)[14],時序圖如3-17所示。 </p><p>  圖3-17 12864液晶的寫時序</p><p>  12864液晶是一種可以讀數(shù)據(jù)和存數(shù)據(jù)的器件。由于設(shè)計中只用到了些

81、操作,所以要著重說明寫操作的方法。E端為使能端,R/W來區(qū)分讀和寫,RS來控制數(shù)據(jù)還是指令,時序的協(xié)調(diào)性非常重要。</p><p>  3.5.4 12864液晶的控制指令</p><p>  12864共有18條控制指令,來對顯示器寫狀態(tài)?,F(xiàn)在詳細分析液晶的顯示集。</p><p><b>  (1)清除顯示</b></p>&

82、lt;p>  CODE:RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:清除顯示屏幕,把DDRAM位址計數(shù)器調(diào)整為“00H”。</p><p><b>  (2)位址歸位</b></p><p>  CODE:RW RS DB7 DB

83、6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:把DDRAM位址計數(shù)器調(diào)整為“00H”,游標回原點,該功能不影響顯示DDRAM。</p><p><b>  (3)位址歸位</b></p><p>  CODE:RW RS DB7 DB6 DB5 DB4 DB3

84、 DB2 DB1 DB0</p><p>  功能:把DDRAM位址計數(shù)器調(diào)整為“00H”,游標回原點,該功能不影響顯示DDRAM</p><p>  (4)顯示狀態(tài) 開/關(guān)</p><p>  CODE:RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>

85、  功能: D=1;整體顯示ON C=1;游標ON B=1;游標位置ON</p><p>  (5)游標或顯示移位控制</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:設(shè)定游標的移動與顯示的移位控制位:這個指令并不改變DDRA

86、M的內(nèi)容。</p><p><b>  (6)功能設(shè)定</b></p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:DL=1(必須設(shè)為1) RE=1;擴充指令集動作 RE=0:基本指令集動作。</p>

87、<p>  (7)設(shè)定CGRAM位址</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:設(shè)定CGRAM位址到位址計數(shù)器(AC)。</p><p>  (8)設(shè)定DDRAM位址</p><p>  CODE: RW

88、 RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:設(shè)定DDRAM位址到位址計數(shù)器(AC)。</p><p>  (9)讀取忙碌狀態(tài)(BF)和位址</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1

89、 DB0</p><p>  功能:讀取忙碌狀態(tài)(BF)可以確認內(nèi)部動作是否完成,同時可以讀出位址計數(shù)器(AC)的值。</p><p>  (10)寫資料到RAM</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:寫入資料

90、到內(nèi)部的RAM(DDRAM/CGRAM/TRAM/GDRAM)。</p><p>  (11)讀出RAM的值</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:從內(nèi)部RAM讀取資料(DDRAM/CGRAM/TRAM/GDRAM)。</p&g

91、t;<p>  (12)待命模式(12H)</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:進入待命模式,執(zhí)行其他命令都可終止待命模式。</p><p>  (13)卷動位址或IRAM位址選擇(13H)</p>&l

92、t;p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:SR=1;允許輸入卷動位址 SR=0;允許輸入IRAM位址 。</p><p>  (14)反白選擇(14H)</p><p>  CODE: RW RS DB7 DB6

93、 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:選擇4行中的任一行作反白顯示,并可決定反白的與否。</p><p>  (15)睡眠模式(015H)</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p>

94、<p>  功能:SL=1;脫離睡眠模式 SL=0;進入睡眠模式。</p><p>  (16)擴充功能設(shè)定(016H)</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:RE=1;擴充指令集動作 RE=0;基本指令集動作

95、 G=1;繪圖顯示ON G=0;繪圖顯示OFF。</p><p>  (17)設(shè)定IRAM位址或卷動位址(017H)</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:SR=1;AC5~AC0為垂直卷動位址 SR=0;AC3~AC0寫ICO

96、NRAM位址。</p><p>  (18)設(shè)定繪圖RAM位址(018H)</p><p>  CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0</p><p>  功能:設(shè)定GDRAM位址到位址計數(shù)器(AC)。</p><p>  3.5.5 12864液晶接口電路

97、</p><p>  本設(shè)計中顯示器顯示出電機的轉(zhuǎn)動狀態(tài),正轉(zhuǎn)、反轉(zhuǎn)、速度等顯示內(nèi)容。本設(shè)計的液晶電路如圖3-18所示。</p><p>  圖3-18 LCD連接電路圖</p><p>  此電路是液晶的驅(qū)動電路,使液晶顯示電機狀態(tài),單片機的P1口為數(shù)據(jù)接口,P3.5及P3.6控制液晶的命令與數(shù)據(jù)傳輸?;瑒与娮杵饔脕砜刂埔壕У牧炼?。</p><

98、;p><b>  3.6 蜂鳴器模塊</b></p><p>  3.6.1 蜂鳴器介紹</p><p>  蜂鳴器是一種常見的一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,在計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中廣泛應(yīng)用。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標準用“F

99、M”、“LB”、“JD”等)表示[15]。</p><p>  3.6.2 蜂鳴器的接口電路</p><p>  蜂鳴器有無源蜂鳴器和有源蜂鳴器之分。有源蜂鳴器在接通接通電源后,內(nèi)部振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,產(chǎn)生震蕩,使蜂鳴器周期性發(fā)聲。無源蜂鳴器需要通過外接信號震蕩,從而使蜂鳴器發(fā)聲。設(shè)計中使用的是無源揚聲器,所以必須由單片機供給震蕩信號。其連接電路如圖3-19所示。<

100、/p><p>  圖3-19 蜂鳴器連接電路圖</p><p>  由于設(shè)計所用的是無源蜂鳴器,接PNP三極管以放大電流,單片機P0.0口用來發(fā)出脈沖以驅(qū)動蜂鳴器,每當按下遙控器的鍵盤時蜂鳴器都會發(fā)出聲音。</p><p><b>  4 軟件設(shè)計與調(diào)試</b></p><p>  4.1 主程序流程圖 </p>

101、<p>  通過在遙控器上的指令輸入,發(fā)出紅外信號,設(shè)計中的TL1838接收到紅外信號濾波并處理傳送給單片機,單片機對所得到的信號進行解碼,以判斷所得命令的用意,來控制步進電機的轉(zhuǎn)動以及顯示器的顯示。主程序流程圖如4-1所示。</p><p>  否 否</p><p>  是

102、 是</p><p><b>  完畢</b></p><p>  完畢 </p><p>  圖4-1 主程序流程圖</p><p>  設(shè)計中的程序主要是由中斷函數(shù)來主宰。主要用了外部中斷1,定時中斷2,而主函數(shù)主要用來初始化和等待中斷。當收到外部中斷0的

103、觸發(fā)時,證明遙控器已發(fā)射信號需要解碼,定時器2產(chǎn)生中斷時來供給步進電機脈沖。</p><p><b>  4.2程序設(shè)計思路</b></p><p>  本設(shè)計的程序設(shè)計包括遙控的解碼,顯示屏的顯示及步進電機的驅(qū)動。其中遙控發(fā)出的碼位通過TL1838接收由單片機中程序解碼并依此來控制步進電機及顯示屏。</p><p>  4.2.1 遙控器的解

104、碼</p><p>  遙控器具有發(fā)射指令作用,由于本設(shè)計所用遙控器是任意電視遙控,其載頻為38KHZ,所以需將遙控器的所有用到鍵位解碼,得到相應(yīng)鍵位編碼后,將其鍵位編碼放到單片機程序中,當遙控器向TL1838發(fā)射時,單片機又對其解碼,如果其編碼與單片機所存編碼相同時即認定此為用戶要發(fā)的命令,執(zhí)行這個命令來控制顯示器及步進電機。</p><p>  由上所述,遙控器的解碼很重要。遙控器發(fā)射

105、32位碼,當我想要知道其所用的鍵的編碼時,必須編一個程序可以顯示相應(yīng)的鍵的編碼。將TL1838連接到單片機的外部中斷0口,當接受到所發(fā)信息后,TL1838會首先去掉其38K的載頻,以此得到真正要發(fā)射的信息。由于發(fā)射的信息是二進制碼,所以只包含1和0,又因為發(fā)射的1和0都包括高電平和低電平,只是其高低電平的時間不同,所以當外部中斷采用脈沖觸發(fā)時,每個碼都會觸發(fā)外部中斷,當觸發(fā)外部中斷時,立刻開啟定時器定時,以此判斷1和0,同時把其編碼發(fā)送

106、到顯示器上并記錄,然后寫到本設(shè)計的程序中。</p><p>  在本設(shè)計中,識別遙控器的編碼的程序思路與上面所述是相同的,只是設(shè)計中將其編碼進行比較來判斷。</p><p>  4.2.2 步進電機的控制</p><p>  在本設(shè)計中,當單片機發(fā)送一組步進電機識別的編碼脈沖時,步進電機就會轉(zhuǎn)動。所以在程序中,將其脈沖編碼放在數(shù)組中,以供程序調(diào)用并控制電機。此脈沖編

107、碼共有8個狀態(tài),正反轉(zhuǎn)是相同的只是其調(diào)用書序相反,需要注意的是調(diào)用時編碼必須按順序,其編碼表為0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09。</p><p>  當發(fā)送完這一串編碼后,步進電機只轉(zhuǎn)動45度,所以要轉(zhuǎn)動一圈,需要調(diào)用8次,也就是說,轉(zhuǎn)動一圈需要64個脈沖。要控制步進電機的速度,只需在每次發(fā)完編碼表一次后,延時。步進電機的優(yōu)點就是轉(zhuǎn)動角位移準確,所以設(shè)計中用定時器發(fā)送

108、脈沖,這樣可以得到非常準確的轉(zhuǎn)動速度。</p><p>  設(shè)計中,用P2口發(fā)送脈沖編碼,即把脈沖編碼一個一個的通過P2口發(fā)送給步進電機。而此動作放在定時中斷中,每次中斷傳送一個編碼,這樣步進電機優(yōu)化了普通延時程序的不穩(wěn)定、不準確等問題。</p><p>  4.2.3 顯示屏的控制</p><p>  12864液晶是一種帶存貯功能的器件,有4個顯示行,每行可顯示

109、8個漢字、16個英文字符,一共有20個引腳,帶有背光燈,亮度可以調(diào)節(jié)。</p><p>  在控制顯示屏的顯示時,分為命令和數(shù)據(jù)的控制。無論是數(shù)據(jù)控制還是命令控制,都需要向顯示器的數(shù)據(jù)口中寫數(shù)據(jù),此數(shù)據(jù)口為8位,在本設(shè)計中用單片機的P1口來傳輸。而寫數(shù)據(jù)和寫命令控制上的區(qū)別是RS和E引腳。寫命令時控制方法是,RS置為0,E置為0,將要寫命令通過數(shù)據(jù)口用單片機傳輸,然后將E置為1,即把命令寫入顯示器中。寫數(shù)據(jù)時先將

溫馨提示

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

最新文檔

評論

0/150

提交評論