歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

《單片機(jī)原理及應(yīng)用》課程設(shè)計說明書設(shè)計并實現(xiàn)紅外遙控步進(jìn)電機(jī)

  • 資源ID:27813537       資源大?。?span id="5mxbe55" class="font-tahoma">367.50KB        全文頁數(shù):33頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

《單片機(jī)原理及應(yīng)用》課程設(shè)計說明書設(shè)計并實現(xiàn)紅外遙控步進(jìn)電機(jī)

武漢理工大學(xué)單片機(jī)原理及應(yīng)用課程設(shè)計說明書 課程設(shè)計任務(wù)書學(xué)生姓名: 專業(yè)班級: 電信0804 指導(dǎo)教師: 工作單位: 題 目: 設(shè)計并實現(xiàn)紅外遙控步進(jìn)電機(jī)初始條件:1. Protues軟件;2. 課程設(shè)計輔導(dǎo)資料:“占空比可調(diào)的信號發(fā)生器設(shè)計與應(yīng)用”、“電路設(shè)計技術(shù)與應(yīng)用”等;3. 先修課程:模擬電子技術(shù)、數(shù)字電子技術(shù)、Protues電路設(shè)計教程及單片機(jī)原理及應(yīng)用等課程要求完成的主要任務(wù):(包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)1. 課程設(shè)計時間:1周;課程設(shè)計內(nèi)容:利用紅外遙控器控制步進(jìn)電機(jī)的動作,動作要有正、反方向轉(zhuǎn)動;單步;連續(xù);快慢等動作。2. 本課程設(shè)計統(tǒng)一技術(shù)要求:研讀輔導(dǎo)資料對應(yīng)章節(jié),對選定的設(shè)計題目進(jìn)行理論分析,針對具體設(shè)計部分的原理分析、建模、必要的推導(dǎo)和可行性分析,畫出程序設(shè)計框圖,編寫程序代碼(含注釋),上機(jī)調(diào)試運行程序,記錄實驗結(jié)果(含計算結(jié)果和圖表),并對實驗結(jié)果進(jìn)行分析和總結(jié);3. 課程設(shè)計說明書按學(xué)校“課程設(shè)計工作規(guī)范”中的“統(tǒng)一書寫格式”撰寫,具體包括: 目錄; 設(shè)計原理和方法; 系統(tǒng)硬件線路設(shè)計圖; 程序框圖; 資源分配表; 源程序 性能分析 課程設(shè)計的心得體會(至少500字); 參考文獻(xiàn);時間安排:指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄1總體設(shè)計原理.22系統(tǒng)硬件及主要模塊設(shè)計.3 2.1紅外遙控模塊.3 2.1.1紅外遙控編解碼原理.3 2.2 步進(jìn)脈沖模塊.6 2.2.1步進(jìn)電機(jī)的工作原理與控制.6 2.2.2步進(jìn)機(jī)的驅(qū)動電路.8 2.3 主要接口電路.9 2.3.1步進(jìn)機(jī)的驅(qū)動電路與8051的接口電路.9 2.3.3 模擬按鍵與8051的接口電路.10 .2.4資源分配表和總圖.113源程序設(shè)計.13 3.1實物源程序.13 3.2 仿真源程序.194 仿真結(jié)果與分析.235 心得體會.286 參考文獻(xiàn).297 本科生課程設(shè)計成績評定表.301 總體設(shè)計原理 利用紅外遙控器控制步進(jìn)電機(jī)其實和用鍵盤控制步進(jìn)電機(jī)原理類似,只不過按鍵是用導(dǎo)線傳遞鍵是否按下的信號,而紅外則是利用LED發(fā)射紅外線傳遞按鍵信息。由于紅外采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms 的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms 的組合表示二進(jìn)制的“1”,在解碼時通過判斷高低電平持續(xù)時間的長短來識別發(fā)送的鍵值??刂撇竭M(jìn)電機(jī)正、反方向轉(zhuǎn)動、單步、連續(xù)、快慢等動作,原理其實并不困難。步進(jìn)電機(jī)將電脈沖信號轉(zhuǎn)換成角位移,即給一個脈沖,步進(jìn)電機(jī)就轉(zhuǎn)動一個角度,轉(zhuǎn)動的角度大小與施加的脈沖數(shù)成正比,因此,單步和連續(xù)的動作區(qū)別只是單片機(jī)給步進(jìn)電機(jī)脈沖個數(shù)不同而已。每按一次單步鍵就是給電機(jī)一個脈沖,而連續(xù)則是不斷的給電機(jī)脈沖,達(dá)到連續(xù)運轉(zhuǎn)的目的。單片機(jī)的晶振為12MHz,單周期指令執(zhí)行時間為1MHz,由于機(jī)械動作需要一定時間來完成,如果以這么快的速度來給脈沖,電機(jī)是不會轉(zhuǎn)動的,因此,在兩個脈沖之間必須要有一定時間差,電機(jī)才有時間來執(zhí)行動作。電機(jī)轉(zhuǎn)動的速度與脈沖頻率成正比,控制脈沖間隔時間就相當(dāng)于控制了步進(jìn)電機(jī)的轉(zhuǎn)動角頻率即快慢。步進(jìn)電機(jī)的轉(zhuǎn)動需要向電機(jī)以一定的順序分配驅(qū)動脈沖。如四相單四拍,其脈沖分配的方式和順序為A-B-C-D-A,如此周而復(fù)始,即可轉(zhuǎn)動。轉(zhuǎn)動方向與脈沖順序有關(guān),如果給相反脈沖,那么電機(jī)就會反轉(zhuǎn)。 根據(jù)該系統(tǒng)設(shè)計要求,需要通過紅外遙控器按下按鍵和顯示器來改變步進(jìn)電機(jī)的運動狀態(tài)以及顯示,只需要紅外遙控器中6個按鍵就可滿足需求,外加8位LED數(shù)碼顯示管即可。由于實驗箱上只有8個連體數(shù)碼管,因此需要動態(tài)掃描。通過從鍵盤上輸入正、反轉(zhuǎn)命令,按鍵數(shù)值顯示在數(shù)碼管上,CPU再讀取正、反轉(zhuǎn)命令,加減速后執(zhí)行。經(jīng)鍵盤可完成啟動、停止、正轉(zhuǎn)、反轉(zhuǎn)、速度設(shè)置控制功能。 按下紅外遙控器上的相關(guān)按鈕電機(jī)執(zhí)行相關(guān)動作,同時數(shù)碼管上顯示按鍵的數(shù)值,系統(tǒng)大部分都是軟件實現(xiàn)的,整個設(shè)計框圖如下:LED顯示單片機(jī)步進(jìn)電機(jī)紅外遙控按鍵紅外接收圖1 總體設(shè)計框圖2主要模塊設(shè)計2.1紅外遙控模塊本模塊應(yīng)完成對紅外遙控器有無鍵按下進(jìn)行確認(rèn),當(dāng)有鍵按下時,確定按鍵值,并根據(jù)所得鍵值進(jìn)行處理(包括所按鍵是不是停止鍵還是執(zhí)行鍵。如是停止鍵,不斷掃描鍵盤程序,等待執(zhí)行鍵按下;如是執(zhí)行鍵就啟動產(chǎn)生步進(jìn)電機(jī)控制信號程序)。顯示模塊主要是完成在進(jìn)行鍵盤按下時,顯示輸入的數(shù)據(jù)值(轉(zhuǎn)矩數(shù)、轉(zhuǎn)動方向、轉(zhuǎn)動速率及運行方式)。2.1.1紅外遙控編碼原理: 通用型紅外遙控系統(tǒng)由紅外發(fā)射和紅外接收兩大部分組成?,F(xiàn)在常應(yīng)用編/解碼專用集成電路芯片來進(jìn)行控制操作,如圖2所示。發(fā)射部分包括鍵盤、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路等。圖2 紅外線遙控系統(tǒng)框圖紅外遙控器所產(chǎn)生的脈沖編碼的格式一般為:引導(dǎo)碼(頭)地址碼(用戶碼)數(shù)據(jù)碼數(shù)據(jù)的反碼。其引導(dǎo)碼為寬度是10 ms左右的一個高脈沖和一個低脈沖的組合,用來標(biāo)識指令碼的開始。地址碼、數(shù)據(jù)碼、數(shù)據(jù)碼的反碼均為數(shù)據(jù)編碼脈沖,用二進(jìn)制數(shù)表示。“0”和“1”均由ms量級的高低脈沖的組合代表。地址碼(即用戶碼)是對每個遙控系統(tǒng)的標(biāo)識。通過對地址碼的檢驗,每個遙控器就只能控制一個設(shè)備動作,有效地防止了多個設(shè)備之間的串?dāng)_。當(dāng)指令鍵按下時,指令信號產(chǎn)生電路便產(chǎn)生脈沖編碼。數(shù)據(jù)碼后面一般還要有數(shù)據(jù)碼的反碼,用來檢驗數(shù)據(jù)碼接收的正確性,以防止誤動作,增強系統(tǒng)的可靠性。這些指令信號由調(diào)制電路調(diào)制成3240 kHz的信號,經(jīng)調(diào)制后輸出,最后由驅(qū)動電路驅(qū)動紅外發(fā)射器件(LED)發(fā)出紅外遙控信號。紅外遙控發(fā)射接收器及其編解碼遙控發(fā)射器的專用芯片很多,根據(jù)編碼格式可以分成兩大類,即頻分制與碼分制。頻分制是按照載頻的不同來進(jìn)行頻道劃分的,即它用不同的頻率信號來表示不同的控制信號;碼分制是用不同的脈沖數(shù)目或者寬度不同的脈沖組合來代表不同的控制指令的。這里我們以運用比較廣泛,解碼比較容易的碼分制來加以說明?,F(xiàn)以日本NEC的PD6121G組成發(fā)射電路為例說明編碼原理。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同則遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其波形如圖2所示。 解碼的關(guān)鍵是如何識別“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ù)碼的格式,應(yīng)該等待9ms的起始碼和4.5ms的結(jié)果碼完成后才能讀碼。 紅外線解碼框圖如下:圖4 解碼框圖 本次設(shè)計我借用了實驗室的試驗箱,試驗箱配備了標(biāo)準(zhǔn)的HT6121編碼紅外遙控器,這也就是紅外發(fā)射部分,紅外接收部分在試驗箱上面。這樣就省略了對紅外發(fā)射部分的電路設(shè)計。2.2步進(jìn)脈沖模塊:2.2.1步進(jìn)電機(jī)工作原理與控制: 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運行的。可以通過控制脈沖個數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),利用其沒有積累誤差(精度為100%)的特點,廣泛應(yīng)用于各種開環(huán)控制。 在圖1的a圖中B相被勵磁,轉(zhuǎn)子與B相對準(zhǔn)。在這個位置上,再對A相進(jìn)行勵磁,則轉(zhuǎn)子在磁場作用下順時針轉(zhuǎn)過15,如圖1的b圖所示,這樣步進(jìn)電機(jī)就轉(zhuǎn)過了一個步距角。繼續(xù)對C相進(jìn)行勵磁,轉(zhuǎn)子在磁場的作用下進(jìn)一步順時針轉(zhuǎn)過15,到達(dá)c圖所示的位置,又轉(zhuǎn)過了一個步距角。再對D相進(jìn)行勵磁,又產(chǎn)生了一個新的磁場,在磁力的作用下轉(zhuǎn)子又轉(zhuǎn)過一個步距角15。這樣步進(jìn)電機(jī)的四相完成一個通電循環(huán),若要繼續(xù)轉(zhuǎn)動,就繼續(xù)順次勵磁,即步進(jìn)電機(jī)按照ABCDA順序順次勵磁,那么電機(jī)就不停地轉(zhuǎn)動。一般對步進(jìn)電機(jī)采用半步驅(qū)動,即四相八拍工作方式,使步進(jìn)電機(jī)每次勵磁轉(zhuǎn)過1/2的步距角,即每次改變勵磁方式步進(jìn)電機(jī)轉(zhuǎn)過7.5,它的勵磁方式是AABBBCCCDDDAA,若要反轉(zhuǎn)也是只需改變勵磁方式即可,即按照AADDDCCCBBBAA,采用八拍工作方式使得電機(jī)的轉(zhuǎn)動更加穩(wěn)定,也進(jìn)一步增強了步進(jìn)電機(jī)的控制精度。 實驗箱中使用的是四相步進(jìn)電動機(jī),步進(jìn)電機(jī)的控制有三個問題需要解決,下面分別闡述:(1) 控制其轉(zhuǎn)動按照一定的順序向步進(jìn)電動機(jī)的各相分配驅(qū)動脈沖。就四相步進(jìn)電機(jī)而言,如果采用但四拍方式,其脈沖分配的方式和順序是A-B-C-D-A,如果采用單雙八拍的方式,其脈沖分配的方式和順序為:A-AB-B-BC-C-CD-D-DA-A.四相步進(jìn)電動機(jī)的勵磁工作方式如下表所示:編碼結(jié)果(十六進(jìn)制)ABCD0701110300110B10110910010D11010C11000E1110060110表1 四相步進(jìn)電動機(jī)勵磁工作方式示例(2)控制其轉(zhuǎn)動方向 控制其轉(zhuǎn)動方向,其實只需考慮在脈沖分配的過程中注意一定得順序即可解決。就四相步進(jìn)電機(jī)而言,如果采用單四拍方式,其脈沖分配的方式和順序是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 單片機(jī)與步進(jìn)電機(jī)的連接步進(jìn)電機(jī)的控制 步進(jìn)電機(jī)的速度由單片機(jī)發(fā)送的脈沖頻率決定,而脈沖頻率可以通過軟件延時和硬件定時兩種方式實現(xiàn)。通過調(diào)用標(biāo)準(zhǔn)延時子程序產(chǎn)生脈沖的方法稱軟件延時。通過使用單片機(jī)的定時/計數(shù)器T0或T1,定時產(chǎn)生脈沖的方法稱為硬件定時,該法首先根據(jù)定時的時間長短設(shè)定定時器的工作模式,然后輸入定時器的定時常數(shù),則定時器就會定時溢出,單片機(jī)就會每溢出一次就產(chǎn)生一個脈沖信號控制步進(jìn)電機(jī)轉(zhuǎn)動。用定時中斷方式來控制電動機(jī)變速時,實際上是不斷改變定時器裝載值的大小。在程序中,每按一次加減速鍵,程序中speed都會加減1,最后通過查表的方法改變定時計數(shù)器初值,達(dá)到加減速的目的。至于步進(jìn)電機(jī)的正反轉(zhuǎn)則是公用一個鍵,按下轉(zhuǎn)動方向就相反,正反轉(zhuǎn)的實現(xiàn)是通過判斷20號單元的第2位即20H.1是0還是1,若是0則去查反轉(zhuǎn)的表否則去查正轉(zhuǎn)的表,實行起來比較方便。2.2.2.步進(jìn)機(jī)的驅(qū)動電路本系統(tǒng)采用額定電壓為5V,相數(shù)為4相的步進(jìn)電機(jī),驅(qū)動方式為4相8拍。一共有5跟線連接,其中紅色的為電源線。采用單極性直流電源供電。只要對步進(jìn)電機(jī)的各相繞組按合適的時序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動。由于單片機(jī)P口輸出的電流比較弱不能驅(qū)動步進(jìn)電機(jī),所以要加一個ULN2003芯片來放大電流使之能驅(qū)動步進(jìn)電機(jī)工作。步進(jìn)電機(jī)驅(qū)動電路如下圖 圖6 步進(jìn)機(jī)驅(qū)動電電路 由于驅(qū)動芯片ULN2003A本身就具有反相器的作用,所以控制步進(jìn)機(jī)的信號都經(jīng)過了反相器反相處理再接入ULN2003A。2.3 主要接口電路將設(shè)計的幾個模塊和8051單片機(jī)結(jié)合起來。2.3.1步進(jìn)機(jī)的驅(qū)動電路與8051的接口電路 圖7 步進(jìn)機(jī)的驅(qū)動電路與8051的接口電路 2.3.2 模擬按鍵與8051的接口電路 在proteus軟件上對電路進(jìn)行仿真,由于沒有適合的作為紅外發(fā)射和接收的芯片或元件,所以在仿真的時候?qū)⒓t外發(fā)射以及模塊等效為模擬按鍵模塊,其與8051芯片的接口電路如下:圖8 模擬按鍵與8051的接口電路2.4 資源分配表和總圖1. P3.0-P3.7輸出字形碼到LED數(shù)碼管,用于顯示對應(yīng)按下的鍵值。2. P1.0-P1.4用于掃描模擬鍵盤所按下的按鍵。3. :P2.0-P2.3是步進(jìn)機(jī)控制脈沖輸出口,用于控制步進(jìn)機(jī)的運動,實現(xiàn)正反轉(zhuǎn),加減速,單步,停止的目的。4:對仿真總圖語言設(shè)計進(jìn)行的標(biāo)注:1) 步進(jìn)機(jī)正轉(zhuǎn)表:07H,03h,0BH,09h,0DH,0ch,0EH,06h2 )步進(jìn)機(jī)反轉(zhuǎn)表:06H,0Eh,0CH,0Dh,09H,0Bh,03H,07h3 )減速中斷計數(shù)初值表:TABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0H4)加速中斷計數(shù)初值表:TABLE3:DB 15H,3CH,8AH,0C5HTABLE4:DB 0A0H,0B0H,0D0H,68H詳細(xì)接線見下面的總體硬件系統(tǒng)連接圖: 圖9 PROTEUS仿真總圖3源程序設(shè)計由于實物和仿真由于條件限制造成了源程序不同,所以下面給出了兩種源程序,仿真的源程序省略了紅外發(fā)射與接收并處理的程序,改成了對模擬鍵盤的掃描。3.1實物源程序ORG 0000HAJMP STARTORG 0003HAJMP JIANORG 000BHAJMP loop4ORG 001BHAJMP loop5START:WAIT:JB P3.7, $ ;等待遙控信號出現(xiàn)SB:MOV R4,#8 ;8毫秒為高電平錯誤SBA:MOV R5,#250SBB:JB P3.7,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP Q1SXB1:MOV R5,#5SXB2: ;去掉20US的尖峰干擾信號 JNB P3.7,SBB DJNZ R5,SXB2JMP STARTSBC:MOV R5,#250SB1:JB P3.7,SB2 ;2MS內(nèi)不為高電平錯誤 DJNZ R5,SB1 DJNZ R4,SBC JMP STARTSB2: ;去掉20US的尖峰干擾信號 MOV R5,#5SB2_A:JNB P3.7,SB1 DJNZ R5,SB2_A MOV R4,#3SB2_1:MOV R5,#250SB3: ;監(jiān)測4.5MS高電平,如3MS內(nèi)出現(xiàn)低電平錯誤 JNB P3.7,SXC DJNZ R5,SB3 DJNZ R4,SB2_1 MOV R4,#2JMP SB3_1SXC: ;去掉20US的尖峰干擾信號 MOV R5,#5SXC1:JB P3.7,SB3 DJNZ R5,SXC1 JMP STARTSB3_1: ;監(jiān)測4.5MS高電平,如5MS內(nèi)不為低錯誤 MOV R5,#250SB3_2:JNB P3.7,SB4 DJNZ R5,SB3_2 DJNZ R4,SB3_1 JMP STARTSB4: ;去掉20US的尖峰干擾信號 MOV R5,#5SB4_1:JB P3.7,SB3_2 DJNZ R5,SB4_1MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū)MOV R2,#4PP: MOV R3,#8JJJJ:MOV R5,#250JJJJ2: ;1MS內(nèi)不為低電平錯誤 JB P3.7,JJJJ3 DJNZ R5,JJJJ2 JMP STARTJJJJ3:LCALL YS1;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態(tài) MOV C,P3.7 ;將P3.7狀態(tài)0或1存入C中 JNC UUU ;如果為0就跳轉(zhuǎn)到UUU MOV R5,#250JJJJ4:JNB P3.7,UUU NOP DJNZ R5,JJJJ4 JMP STARTUUU:MOV A,R1 ;將R1中地址的給ARRC A ;將C中的值移入A中的最低位MOV R1,A ;將A中的數(shù)暫存在R1中DJNZ R3,JJJJ ;接收地址碼的高8位INC R1 ;對R1加1,換成下一個RAMDJNZ R2,PP;以下對代碼是否正確和定義進(jìn)行識別MOV A,1AH;比較高8位地址碼XRL A,#00000000B ;判斷1AH的值是否等于00000000,相等的話A為0JNZ EXIT;如果不等解碼失敗退出MOV A,1BH;比較低8位地址XRL A,#11111111B ;再判高8位地址是否正確JNZ EXIT;如果不相等說明解碼失敗退出LCALL YS3MOV A,1CH;比較數(shù)據(jù)碼和數(shù)據(jù)反碼是否正確?CPL AXRL A,1DH ;將1CH的值取反后和1DH比較 不同則無效丟棄,核對數(shù)據(jù)是否準(zhǔn)確 JNZ EXIT ;如果不相等說明解碼失敗退出 LCALL YS3 CLR P2.6 ;選中數(shù)碼管 CLR P3.3 ;解碼成功喇叭響? AJMP BIJIAO;判斷在118毫秒內(nèi)是否有連發(fā)碼AA: MOV R1,#25XX: ACALL YS2 JNB P3.7,HH ;跳轉(zhuǎn)到HH DJNZ R1,XXEXIT: ;對所有端口清零 AJMP START;連發(fā)碼判斷程序段-HH: MOV R6,#4S: ACALL YS1 ;調(diào)用882微秒延時子程序 JB P3.7,EXIT ;延時882微秒后判斷P3.7腳是否出現(xiàn)高電平如果有就退出解碼程序 DJNZ R6, S ;重復(fù)4次,目的是確認(rèn) JNB P3.7, $ ;等待高電? LCALL YS3 AJMP AABIJIAO:MOV A,1CH;紅外鍵值;-Q1: CJNE A,#10H,Q2 LOOP1:mov r3,#0ffh main1:inc r3 mov a,r3 mov dptr,#tab1 movc a,a+dptr mov p2,a lcall delay cjne a,#06h,main1tab1:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ2: CJNE A,#03H,Q3ZHENGZHUAN: 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 LOOP2tab2:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ3: CJNE A, #01H,Q4FANZHUAN: 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 rettab3:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ4: CJNE A, #06H,Q5ZHONGSU1: 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 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 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 movc a,a+dptr mov p2,a pop a reti tab4:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ5: CJNE A,#09H,Q6ZHONGSU2: 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 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 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+dptr mov p2,a pop a reti tab5:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ6:CJNE A,#1dh,Q7CLR P3.2Q7: ajmp startJIAN: INC R7 CJNE R7,#04H,CHONG MOV R7,#00hCHONG:RETI delay:mov r5,#255 d1:mov r2,#25 d2:djnz r2,d2 djnz r5,d1 retYS1: MOV R4,#20 ;延時子程序1, 882微秒 D9: MOV R5,#20 DJNZ R5,$ DJNZ R4,D9 RETYS2: MOV R4,#10 ;延時子程序2, 4740微秒 D8: MOV R5,#235 DJNZ R5,$ DJNZ R4,D8 RETYS3: MOV R4,#2 ;延時程序3, 1000微秒 D7:MOV R5,#248 DJNZ R5,$ DJNZ R4,D7 RETTABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0HTABLE3:DB 15H,3CH,8AH,0C5HTABLE4:DB 0A0H,0B0H,0D0H,68Hend3.2 仿真源程序ORG 0000HAJMP STARTORG 0003HAJMP JIANORG 000BHAJMP loop4ORG 001BHAJMP loop5START:MOV P1,#0FFH SETB IT0 SETB EX0 SETB EA JIANCE:MOV A,P1 CJNE A,#0FFH,Q1 AJMP JIANCEQ1: 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 cjne a,#06h,main1tab1:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ2: cjne a,#0FDH,Q3ZHENGZHUAN: 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 LOOP2tab2:03h,09h,0ch,06hQ3: cjne a,#0FBH,Q4FANZHUAN: 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 rettab3:db 0ch,09h,03h,06hQ4: CJNE A,#0F7H,Q5YUANSU1: 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 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 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 movc a,a+dptr mov p2,a pop a retitab4:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ5: CJNE A,#0EFH,Q6YUANSU2: 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 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 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+dptr mov p2,a pop a retitab5:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ6:ajmp start IAN: INC R7 CJNE R7,#04H,CHONG MOV R7,#00hCHONG:RETI delay:mov r5,#255 d1:mov r2,#25 d2:djnz r2,d2 djnz r5,d1 retTABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0HTABLE3:DB 15H,3CH,8AH,0C5HTABLE4:DB 0A0H,0B0H,0D0H,68Hend4 仿真結(jié)果與分析仿真結(jié)果如下:1 啟動狀態(tài),數(shù)碼管顯示0,8051無工作,示波器無波形:圖10 啟動狀態(tài)2 單步執(zhí)行,數(shù)碼管顯示1,系統(tǒng)開始工作,步進(jìn)機(jī)轉(zhuǎn)動一定角度然后停止,示波器顯示波形如下:圖11 單步狀態(tài)3 正轉(zhuǎn)(連續(xù)),數(shù)碼管顯示2,步進(jìn)機(jī)不停地以恒定的速度逆時針(以逆時針為正轉(zhuǎn))轉(zhuǎn)動,示波器波形如下:圖12 正轉(zhuǎn)(連續(xù))狀態(tài)4反轉(zhuǎn)(連續(xù)),數(shù)碼管顯示3,步進(jìn)機(jī)不停地以恒定的速度順時針(以順時針為反轉(zhuǎn))轉(zhuǎn)動,示波器波形如下:圖13 反轉(zhuǎn)(連續(xù))狀態(tài)做完了反轉(zhuǎn)然后就是加速控制,由于需要外部中斷0來控制加速的進(jìn)程,所以必須利用僅剩的P3口,即必須省去數(shù)碼管顯示部分。5減速(正轉(zhuǎn),連續(xù)),通過不斷的按下P3口接部中斷的按鍵來實現(xiàn)不斷的減速并循環(huán)。圖14 減速狀態(tài)對照表6 加速(正轉(zhuǎn),連續(xù))原理同加速,略。 仿真過程問題與分析 在仿真過程中,本人遇到了很多次困難,舉例如下:1 端口資源分配,8051的四個P端口都被利用了,最后為了設(shè)置外部中斷0,不得不取消了數(shù)碼管顯示功能。2 步進(jìn)機(jī)轉(zhuǎn)表問題,實現(xiàn)正轉(zhuǎn)和反轉(zhuǎn)對應(yīng)的轉(zhuǎn)表不是直接相反的。3 加速與減速設(shè)計時候的定時中斷與中斷程序的銜接要好。4 中斷表(計數(shù)初值表),步進(jìn)機(jī)轉(zhuǎn)表兩概念不要混淆。 通過對上述截圖的觀察可以得到結(jié)論:仿真完全符合設(shè)計要求。5 心得體會 6參考文獻(xiàn)1李群芳。單片微型計算機(jī)與接口技術(shù)。北京:電子工業(yè)出版社,2008.52胡漢才。單片機(jī)原理及系統(tǒng)設(shè)計。北京:清華大學(xué)出版社,20023王曉明。電動機(jī)的單片機(jī)控制。北京:北京航天航空大學(xué)出版社,20024汪道輝。單片機(jī)系統(tǒng)設(shè)計與實踐。 北京:電子工業(yè)出版社 ,2006本科生課程設(shè)計成績評定表姓 名楊飛性 別男專業(yè)、班級電子信息工程0804班課程設(shè)計題目: 設(shè)計并實現(xiàn)紅外遙控步進(jìn)機(jī)課程設(shè)計答辯或質(zhì)疑記錄:成績評定依據(jù):最終評定成績(以優(yōu)、良、中、及格、不及格評定)指導(dǎo)教師簽字: 年 月 日- 32 -

注意事項

本文(《單片機(jī)原理及應(yīng)用》課程設(shè)計說明書設(shè)計并實現(xiàn)紅外遙控步進(jìn)電機(jī))為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!