《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)說明書設(shè)計(jì)并實(shí)現(xiàn)紅外遙控步進(jìn)電機(jī)
《《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)說明書設(shè)計(jì)并實(shí)現(xiàn)紅外遙控步進(jìn)電機(jī)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)說明書設(shè)計(jì)并實(shí)現(xiàn)紅外遙控步進(jìn)電機(jī)(33頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、武漢理工大學(xué)《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)說明書 課程設(shè)計(jì)任務(wù)書 學(xué)生姓名: 專業(yè)班級(jí): 電信0804 指導(dǎo)教師: 工作單位: 題 目: 設(shè)計(jì)并實(shí)現(xiàn)紅外遙控步進(jìn)電機(jī) 初始條件: 1. Protues軟件; 2. 課程設(shè)計(jì)輔導(dǎo)資料:“占空比可調(diào)的信號(hào)發(fā)生器設(shè)計(jì)與應(yīng)用”、“電路設(shè)計(jì)技術(shù)與應(yīng)用”等; 3. 先修課程:模擬電子技術(shù)、數(shù)字電子技術(shù)、Protues電路設(shè)計(jì)教程及單片機(jī)原理及應(yīng)用等課程 要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書
2、撰寫等具體要求) 1. 課程設(shè)計(jì)時(shí)間:1周; 課程設(shè)計(jì)內(nèi)容:利用紅外遙控器控制步進(jìn)電機(jī)的動(dòng)作,動(dòng)作要有正、反方向轉(zhuǎn)動(dòng);單步;連續(xù);快慢等動(dòng)作。 2. 本課程設(shè)計(jì)統(tǒng)一技術(shù)要求:研讀輔導(dǎo)資料對(duì)應(yīng)章節(jié),對(duì)選定的設(shè)計(jì)題目進(jìn)行理論分析,針對(duì)具體設(shè)計(jì)部分的原理分析、建模、必要的推導(dǎo)和可行性分析,畫出程序設(shè)計(jì)框圖,編寫程序代碼(含注釋),上機(jī)調(diào)試運(yùn)行程序,記錄實(shí)驗(yàn)結(jié)果(含計(jì)算結(jié)果和圖表),并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析和總結(jié); 3. 課程設(shè)計(jì)說明書按學(xué)校“課程設(shè)計(jì)工作規(guī)范”中的“統(tǒng)一書寫格式”撰寫,具體包括: ① 目錄; ② 設(shè)計(jì)原理和方法; ③ 系統(tǒng)硬件線路設(shè)計(jì)圖; ④ 程序框圖; ⑤ 資源分配表
3、; ⑥ 源程序 ⑦ 性能分析 ⑧ 課程設(shè)計(jì)的心得體會(huì)(至少500字); ⑨ 參考文獻(xiàn); 時(shí)間安排: 指導(dǎo)教師簽名: 年 月 日 系主任(或責(zé)任教師)簽名: 年 月 日 目錄 1總體設(shè)計(jì)原理.…………………………………………………..2 2系統(tǒng)硬件及主要模塊設(shè)計(jì)……………………………………...3 2.1紅外遙控模塊...……………………..........................................3 2.1.1紅外遙控編解碼原理...……
4、………….…..........................................3 2.2 步進(jìn)脈沖模塊…………………………………..…...................6 2.2.1步進(jìn)電機(jī)的工作原理與控制…………………………........................6 2.2.2步進(jìn)機(jī)的驅(qū)動(dòng)電路……………………...............................................8 2.3 主要接口電路……………………...………………….........9 2.3.1步進(jìn)機(jī)的
5、驅(qū)動(dòng)電路與8051的接口電路……………….....................9 2.3.3 模擬按鍵與8051的接口電路……………………...........................10 .2.4資源分配表和總圖.…………………………………….............11 3源程序設(shè)計(jì)……………………………………………...............13 3.1實(shí)物源程序.……………………………………………….........13 3.2 仿真源程序.……………………………………………............19 4 仿真結(jié)果與分析………
6、……………………………………......23 5 心得體會(huì)……………………………………………………......28 6 參考文獻(xiàn)……………………………………………………......29 7 本科生課程設(shè)計(jì)成績?cè)u(píng)定表………………………………......30 1 總體設(shè)計(jì)原理 利用紅外遙控器控制步進(jìn)電機(jī)其實(shí)和用鍵盤控制步進(jìn)電機(jī)原理類似,只不過按鍵是用導(dǎo)線傳遞鍵是否按下的信號(hào),而紅外則是利用LED發(fā)射紅外線傳遞按鍵信息。由于紅外采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms 的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、
7、間隔1.685ms、周期為2.25ms 的組合表示二進(jìn)制的“1”,在解碼時(shí)通過判斷高低電平持續(xù)時(shí)間的長短來識(shí)別發(fā)送的鍵值。 控制步進(jìn)電機(jī)正、反方向轉(zhuǎn)動(dòng)、單步、連續(xù)、快慢等動(dòng)作,原理其實(shí)并不困難。步進(jìn)電機(jī)將電脈沖信號(hào)轉(zhuǎn)換成角位移,即給一個(gè)脈沖,步進(jìn)電機(jī)就轉(zhuǎn)動(dòng)一個(gè)角度,轉(zhuǎn)動(dòng)的角度大小與施加的脈沖數(shù)成正比,因此,單步和連續(xù)的動(dòng)作區(qū)別只是單片機(jī)給步進(jìn)電機(jī)脈沖個(gè)數(shù)不同而已。每按一次單步鍵就是給電機(jī)一個(gè)脈沖,而連續(xù)則是不斷的給電機(jī)脈沖,達(dá)到連續(xù)運(yùn)轉(zhuǎn)的目的。 單片機(jī)的晶振為12MHz,單周期指令執(zhí)行時(shí)間為1MHz,由于機(jī)械動(dòng)作需要一定時(shí)間來完成,如果以這么快的速度來給脈沖,電機(jī)是不會(huì)轉(zhuǎn)動(dòng)的,因此,在兩個(gè)
8、脈沖之間必須要有一定時(shí)間差,電機(jī)才有時(shí)間來執(zhí)行動(dòng)作。電機(jī)轉(zhuǎn)動(dòng)的速度與脈沖頻率成正比,控制脈沖間隔時(shí)間就相當(dāng)于控制了步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)角頻率即快慢。 步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)需要向電機(jī)以一定的順序分配驅(qū)動(dòng)脈沖。如四相單四拍,其脈沖分配的方式和順序?yàn)锳-B-C-D-A,如此周而復(fù)始,即可轉(zhuǎn)動(dòng)。轉(zhuǎn)動(dòng)方向與脈沖順序有關(guān),如果給相反脈沖,那么電機(jī)就會(huì)反轉(zhuǎn)。 根據(jù)該系統(tǒng)設(shè)計(jì)要求,需要通過紅外遙控器按下按鍵和顯示器來改變步進(jìn)電機(jī)的運(yùn)動(dòng)狀態(tài)以及顯示,只需要紅外遙控器中6個(gè)按鍵就可滿足需求,外加8位LED數(shù)碼顯示管即可。由于實(shí)驗(yàn)箱上只有8個(gè)連體數(shù)碼管,因此需要?jiǎng)討B(tài)掃描。通過從鍵盤上輸入正、反轉(zhuǎn)命令,按鍵數(shù)值顯示在數(shù)
9、碼管上,CPU再讀取正、反轉(zhuǎn)命令,加減速后執(zhí)行。經(jīng)鍵盤可完成啟動(dòng)、停止、正轉(zhuǎn)、反轉(zhuǎn)、速度設(shè)置控制功能。 按下紅外遙控器上的相關(guān)按鈕電機(jī)執(zhí)行相關(guān)動(dòng)作,同時(shí)數(shù)碼管上顯示按鍵的數(shù)值,系統(tǒng)大部分都是軟件實(shí)現(xiàn)的,整個(gè)設(shè)計(jì)框圖如下: LED顯示 單片機(jī) 步進(jìn)電機(jī) 紅外遙控按鍵 紅外接收 圖1 總體設(shè)計(jì)框圖 2主要模塊設(shè)計(jì) 2.1紅外遙控模塊 本模塊應(yīng)完成對(duì)紅外遙控器有無鍵按下進(jìn)行確認(rèn),當(dāng)有鍵按下時(shí),確定按鍵值,并根據(jù)所得鍵值進(jìn)行處理(包括所按鍵是不是停止鍵還是執(zhí)行鍵。如是停止鍵,不斷掃描鍵盤程序,等待執(zhí)行鍵按下;如是執(zhí)行鍵就啟動(dòng)產(chǎn)生步進(jìn)電機(jī)控制信號(hào)程序)。顯示
10、模塊主要是完成在進(jìn)行鍵盤按下時(shí),顯示輸入的數(shù)據(jù)值(轉(zhuǎn)矩?cái)?shù)、轉(zhuǎn)動(dòng)方向、轉(zhuǎn)動(dòng)速率及運(yù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左右的一個(gè)高脈沖和一個(gè)低脈沖的組合,用來標(biāo)識(shí)指令碼的開始。地址碼、數(shù)據(jù)碼、數(shù)據(jù)碼的反碼均為數(shù)據(jù)編碼
11、脈沖,用二進(jìn)制數(shù)表示?!?”和“1”均由ms量級(jí)的高低脈沖的組合代表。地址碼(即用戶碼)是對(duì)每個(gè)遙控系統(tǒng)的標(biāo)識(shí)。通過對(duì)地址碼的檢驗(yàn),每個(gè)遙控器就只能控制一個(gè)設(shè)備動(dòng)作,有效地防止了多個(gè)設(shè)備之間的串?dāng)_。當(dāng)指令鍵按下時(shí),指令信號(hào)產(chǎn)生電路便產(chǎn)生脈沖編碼。數(shù)據(jù)碼后面一般還要有數(shù)據(jù)碼的反碼,用來檢驗(yàn)數(shù)據(jù)碼接收的正確性,以防止誤動(dòng)作,增強(qiáng)系統(tǒng)的可靠性。這些指令信號(hào)由調(diào)制電路調(diào)制成32~40 kHz的信號(hào),經(jīng)調(diào)制后輸出,最后由驅(qū)動(dòng)電路驅(qū)動(dòng)紅外發(fā)射器件(LED)發(fā)出紅外遙控信號(hào)。 紅外遙控發(fā)射接收器及其編解碼 遙控發(fā)射器的專用芯片很多,根據(jù)編碼格式可以分成兩大類,即頻分制與碼分制。頻分制是按照載
12、頻的不同來進(jìn)行頻道劃分的,即它用不同的頻率信號(hào)來表示不同的控制信號(hào);碼分制是用不同的脈沖數(shù)目或者寬度不同的脈沖組合來代表不同的控制指令的。這里我們以運(yùn)用比較廣泛,解碼比較容易的碼分制來加以說明。現(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-4所示。
13、 解碼的關(guān)鍵是如何識(shí)別“0”和“1”,從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。如果從0.56ms低電平過后,開始延時(shí),0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時(shí)必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此?。?.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右均可。但根據(jù)碼的格式,應(yīng)該等待9ms的起始碼和4.
14、5ms的結(jié)果碼完成后才能讀碼。 紅外線解碼框圖如下: 圖4 解碼框圖 本次設(shè)計(jì)我借用了實(shí)驗(yàn)室的試驗(yàn)箱,試驗(yàn)箱配備了標(biāo)準(zhǔn)的HT6121編碼紅外遙控器,這也就是紅外發(fā)射部分,紅外接收部分在試驗(yàn)箱上面。這樣就省略了對(duì)紅外發(fā)射部分的電路設(shè)計(jì)。 2.2步進(jìn)脈沖模塊: 2.2.1步進(jìn)電機(jī)工作原理與控制: 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到
15、準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),利用其沒有積累誤差(精度為100%)的特點(diǎn),廣泛應(yīng)用于各種開環(huán)控制。 在圖1的a圖中B相被勵(lì)磁,轉(zhuǎn)子與B相對(duì)準(zhǔn)。在這個(gè)位置上,再對(duì)A相進(jìn)行勵(lì)磁,則轉(zhuǎn)子在磁場作用下順時(shí)針轉(zhuǎn)過15,如圖1的b圖所示,這樣步進(jìn)電機(jī)就轉(zhuǎn)過了一個(gè)步距角。繼續(xù)對(duì)C相進(jìn)行勵(lì)磁,轉(zhuǎn)子在磁場的作用下進(jìn)一步順時(shí)針轉(zhuǎn)過15,到達(dá)c圖所示的位置,又轉(zhuǎn)過了一個(gè)步距角。再對(duì)D相進(jìn)行勵(lì)磁,又產(chǎn)生了一個(gè)新的磁場,在磁力的作用下轉(zhuǎn)子又轉(zhuǎn)過一個(gè)步距角15。這樣步進(jìn)電機(jī)的四相完成一個(gè)通電循環(huán),若要繼續(xù)轉(zhuǎn)動(dòng),就繼續(xù)順
16、次勵(lì)磁,即步進(jìn)電機(jī)按照A→B→C→D→A……順序順次勵(lì)磁,那么電機(jī)就不停地轉(zhuǎn)動(dòng)。 一般對(duì)步進(jìn)電機(jī)采用半步驅(qū)動(dòng),即四相八拍工作方式,使步進(jìn)電機(jī)每次勵(lì)磁轉(zhuǎn)過1/2的步距角,即每次改變勵(lì)磁方式步進(jìn)電機(jī)轉(zhuǎn)過7.5,它的勵(lì)磁方式是A→AB→B→BC→C→CD→D→DA→A……,若要反轉(zhuǎn)也是只需改變勵(lì)磁方式即可,即按照A→AD→D→DC→C→CB→B→BA→A……,采用八拍工作方式使得電機(jī)的轉(zhuǎn)動(dòng)更加穩(wěn)定,也進(jìn)一步增強(qiáng)了步進(jìn)電機(jī)的控制精度。 實(shí)驗(yàn)箱中使用的是四相步進(jìn)電動(dòng)機(jī),步進(jìn)電機(jī)的控制有三個(gè)問題需要解決,下面分別闡述: (1) 控制其轉(zhuǎn)動(dòng) 按照一定的順序向步進(jìn)電動(dòng)機(jī)的
17、各相分配驅(qū)動(dòng)脈沖。就四相步進(jìn)電機(jī)而言,如果采用但四拍方式,其脈沖分配的方式和順序是A-B-C-D-A ,如果采用單雙八拍的方式,其脈沖分配的方式和順序?yàn)椋篈-AB-B-BC-C-CD-D-DA-A.四相步進(jìn)電動(dòng)機(jī)的勵(lì)磁工作方式如下表所示: 編碼結(jié)果(十六進(jìn)制) 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 四相步進(jìn)電動(dòng)機(jī)勵(lì)磁工作方式示例
18、 (2)控制其轉(zhuǎn)動(dòng)方向 控制其轉(zhuǎn)動(dòng)方向,其實(shí)只需考慮在脈沖分配的過程中注意一定得順序即可解決。就四相步進(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)動(dòng)速度 在脈沖分配的過程中,控制在每兩個(gè)相鄰脈沖輸出中的間隔時(shí)間即可解決速度問題。 圖5 單片機(jī)與步進(jìn)電機(jī)的連接 步進(jìn)電機(jī)的控制 步進(jìn)電機(jī)的速度由單片機(jī)發(fā)送的脈沖頻率決定,
19、而脈沖頻率可以通過軟件延時(shí)和硬件定時(shí)兩種方式實(shí)現(xiàn)。通過調(diào)用標(biāo)準(zhǔn)延時(shí)子程序產(chǎn)生脈沖的方法稱軟件延時(shí)。 通過使用單片機(jī)的定時(shí)/計(jì)數(shù)器T0或T1,定時(shí)產(chǎn)生脈沖的方法稱為硬件定時(shí),該法首先根據(jù)定時(shí)的時(shí)間長短設(shè)定定時(shí)器的工作模式,然后輸入定時(shí)器的定時(shí)常數(shù),則定時(shí)器就會(huì)定時(shí)溢出,單片機(jī)就會(huì)每溢出一次就產(chǎn)生一個(gè)脈沖信號(hào)控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。 用定時(shí)中斷方式來控制電動(dòng)機(jī)變速時(shí),實(shí)際上是不斷改變定時(shí)器裝載值的大小。在程序中,每按一次加減速鍵,程序中speed都會(huì)加減1,最后通過查表的方法改變定時(shí)計(jì)數(shù)器初值,達(dá)到加減速的目的。 至于步進(jìn)電機(jī)的正反轉(zhuǎn)則是公用一個(gè)鍵,按下轉(zhuǎn)動(dòng)方向就相反,正反轉(zhuǎn)的實(shí)現(xiàn)是通過判斷20號(hào)
20、單元的第2位即20H.1是0還是1,若是0則去查反轉(zhuǎn)的表否則去查正轉(zhuǎn)的表,實(shí)行起來比較方便。 2.2.2.步進(jìn)機(jī)的驅(qū)動(dòng)電路 本系統(tǒng)采用額定電壓為5V,相數(shù)為4相的步進(jìn)電機(jī),驅(qū)動(dòng)方式為4相8拍。一共有5跟線連接,其中紅色的為電源線。采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。由于單片機(jī)P口輸出的電流比較弱不能驅(qū)動(dòng)步進(jìn)電機(jī),所以要加一個(gè)ULN2003芯片來放大電流使之能驅(qū)動(dòng)步進(jìn)電機(jī)工作。步進(jìn)電機(jī)驅(qū)動(dòng)電路如下圖 圖6 步進(jìn)機(jī)驅(qū)動(dòng)電電路 由于驅(qū)動(dòng)芯片ULN2003A本身就具有反相
21、器的作用,所以控制步進(jìn)機(jī)的信號(hào)都經(jīng)過了反相器反相處理再接入U(xiǎn)LN2003A。 2.3 主要接口電路 將設(shè)計(jì)的幾個(gè)模塊和8051單片機(jī)結(jié)合起來。 2.3.1步進(jìn)機(jī)的驅(qū)動(dòng)電路與8051的接口電路 圖7 步進(jìn)機(jī)的驅(qū)動(dòng)電路與8051的接口電路 2.3.2 模擬按鍵與8051的接口電路 在proteus軟件上對(duì)電路進(jìn)行仿真,由于沒有適合的作為紅外發(fā)射和接收的芯片或元件,所以在仿真的時(shí)候?qū)⒓t外發(fā)射以及模塊等效為模擬按鍵模塊,其與8051芯片的接口電路如下: 圖8 模擬按鍵與8051的接口電路
22、 2.4 資源分配表和總圖 1. P3.0-P3.7輸出字形碼到LED數(shù)碼管,用于顯示對(duì)應(yīng)按下的鍵值。 2. P1.0-P1.4用于掃描模擬鍵盤所按下的按鍵。 3. :P2.0-P2.3是步進(jìn)機(jī)控制脈沖輸出口,用于控制步進(jìn)機(jī)的運(yùn)動(dòng),實(shí)現(xiàn)正反轉(zhuǎn),加減速,單步,停止的目的。 4:對(duì)仿真總圖語言設(shè)計(jì)進(jìn)行的標(biāo)注: 1) 步進(jìn)機(jī)正轉(zhuǎn)表:07H,03h,0BH,09h,0DH,0ch,0EH,06h 2 )步進(jìn)機(jī)反轉(zhuǎn)表:06H,0Eh,0CH,0Dh,09H,0Bh,03H,07h 3 )減速中斷計(jì)數(shù)初值表: TABLE1:DB 0C5H,8AH,3CH,15h
23、 TABLE2:DB 68H,0D0H,0B0H,0A0H 4)加速中斷計(jì)數(shù)初值表: TABLE3:DB 15H,3CH,8AH,0C5H TABLE4:DB 0A0H,0B0H,0D0H,68H 詳細(xì)接線見下面的總體硬件系統(tǒng)連接圖: 圖9 PROTEUS仿真總圖 3源程序設(shè)計(jì) 由于實(shí)物和仿真由于條件限制造成了源程序不同,所以下面給出了兩種源程序,仿真的源程序省略了紅外發(fā)射與接收并處理的程序,改成了對(duì)模擬鍵盤的掃描。 3.1實(shí)物源程序 ORG 0000H AJMP START
24、 ORG 0003H AJMP JIAN ORG 000BH AJMP loop4 ORG 001BH AJMP loop5 START: WAIT:JB P3.7, $ ;等待遙控信號(hào)出現(xiàn) SB:MOV R4,#8 ;8毫秒為高電平錯(cuò)誤 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的尖峰干擾信號(hào) JNB P3.7,SBB DJ
25、NZ R5,SXB2 JMP START SBC:MOV R5,#250 SB1:JB P3.7,SB2 ;2MS內(nèi)不為高電平錯(cuò)誤 DJNZ R5,SB1 DJNZ R4,SBC JMP START SB2: ;去掉20US的尖峰干擾信號(hào) MOV R5,#5 SB2_A:JNB P3.7,SB1 DJNZ R5,SB2_A MOV R4,#3 SB2_1:MOV R5,#250 SB3: ;監(jiān)測(cè)4.5MS高電平,如3MS內(nèi)出現(xiàn)低電平錯(cuò)誤 JNB P3.7,SXC DJNZ R
26、5,SB3 DJNZ R4,SB2_1 MOV R4,#2 JMP SB3_1 SXC: ;去掉20US的尖峰干擾信號(hào) MOV R5,#5 SXC1:JB P3.7,SB3 DJNZ R5,SXC1 JMP START SB3_1: ;監(jiān)測(cè)4.5MS高電平,如5MS內(nèi)不為低錯(cuò)誤 MOV R5,#250 SB3_2:JNB P3.7,SB4 DJNZ R5,SB3_2 DJNZ R4,SB3_1 JMP START SB4: ;去掉20US的尖峰干
27、擾信號(hào) MOV R5,#5 SB4_1:JB P3.7,SB3_2 DJNZ R5,SB4_1 MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū) MOV R2,#4 PP: MOV R3,#8 JJJJ:MOV R5,#250 JJJJ2: ;1MS內(nèi)不為低電平錯(cuò)誤 JB P3.7,JJJJ3 DJNZ R5,JJJJ2 JMP START JJJJ3:LCALL YS1;高電平開始后用882微秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(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 ;對(duì)R1加1,換成下一個(gè)RAM DJNZ R2,PP ;以下對(duì)代碼是否正確和定義進(jìn)行識(shí)別 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比較 不同則無效丟棄,核對(duì)數(shù)據(jù)是否準(zhǔn)確 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: ;對(duì)所有端口清零 AJMP START ;連發(fā)碼判斷程序段----------- HH: MOV R6,#4 S: ACALL YS1 ;調(diào)用882微秒延時(shí)子程序 JB P3.7,EXIT ;延時(shí)882微秒后判斷P3.7腳是否出現(xiàn)高
31、電平如果有就退出解碼程序 DJNZ R6, S ;重復(fù)4次,目的是確認(rèn) 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 ;延時(shí)子程序1, 882微秒 D9: MOV R5,#20 DJNZ R5,$ DJNZ R4,D9 RET YS2: MOV R4,#10 ;延時(shí)子程序2, 4740微秒 D8: MOV R5,#235 DJNZ R5,$ DJNZ R4,D8 RET YS3: MOV R4,#2 ;延時(shí)程序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、啟動(dòng)狀態(tài),數(shù)碼管顯示0,8051無工作,示波器無波形: 圖10 啟動(dòng)狀態(tài) 2 單步執(zhí)行,數(shù)碼管顯示1,系統(tǒng)開始工作,步進(jìn)機(jī)轉(zhuǎn)動(dòng)一定角度然后停止,示波器顯示波形如下: 圖11 單步狀態(tài) 3 正轉(zhuǎn)(連續(xù)),數(shù)碼管顯示2,步進(jìn)機(jī)不停地以恒定的速度逆時(shí)針(以逆時(shí)針為正轉(zhuǎn))轉(zhuǎn)動(dòng),示波器波形如下: 圖12 正轉(zhuǎn)(連續(xù))狀態(tài) 4反轉(zhuǎn)(連續(xù)),數(shù)碼管顯示3,步進(jìn)機(jī)不停地以恒定的速度順時(shí)針(以順時(shí)針
56、為反轉(zhuǎn))轉(zhuǎn)動(dòng),示波器波形如下: 圖13 反轉(zhuǎn)(連續(xù))狀態(tài) 做完了反轉(zhuǎn)然后就是加速控制,由于需要外部中斷0來控制加速的進(jìn)程,所以必須利用僅剩的P3口,即必須省去數(shù)碼管顯示部分。 5減速(正轉(zhuǎn),連續(xù)),通過不斷的按下P3口接部中斷的按鍵來實(shí)現(xiàn)不斷的減速并循環(huán)。 圖14 減速狀態(tài)對(duì)照表 6 加速(正轉(zhuǎn),連續(xù))原理同加速,略。 仿真過程問題與分析 在仿真過程中,本人遇到了很多次困難,舉例如下: 1 端口資源分配,8051的四個(gè)P端口都被利用了,最后為了設(shè)置外
57、部中斷0,不得不取消了數(shù)碼管顯示功能。 2 步進(jìn)機(jī)轉(zhuǎn)表問題,實(shí)現(xiàn)正轉(zhuǎn)和反轉(zhuǎn)對(duì)應(yīng)的轉(zhuǎn)表不是直接相反的。 3 加速與減速設(shè)計(jì)時(shí)候的定時(shí)中斷與中斷程序的銜接要好。 4 中斷表(計(jì)數(shù)初值表),步進(jìn)機(jī)轉(zhuǎn)表兩概念不要混淆。 通過對(duì)上述截圖的觀察可以得到結(jié)論:仿真完全符合設(shè)計(jì)要求。 5 心得體會(huì) 6參考文獻(xiàn) [1]李群芳。單片微型計(jì)算機(jī)與接口技術(shù)。北京:電子工業(yè)出版社,2008.5 [2]胡漢才。單片機(jī)原理及系統(tǒng)設(shè)計(jì)。北京:清
58、華大學(xué)出版社,2002 [3]王曉明。電動(dòng)機(jī)的單片機(jī)控制。北京:北京航天航空大學(xué)出版社,2002 [4]汪道輝。單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)踐。 北京:電子工業(yè)出版社 ,2006 本科生課程設(shè)計(jì)成績?cè)u(píng)定表 姓 名 楊飛 性 別 男 專業(yè)、班級(jí) 電子信息工程0804班 課程設(shè)計(jì)題目: 設(shè)計(jì)并實(shí)現(xiàn)紅外遙控步進(jìn)機(jī) 課程設(shè)計(jì)答辯或質(zhì)疑記錄: 成績?cè)u(píng)定依據(jù): 最終評(píng)定成績(以優(yōu)、良、中、及格、不及格評(píng)定) 指導(dǎo)教師簽字: 年 月 日 - 32 -
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案