《單片機原理及應用》課程設計說明書設計并實現(xiàn)紅外遙控步進電機
《《單片機原理及應用》課程設計說明書設計并實現(xiàn)紅外遙控步進電機》由會員分享,可在線閱讀,更多相關《《單片機原理及應用》課程設計說明書設計并實現(xiàn)紅外遙控步進電機(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、武漢理工大學《單片機原理及應用》課程設計說明書 課程設計任務書 學生姓名: 專業(yè)班級: 電信0804 指導教師: 工作單位: 題 目: 設計并實現(xiàn)紅外遙控步進電機 初始條件: 1. Protues軟件; 2. 課程設計輔導資料:“占空比可調(diào)的信號發(fā)生器設計與應用”、“電路設計技術與應用”等; 3. 先修課程:模擬電子技術、數(shù)字電子技術、Protues電路設計教程及單片機原理及應用等課程 要求完成的主要任務:(包括課程設計工作量及其技術要求,以及說明書
2、撰寫等具體要求) 1. 課程設計時間:1周; 課程設計內(nèi)容:利用紅外遙控器控制步進電機的動作,動作要有正、反方向轉(zhuǎn)動;單步;連續(xù);快慢等動作。 2. 本課程設計統(tǒng)一技術要求:研讀輔導資料對應章節(jié),對選定的設計題目進行理論分析,針對具體設計部分的原理分析、建模、必要的推導和可行性分析,畫出程序設計框圖,編寫程序代碼(含注釋),上機調(diào)試運行程序,記錄實驗結(jié)果(含計算結(jié)果和圖表),并對實驗結(jié)果進行分析和總結(jié); 3. 課程設計說明書按學校“課程設計工作規(guī)范”中的“統(tǒng)一書寫格式”撰寫,具體包括: ① 目錄; ② 設計原理和方法; ③ 系統(tǒng)硬件線路設計圖; ④ 程序框圖; ⑤ 資源分配表
3、; ⑥ 源程序 ⑦ 性能分析 ⑧ 課程設計的心得體會(至少500字); ⑨ 參考文獻; 時間安排: 指導教師簽名: 年 月 日 系主任(或責任教師)簽名: 年 月 日 目錄 1總體設計原理.…………………………………………………..2 2系統(tǒng)硬件及主要模塊設計……………………………………...3 2.1紅外遙控模塊...……………………..........................................3 2.1.1紅外遙控編解碼原理...……
4、………….…..........................................3 2.2 步進脈沖模塊…………………………………..…...................6 2.2.1步進電機的工作原理與控制…………………………........................6 2.2.2步進機的驅(qū)動電路……………………...............................................8 2.3 主要接口電路……………………...………………….........9 2.3.1步進機的
5、驅(qū)動電路與8051的接口電路……………….....................9 2.3.3 模擬按鍵與8051的接口電路……………………...........................10 .2.4資源分配表和總圖.…………………………………….............11 3源程序設計……………………………………………...............13 3.1實物源程序.……………………………………………….........13 3.2 仿真源程序.……………………………………………............19 4 仿真結(jié)果與分析………
6、……………………………………......23 5 心得體會……………………………………………………......28 6 參考文獻……………………………………………………......29 7 本科生課程設計成績評定表………………………………......30 1 總體設計原理 利用紅外遙控器控制步進電機其實和用鍵盤控制步進電機原理類似,只不過按鍵是用導線傳遞鍵是否按下的信號,而紅外則是利用LED發(fā)射紅外線傳遞按鍵信息。由于紅外采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms 的組合表示二進制的“0”;以脈寬為0.565ms、
7、間隔1.685ms、周期為2.25ms 的組合表示二進制的“1”,在解碼時通過判斷高低電平持續(xù)時間的長短來識別發(fā)送的鍵值。 控制步進電機正、反方向轉(zhuǎn)動、單步、連續(xù)、快慢等動作,原理其實并不困難。步進電機將電脈沖信號轉(zhuǎn)換成角位移,即給一個脈沖,步進電機就轉(zhuǎn)動一個角度,轉(zhuǎn)動的角度大小與施加的脈沖數(shù)成正比,因此,單步和連續(xù)的動作區(qū)別只是單片機給步進電機脈沖個數(shù)不同而已。每按一次單步鍵就是給電機一個脈沖,而連續(xù)則是不斷的給電機脈沖,達到連續(xù)運轉(zhuǎn)的目的。 單片機的晶振為12MHz,單周期指令執(zhí)行時間為1MHz,由于機械動作需要一定時間來完成,如果以這么快的速度來給脈沖,電機是不會轉(zhuǎn)動的,因此,在兩個
8、脈沖之間必須要有一定時間差,電機才有時間來執(zhí)行動作。電機轉(zhuǎn)動的速度與脈沖頻率成正比,控制脈沖間隔時間就相當于控制了步進電機的轉(zhuǎn)動角頻率即快慢。 步進電機的轉(zhuǎn)動需要向電機以一定的順序分配驅(qū)動脈沖。如四相單四拍,其脈沖分配的方式和順序為A-B-C-D-A,如此周而復始,即可轉(zhuǎn)動。轉(zhuǎn)動方向與脈沖順序有關,如果給相反脈沖,那么電機就會反轉(zhuǎn)。 根據(jù)該系統(tǒng)設計要求,需要通過紅外遙控器按下按鍵和顯示器來改變步進電機的運動狀態(tài)以及顯示,只需要紅外遙控器中6個按鍵就可滿足需求,外加8位LED數(shù)碼顯示管即可。由于實驗箱上只有8個連體數(shù)碼管,因此需要動態(tài)掃描。通過從鍵盤上輸入正、反轉(zhuǎn)命令,按鍵數(shù)值顯示在數(shù)
9、碼管上,CPU再讀取正、反轉(zhuǎn)命令,加減速后執(zhí)行。經(jīng)鍵盤可完成啟動、停止、正轉(zhuǎn)、反轉(zhuǎn)、速度設置控制功能。 按下紅外遙控器上的相關按鈕電機執(zhí)行相關動作,同時數(shù)碼管上顯示按鍵的數(shù)值,系統(tǒng)大部分都是軟件實現(xiàn)的,整個設計框圖如下: LED顯示 單片機 步進電機 紅外遙控按鍵 紅外接收 圖1 總體設計框圖 2主要模塊設計 2.1紅外遙控模塊 本模塊應完成對紅外遙控器有無鍵按下進行確認,當有鍵按下時,確定按鍵值,并根據(jù)所得鍵值進行處理(包括所按鍵是不是停止鍵還是執(zhí)行鍵。如是停止鍵,不斷掃描鍵盤程序,等待執(zhí)行鍵按下;如是執(zhí)行鍵就啟動產(chǎn)生步進電機控制信號程序)。顯示
10、模塊主要是完成在進行鍵盤按下時,顯示輸入的數(shù)據(jù)值(轉(zhuǎn)矩數(shù)、轉(zhuǎn)動方向、轉(zhuǎn)動速率及運行方式)。 2.1.1紅外遙控編碼原理: 通用型紅外遙控系統(tǒng)由紅外發(fā)射和紅外接收兩大部分組成?,F(xiàn)在常應用編/解碼專用集成電路芯片來進行控制操作,如圖2所示。發(fā)射部分包括鍵盤、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路等。 圖2 紅外線遙控系統(tǒng)框圖 紅外遙控器所產(chǎn)生的脈沖編碼的格式一般為:引導碼(頭)─地址碼(用戶碼)─數(shù)據(jù)碼─數(shù)據(jù)的反碼。其引導碼為寬度是10 ms左右的一個高脈沖和一個低脈沖的組合,用來標識指令碼的開始。地址碼、數(shù)據(jù)碼、數(shù)據(jù)碼的反碼均為數(shù)據(jù)編碼
11、脈沖,用二進制數(shù)表示?!?”和“1”均由ms量級的高低脈沖的組合代表。地址碼(即用戶碼)是對每個遙控系統(tǒng)的標識。通過對地址碼的檢驗,每個遙控器就只能控制一個設備動作,有效地防止了多個設備之間的串擾。當指令鍵按下時,指令信號產(chǎn)生電路便產(chǎn)生脈沖編碼。數(shù)據(jù)碼后面一般還要有數(shù)據(jù)碼的反碼,用來檢驗數(shù)據(jù)碼接收的正確性,以防止誤動作,增強系統(tǒng)的可靠性。這些指令信號由調(diào)制電路調(diào)制成32~40 kHz的信號,經(jīng)調(diào)制后輸出,最后由驅(qū)動電路驅(qū)動紅外發(fā)射器件(LED)發(fā)出紅外遙控信號。 紅外遙控發(fā)射接收器及其編解碼 遙控發(fā)射器的專用芯片很多,根據(jù)編碼格式可以分成兩大類,即頻分制與碼分制。頻分制是按照載
12、頻的不同來進行頻道劃分的,即它用不同的頻率信號來表示不同的控制信號;碼分制是用不同的脈沖數(shù)目或者寬度不同的脈沖組合來代表不同的控制指令的。這里我們以運用比較廣泛,解碼比較容易的碼分制來加以說明。現(xiàn)以日本NEC的PD6121G組成發(fā)射電路為例說明編碼原理。當發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同則遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”,其波形如圖2-4所示。
13、 解碼的關鍵是如何識別“0”和“1”,從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。如果從0.56ms低電平過后,開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右均可。但根據(jù)碼的格式,應該等待9ms的起始碼和4.
14、5ms的結(jié)果碼完成后才能讀碼。 紅外線解碼框圖如下: 圖4 解碼框圖 本次設計我借用了實驗室的試驗箱,試驗箱配備了標準的HT6121編碼紅外遙控器,這也就是紅外發(fā)射部分,紅外接收部分在試驗箱上面。這樣就省略了對紅外發(fā)射部分的電路設計。 2.2步進脈沖模塊: 2.2.1步進電機工作原理與控制: 步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設定的方向轉(zhuǎn)動一個固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運行的。可以通過控制脈沖個數(shù)來控制角位移量,從而達到
15、準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的。步進電機可以作為一種控制用的特種電機,利用其沒有積累誤差(精度為100%)的特點,廣泛應用于各種開環(huán)控制。 在圖1的a圖中B相被勵磁,轉(zhuǎn)子與B相對準。在這個位置上,再對A相進行勵磁,則轉(zhuǎn)子在磁場作用下順時針轉(zhuǎn)過15,如圖1的b圖所示,這樣步進電機就轉(zhuǎn)過了一個步距角。繼續(xù)對C相進行勵磁,轉(zhuǎn)子在磁場的作用下進一步順時針轉(zhuǎn)過15,到達c圖所示的位置,又轉(zhuǎn)過了一個步距角。再對D相進行勵磁,又產(chǎn)生了一個新的磁場,在磁力的作用下轉(zhuǎn)子又轉(zhuǎn)過一個步距角15。這樣步進電機的四相完成一個通電循環(huán),若要繼續(xù)轉(zhuǎn)動,就繼續(xù)順
16、次勵磁,即步進電機按照A→B→C→D→A……順序順次勵磁,那么電機就不停地轉(zhuǎn)動。 一般對步進電機采用半步驅(qū)動,即四相八拍工作方式,使步進電機每次勵磁轉(zhuǎn)過1/2的步距角,即每次改變勵磁方式步進電機轉(zhuǎn)過7.5,它的勵磁方式是A→AB→B→BC→C→CD→D→DA→A……,若要反轉(zhuǎn)也是只需改變勵磁方式即可,即按照A→AD→D→DC→C→CB→B→BA→A……,采用八拍工作方式使得電機的轉(zhuǎn)動更加穩(wěn)定,也進一步增強了步進電機的控制精度。 實驗箱中使用的是四相步進電動機,步進電機的控制有三個問題需要解決,下面分別闡述: (1) 控制其轉(zhuǎn)動 按照一定的順序向步進電動機的
17、各相分配驅(qū)動脈沖。就四相步進電機而言,如果采用但四拍方式,其脈沖分配的方式和順序是A-B-C-D-A ,如果采用單雙八拍的方式,其脈沖分配的方式和順序為:A-AB-B-BC-C-CD-D-DA-A.四相步進電動機的勵磁工作方式如下表所示: 編碼結(jié)果(十六進制) A B C D 07 0 1 1 1 03 0 0 1 1 0B 1 0 1 1 09 1 0 0 1 0D 1 1 0 1 0C 1 1 0 0 0E 1 1 1 0 06 0 1 1 0 表1 四相步進電動機勵磁工作方式示例
18、 (2)控制其轉(zhuǎn)動方向 控制其轉(zhuǎn)動方向,其實只需考慮在脈沖分配的過程中注意一定得順序即可解決。就四相步進電機而言,如果采用單四拍方式,其脈沖分配的方式和順序是A-B-C-D-A,為正轉(zhuǎn);則其反轉(zhuǎn)的脈沖分配方式和順序是D-C-B-A-D。如果采用單雙八拍方式,其反轉(zhuǎn)的脈沖分配方式和順序是D-DC-C-CB-B-BA-A-AD-D。 (3)控制其轉(zhuǎn)動速度 在脈沖分配的過程中,控制在每兩個相鄰脈沖輸出中的間隔時間即可解決速度問題。 圖5 單片機與步進電機的連接 步進電機的控制 步進電機的速度由單片機發(fā)送的脈沖頻率決定,
19、而脈沖頻率可以通過軟件延時和硬件定時兩種方式實現(xiàn)。通過調(diào)用標準延時子程序產(chǎn)生脈沖的方法稱軟件延時。 通過使用單片機的定時/計數(shù)器T0或T1,定時產(chǎn)生脈沖的方法稱為硬件定時,該法首先根據(jù)定時的時間長短設定定時器的工作模式,然后輸入定時器的定時常數(shù),則定時器就會定時溢出,單片機就會每溢出一次就產(chǎn)生一個脈沖信號控制步進電機轉(zhuǎn)動。 用定時中斷方式來控制電動機變速時,實際上是不斷改變定時器裝載值的大小。在程序中,每按一次加減速鍵,程序中speed都會加減1,最后通過查表的方法改變定時計數(shù)器初值,達到加減速的目的。 至于步進電機的正反轉(zhuǎn)則是公用一個鍵,按下轉(zhuǎn)動方向就相反,正反轉(zhuǎn)的實現(xiàn)是通過判斷20號
20、單元的第2位即20H.1是0還是1,若是0則去查反轉(zhuǎn)的表否則去查正轉(zhuǎn)的表,實行起來比較方便。 2.2.2.步進機的驅(qū)動電路 本系統(tǒng)采用額定電壓為5V,相數(shù)為4相的步進電機,驅(qū)動方式為4相8拍。一共有5跟線連接,其中紅色的為電源線。采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉(zhuǎn)動。由于單片機P口輸出的電流比較弱不能驅(qū)動步進電機,所以要加一個ULN2003芯片來放大電流使之能驅(qū)動步進電機工作。步進電機驅(qū)動電路如下圖 圖6 步進機驅(qū)動電電路 由于驅(qū)動芯片ULN2003A本身就具有反相
21、器的作用,所以控制步進機的信號都經(jīng)過了反相器反相處理再接入ULN2003A。 2.3 主要接口電路 將設計的幾個模塊和8051單片機結(jié)合起來。 2.3.1步進機的驅(qū)動電路與8051的接口電路 圖7 步進機的驅(qū)動電路與8051的接口電路 2.3.2 模擬按鍵與8051的接口電路 在proteus軟件上對電路進行仿真,由于沒有適合的作為紅外發(fā)射和接收的芯片或元件,所以在仿真的時候?qū)⒓t外發(fā)射以及模塊等效為模擬按鍵模塊,其與8051芯片的接口電路如下: 圖8 模擬按鍵與8051的接口電路
22、 2.4 資源分配表和總圖 1. P3.0-P3.7輸出字形碼到LED數(shù)碼管,用于顯示對應按下的鍵值。 2. P1.0-P1.4用于掃描模擬鍵盤所按下的按鍵。 3. :P2.0-P2.3是步進機控制脈沖輸出口,用于控制步進機的運動,實現(xiàn)正反轉(zhuǎn),加減速,單步,停止的目的。 4:對仿真總圖語言設計進行的標注: 1) 步進機正轉(zhuǎn)表:07H,03h,0BH,09h,0DH,0ch,0EH,06h 2 )步進機反轉(zhuǎn)表:06H,0Eh,0CH,0Dh,09H,0Bh,03H,07h 3 )減速中斷計數(shù)初值表: TABLE1:DB 0C5H,8AH,3CH,15h
23、 TABLE2:DB 68H,0D0H,0B0H,0A0H 4)加速中斷計數(shù)初值表: TABLE3:DB 15H,3CH,8AH,0C5H TABLE4:DB 0A0H,0B0H,0D0H,68H 詳細接線見下面的總體硬件系統(tǒng)連接圖: 圖9 PROTEUS仿真總圖 3源程序設計 由于實物和仿真由于條件限制造成了源程序不同,所以下面給出了兩種源程序,仿真的源程序省略了紅外發(fā)射與接收并處理的程序,改成了對模擬鍵盤的掃描。 3.1實物源程序 ORG 0000H AJMP START
24、 ORG 0003H AJMP JIAN ORG 000BH AJMP loop4 ORG 001BH AJMP loop5 START: WAIT:JB P3.7, $ ;等待遙控信號出現(xiàn) SB:MOV R4,#8 ;8毫秒為高電平錯誤 SBA:MOV R5,#250 SBB:JB P3.7,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP Q1 SXB1:MOV R5,#5 SXB2: ;去掉20US的尖峰干擾信號 JNB P3.7,SBB DJ
25、NZ R5,SXB2 JMP START SBC:MOV R5,#250 SB1:JB P3.7,SB2 ;2MS內(nèi)不為高電平錯誤 DJNZ R5,SB1 DJNZ R4,SBC JMP START SB2: ;去掉20US的尖峰干擾信號 MOV R5,#5 SB2_A:JNB P3.7,SB1 DJNZ R5,SB2_A MOV R4,#3 SB2_1:MOV R5,#250 SB3: ;監(jiān)測4.5MS高電平,如3MS內(nèi)出現(xiàn)低電平錯誤 JNB P3.7,SXC DJNZ R
26、5,SB3 DJNZ R4,SB2_1 MOV R4,#2 JMP SB3_1 SXC: ;去掉20US的尖峰干擾信號 MOV R5,#5 SXC1:JB P3.7,SB3 DJNZ R5,SXC1 JMP START SB3_1: ;監(jiān)測4.5MS高電平,如5MS內(nèi)不為低錯誤 MOV R5,#250 SB3_2:JNB P3.7,SB4 DJNZ R5,SB3_2 DJNZ R4,SB3_1 JMP START SB4: ;去掉20US的尖峰干
27、擾信號 MOV R5,#5 SB4_1:JB P3.7,SB3_2 DJNZ R5,SB4_1 MOV R1,#1AH ;設定1AH為起始RAM區(qū) MOV R2,#4 PP: MOV R3,#8 JJJJ:MOV R5,#250 JJJJ2: ;1MS內(nèi)不為低電平錯誤 JB P3.7,JJJJ3 DJNZ R5,JJJJ2 JMP START JJJJ3:LCALL YS1;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態(tài) MOV C,P3.7 ;將P3.7狀態(tài)0或1存入C中
28、 JNC UUU ;如果為0就跳轉(zhuǎn)到UUU MOV R5,#250 JJJJ4:JNB P3.7,UUU NOP DJNZ R5,JJJJ4 JMP START UUU: MOV A,@R1 ;將R1中地址的給A RRC A ;將C中的值移入A中的最低位 MOV @R1,A ;將A中的數(shù)暫存在R1中 DJNZ R3,JJJJ ;接收地址碼的高8位 INC R1 ;對R1加1,換成下一個RAM DJNZ R2,PP ;以下對代碼是否正確和定義進行識別 MOV A,1AH ;比較高
29、8位地址碼 XRL A,#00000000B ;判斷1AH的值是否等于00000000,相等的話A為0 JNZ EXIT ;如果不等解碼失敗退出 MOV A,1BH ;比較低8位地址 XRL A,#11111111B ;再判高8位地址是否正確 JNZ EXIT ;如果不相等說明解碼失敗退出 LCALL YS3 MOV A,1CH ;比較數(shù)據(jù)碼和數(shù)據(jù)反碼是否正確? CPL A XRL A,1DH ;將1CH的值取反后和1DH比較 不同則無效丟棄,核對數(shù)據(jù)是否準確 JNZ EXIT ;如果不相等說明解碼失敗退出 LCALL YS3
30、 CLR P2.6 ;選中數(shù)碼管 CLR P3.3 ;解碼成功喇叭響? AJMP BIJIAO ;判斷在118毫秒內(nèi)是否有連發(fā)碼 AA: MOV R1,#25 XX: ACALL YS2 JNB P3.7,HH ;跳轉(zhuǎn)到HH DJNZ R1,XX EXIT: ;對所有端口清零 AJMP START ;連發(fā)碼判斷程序段----------- HH: MOV R6,#4 S: ACALL YS1 ;調(diào)用882微秒延時子程序 JB P3.7,EXIT ;延時882微秒后判斷P3.7腳是否出現(xiàn)高
31、電平如果有就退出解碼程序 DJNZ R6, S ;重復4次,目的是確認 JNB P3.7, $ ;等待高電? LCALL YS3 AJMP AA BIJIAO: MOV A,1CH ;紅外鍵值 ;-------------------------------------------- Q1: CJNE A,#10H,Q2 LOOP1:mov r3,#0ffh main1:inc r3 mov a,r3 mov dptr,#tab1 movc
32、a,@a+dptr mov p2,a lcall delay cjne a,#06h,main1 tab1:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q2: CJNE A,#03H,Q3 ZHENGZHUAN: LOOP2:mov r3,#0ffh main2:inc r3 mov a,r3 mov dptr,#tab2 movc a,@a+dptr
33、 mov p2,a lcall delay cjne a,#06h,main2 ljmp LOOP2 tab2:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q3: CJNE A, #01H,Q4 FANZHUAN: LOOP3:mov r3,#0ffh main3:inc r3 mov a,r3 mov dptr,#tab3 movc a,@a+dptr mov p2,a l
34、call delay cjne a,#06h,main3 ljmp LOOP3 ret tab3:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q4: CJNE A, #06H,Q5 ZHONGSU1: CLR A MOV R7,#0 MAIN4:MOV TMOD,#01H MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,@A+DPTR
35、 MOV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,@A+DPTR MOV R5,A MOV TH0,R4 MOV TL0,R5 SETB TR0 SETB EA SETB ET0 mov r3,#0ffh deng: CJNE R3,#08H,jiansu
36、 mov r3,#0ffh jiansu: MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,@A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,@A+DPTR MOV R5,A sjmp deng loop4: MOV T
37、H0,R4 MOV TL0,R5 push acc main5:inc r3 mov a,r3 mov dptr,#tab4 movc a,@a+dptr mov p2,a pop a reti tab4:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q5: CJNE A,#09H,Q6 ZHON
38、GSU2: CLR A MOV R7,#0 MAIN6:MOV TMOD,#10H MOV A,R7 MOV DPTR ,#TABLE3 MOVC A,@A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,@A+DPTR MOV R5,A MOV
39、 TH1,R4 MOV TL1,R5 SETB TR1 SETB EA SETB ET1 mov r3,#0ffh de:CJNE R3,#08H,jiasu mov r3,#0ffh jiasu: MOV A,R7 MOV DPTR ,#TABLE3 MOVC A,@A+DPTR MOV R4,A
40、 MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,@A+DPTR MOV R5,A sjmp de loop5: MOV TH1,R4 MOV TL1,R5 push acc main7:inc r3 mov a,r3 mov dptr,#tab5 movc a,@a+dp
41、tr mov p2,a pop a reti tab5:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q6:CJNE A,#1dh,Q7 CLR P3.2 Q7: ajmp start JIAN: INC R7 CJNE R7,#04H,CHONG MOV R7,#00h CHONG:RETI delay:mov r5,#255 d1:mov r2,#25 d2:djnz r2,d2
42、djnz r5,d1 ret YS1: MOV R4,#20 ;延時子程序1, 882微秒 D9: MOV R5,#20 DJNZ R5,$ DJNZ R4,D9 RET YS2: MOV R4,#10 ;延時子程序2, 4740微秒 D8: MOV R5,#235 DJNZ R5,$ DJNZ R4,D8 RET YS3: MOV R4,#2 ;延時程序3, 1000微秒 D7:MOV R5,#248 DJNZ R5,$
43、DJNZ R4,D7 RET TABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0H TABLE3:DB 15H,3CH,8AH,0C5H TABLE4:DB 0A0H,0B0H,0D0H,68H end 3.2 仿真源程序 ORG 0000H AJMP START ORG 0003H AJMP JIAN ORG 000BH AJMP loop4 ORG 001BH AJMP loop5 START:MOV P1,#0FFH SETB IT0
44、 SETB EX0 SETB EA JIANCE:MOV A,P1 CJNE A,#0FFH,Q1 AJMP JIANCE Q1: cjne A,#0FEH,Q2 LOOP1:mov r3,#0ffh main1:inc r3 mov a,r3 mov dptr,#tab1 movc a,@a+dptr mov p2,a lcall delay
45、 cjne a,#06h,main1 tab1:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q2: cjne a,#0FDH,Q3 ZHENGZHUAN: LOOP2:mov r3,#0ffh main2:inc r3 mov a,r3 mov dptr,#tab2 movc a,@a+dptr mov p2,a lcall delay cjne a,#06h,main2 ljmp LOOP2 tab2:03h
46、,09h,0ch,06h Q3: cjne a,#0FBH,Q4 FANZHUAN: LOOP3:mov r3,#0ffh main3:inc r3 mov a,r3 mov dptr,#tab3 movc a,@a+dptr mov p2,a lcall delay cjne a,#06h,main3 ljmp LOOP3 ret tab3:db 0ch,09h,03h,06h Q4: CJ
47、NE A,#0F7H,Q5 YUANSU1: CLR A MOV R7,#0 MAIN4:MOV TMOD,#01H MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,@A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,@A+DPTR MOV R5,A
48、 MOV TH0,R4 MOV TL0,R5 SETB TR0 SETB EA SETB ET0 mov r3,#0ffh deng: CJNE R3,#08H,jiansu mov r3,#0ffh jiansu: MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,@A+DPTR
49、 MOV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,@A+DPTR MOV R5,A sjmp deng loop4: MOV TH0,R4 MOV TL0,R5 push acc main5:inc r3 mov a,r3 mov dptr,#tab4
50、 movc a,@a+dptr mov p2,a pop a reti tab4:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q5: CJNE A,#0EFH,Q6 YUANSU2: CLR A MOV R7,#0 MAIN6:MOV TMOD,#10H MOV A,R7 MOV DPTR ,#TABLE3 MOVC
51、A,@A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,@A+DPTR MOV R5,A MOV TH1,R4 MOV TL1,R5 SETB TR1 SETB EA SETB ET1 mov r3,#0ffh de:CJNE R3,#08
52、H,jiasu mov r3,#0ffh jiasu: MOV A,R7 MOV DPTR ,#TABLE3 MOVC A,@A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,@A+DPTR MOV R5,A sjmp de loop5:
53、 MOV TH1,R4 MOV TL1,R5 push acc main7:inc r3 mov a,r3 mov dptr,#tab5 movc a,@a+dptr mov p2,a pop a reti tab5:db 07H,03h,0BH,09h,0DH,0ch,0EH,06h Q6:ajmp start IAN: INC R7 CJ
54、NE R7,#04H,CHONG MOV R7,#00h CHONG:RETI delay:mov r5,#255 d1:mov r2,#25 d2:djnz r2,d2 djnz r5,d1 ret TABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0H TABLE3:DB 15H,3CH,8AH,0C5H TABLE4:DB 0A0H,0B0H,0D0H,68H end 4 仿真結(jié)果與分析 仿真結(jié)果如下: 1
55、啟動狀態(tài),數(shù)碼管顯示0,8051無工作,示波器無波形: 圖10 啟動狀態(tài) 2 單步執(zhí)行,數(shù)碼管顯示1,系統(tǒng)開始工作,步進機轉(zhuǎn)動一定角度然后停止,示波器顯示波形如下: 圖11 單步狀態(tài) 3 正轉(zhuǎn)(連續(xù)),數(shù)碼管顯示2,步進機不停地以恒定的速度逆時針(以逆時針為正轉(zhuǎn))轉(zhuǎn)動,示波器波形如下: 圖12 正轉(zhuǎn)(連續(xù))狀態(tài) 4反轉(zhuǎn)(連續(xù)),數(shù)碼管顯示3,步進機不停地以恒定的速度順時針(以順時針
56、為反轉(zhuǎn))轉(zhuǎn)動,示波器波形如下: 圖13 反轉(zhuǎn)(連續(xù))狀態(tài) 做完了反轉(zhuǎn)然后就是加速控制,由于需要外部中斷0來控制加速的進程,所以必須利用僅剩的P3口,即必須省去數(shù)碼管顯示部分。 5減速(正轉(zhuǎn),連續(xù)),通過不斷的按下P3口接部中斷的按鍵來實現(xiàn)不斷的減速并循環(huán)。 圖14 減速狀態(tài)對照表 6 加速(正轉(zhuǎn),連續(xù))原理同加速,略。 仿真過程問題與分析 在仿真過程中,本人遇到了很多次困難,舉例如下: 1 端口資源分配,8051的四個P端口都被利用了,最后為了設置外
57、部中斷0,不得不取消了數(shù)碼管顯示功能。 2 步進機轉(zhuǎn)表問題,實現(xiàn)正轉(zhuǎn)和反轉(zhuǎn)對應的轉(zhuǎn)表不是直接相反的。 3 加速與減速設計時候的定時中斷與中斷程序的銜接要好。 4 中斷表(計數(shù)初值表),步進機轉(zhuǎn)表兩概念不要混淆。 通過對上述截圖的觀察可以得到結(jié)論:仿真完全符合設計要求。 5 心得體會 6參考文獻 [1]李群芳。單片微型計算機與接口技術。北京:電子工業(yè)出版社,2008.5 [2]胡漢才。單片機原理及系統(tǒng)設計。北京:清
58、華大學出版社,2002 [3]王曉明。電動機的單片機控制。北京:北京航天航空大學出版社,2002 [4]汪道輝。單片機系統(tǒng)設計與實踐。 北京:電子工業(yè)出版社 ,2006 本科生課程設計成績評定表 姓 名 楊飛 性 別 男 專業(yè)、班級 電子信息工程0804班 課程設計題目: 設計并實現(xiàn)紅外遙控步進機 課程設計答辯或質(zhì)疑記錄: 成績評定依據(jù): 最終評定成績(以優(yōu)、良、中、及格、不及格評定) 指導教師簽字: 年 月 日 - 32 -
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外國文學論文寫作教學內(nèi)容怎樣選擇外國文學的題目市公開課金獎市賽課一等獎課件
- 新生兒的靜脈營養(yǎng)的配制及護理
- 銷售員基本知識培訓
- 濕法煉鋅和火法煉鋅課件
- 西塞山懷古課件
- 蘇教版小學六年級科學下冊達爾文與他的“進化論”課件
- 初中八年級英語下冊《Unit8Have_you_read_Treasure_Island_yet_sectionA》ppt課件(人教版)
- 科學理財合理利用理財知識分享課件
- 有效排痰的方法概述課件
- 六年級上英語Unit-3-My-weekend-plan第3課時課件
- 公開課朗誦培訓課件
- 高級體系結(jié)構(gòu)期末考試課后習題匯總
- 思與辨-NSCLC腦轉(zhuǎn)移治療選擇ppt課件
- 全國統(tǒng)考2022版高考數(shù)學大一輪備考復習第7章不等式第1講不等關系與一元二次不等式課件文
- 施工企業(yè)宣傳冊課件