版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計(jì) 說 明 書</p><p> 題目: 步進(jìn)電機(jī)控制 </p><p> 學(xué)院(系): 電氣工程學(xué)院 </p><p> 年級專業(yè): 09級檢測一班 </p><p><b> 目錄 </b></p><p> 摘要
2、 4</p><p> 引言 4</p><p> 第一章 步進(jìn)電機(jī)的基本介紹
3、 5</p><p> 1.1步進(jìn)電機(jī)控制工作原理 5</p><p> 1.2結(jié)構(gòu) 5</p><p> 1.3步進(jìn)電機(jī)的優(yōu)點(diǎn)
4、 6</p><p> 第四章 系統(tǒng)硬件設(shè)計(jì) 6</p><p> 4.1總體設(shè)計(jì) 6</p><p> 4.2硬件設(shè)計(jì)
5、 7</p><p> 第五章 系統(tǒng)軟件設(shè)計(jì) 9</p><p> 5.1 程序流程圖 9</p>
6、<p> 5.2控制系統(tǒng)程序 10</p><p> 第六章心得體會 16</p><p> 參考文獻(xiàn)
7、 17</p><p> 課程設(shè)計(jì)(論文)任務(wù)書</p><p> 院(系): 基層教學(xué)單位:</p><p> 說明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。</p><p> 2012年 6 月 30 日<
8、/p><p><b> 摘 要</b></p><p> 步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù) , 而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號,電機(jī)則轉(zhuǎn)過一個(gè)步距角 。 這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn)。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)
9、來控制變的非常的簡單。步進(jìn)電機(jī)的調(diào)速一般是改變輸入步進(jìn)電機(jī)的脈沖的頻率來實(shí)現(xiàn)步進(jìn)電機(jī)的調(diào)速, 因?yàn)椴竭M(jìn)電機(jī)每給一個(gè)脈沖就轉(zhuǎn)動(dòng)一個(gè)固定的角度,這樣就可以通過控制步進(jìn)電機(jī)的一個(gè)脈沖到下一個(gè)脈沖的時(shí)間間隔來改變脈沖的頻率,延時(shí)的長短來具體控制步進(jìn)角來改變電機(jī)的轉(zhuǎn)速,從而實(shí)現(xiàn)步進(jìn)電機(jī)的調(diào)速。在本設(shè)計(jì)方案中采用軟件延時(shí)來控制轉(zhuǎn)速,通過送控制字的順序來改變電機(jī)轉(zhuǎn),實(shí)現(xiàn)電機(jī)調(diào)速與正反轉(zhuǎn)的功能。</p><p> 本文的設(shè)計(jì)是
10、通過8051單片機(jī)I/O口輸出具有時(shí)序的方波作為步進(jìn)電機(jī)的控制信號,信號經(jīng)過驅(qū)動(dòng)芯片驅(qū)動(dòng)步進(jìn)電機(jī);同時(shí),用鍵盤來對電機(jī)的狀態(tài)進(jìn)行控制。</p><p><b> 引 言</b></p><p> 步進(jìn)電機(jī)又稱為脈沖電動(dòng)機(jī)或階躍電動(dòng)機(jī),它是基于最基本的電磁感應(yīng)作用,將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。單片機(jī)控制的步進(jìn)電機(jī)廣泛地應(yīng)用于工業(yè)自動(dòng)控制、數(shù)控機(jī)
11、床、組合機(jī)床、機(jī)器人、計(jì)算機(jī)外圍設(shè)備、照相機(jī),大型望遠(yuǎn)鏡,衛(wèi)星天線定位系統(tǒng)等等。</p><p> 隨著經(jīng)濟(jì)的發(fā)展,技術(shù)的進(jìn)步和電子技術(shù)的發(fā)展,步進(jìn)電機(jī)的應(yīng)用領(lǐng)域更加廣闊,同時(shí)也對步進(jìn)電機(jī)的運(yùn)行性能提出了更高的要求。</p><p> 步進(jìn)電機(jī)的原始模型起源于1830年至1860年,1870年前后開始以控制為目的的嘗試,應(yīng)用于氬弧燈的電極輸送機(jī)構(gòu)中,這被認(rèn)為最早的步進(jìn)電機(jī)。</p
12、><p> 1950年后期晶體管的發(fā)明也逐漸應(yīng)用在步進(jìn)電機(jī)上,對于數(shù)字化的控制變得更為容易。到20世紀(jì)60年代后期,在步進(jìn)電機(jī)本體方面隨著永磁材料的發(fā)展,各種實(shí)用性步進(jìn)電機(jī)應(yīng)運(yùn)而生。步進(jìn)電機(jī)往后經(jīng)過不斷改良,使得今日步進(jìn)電機(jī)已廣泛運(yùn)用在需要高定位精度、高分解能、高響應(yīng)性、信賴性等靈活控制性高的機(jī)械系統(tǒng)中。</p><p> 在生產(chǎn)過程中要求自動(dòng)化、省人力、效率高的機(jī)器中,我們很容易發(fā)現(xiàn)步進(jìn)
13、電機(jī)的蹤跡,尤其以重視速度、位置控制、需要精確操作各項(xiàng)指令動(dòng)作的靈活控制性場合步進(jìn)電機(jī)用得最多。</p><p> 第一章 步進(jìn)電機(jī)的基本介紹</p><p> 1.1 步進(jìn)電機(jī)控制工作原理</p><p> 步進(jìn)電機(jī)實(shí)際上是一個(gè)數(shù)字\角度轉(zhuǎn)換器,也是一個(gè)串行的數(shù)\模轉(zhuǎn)換器。步進(jìn)電</p><p> 機(jī)的基本控制包括啟??刂?、轉(zhuǎn)向控
14、制、速度控制、換向控制4 個(gè)方面。從結(jié)構(gòu)上看 ,</p><p> 步進(jìn)電機(jī)分為三相、四相、五相等類型 ,本次設(shè)計(jì)的是四相電機(jī)。四相步進(jìn)電機(jī)的工</p><p> 作方式有單四拍、雙四拍和單雙八拍3 種 。</p><p> 在本次設(shè)計(jì)中,我們使用的是四相單四拍的工作方式。通過P1口給A,B,C,D四相</p><p> 依次輸出高電
15、平即可實(shí)現(xiàn)步進(jìn)電機(jī)的旋轉(zhuǎn),通過控制兩次輸出的間隔,即可實(shí)現(xiàn)對步</p><p><b> 進(jìn)電機(jī)的速度控制。</b></p><p><b> 1.2 結(jié)構(gòu)</b></p><p> 圖1 步進(jìn)電機(jī)內(nèi)部結(jié)構(gòu)圖</p><p> 如圖1所示,步進(jìn)電機(jī)分為轉(zhuǎn)子和定子兩部分:</p>
16、;<p> 1. 定子:由硅鋼片疊成的,定子上有6大磁極,每2個(gè)相對的磁極(N,S)組成一對,共有3對。定子齒有三個(gè)勵(lì)磁繞阻,其幾何軸線依次分別與轉(zhuǎn)子齒軸線錯(cuò)開。 0、1/3π、2/3π,(相鄰兩轉(zhuǎn)子齒軸線間的距離為齒距以π表示),即A與齒1相對齊,B與齒2向右錯(cuò)開1/3π,C與齒3向右錯(cuò)開2/3π,A'與齒5相對齊,(A'就是A,齒5就是齒1)。</p><p> 2. 轉(zhuǎn)子:
17、由軟磁材料制成,其外表面也均勻地分布著小齒,與定子上的小齒相同,并且小齒的大小相同,間距相同。</p><p> 1.3 步進(jìn)電機(jī)的優(yōu)點(diǎn)</p><p> 與傳統(tǒng)步進(jìn)控制器相比較有以下優(yōu)點(diǎn):</p><p> 1. 用微型機(jī)代替了步進(jìn)控制器把并行二進(jìn)制碼轉(zhuǎn)換成串行脈沖序列,并實(shí)現(xiàn)方向控制。</p><p> 2. 只要負(fù)載是在步進(jìn)電機(jī)
18、允許的范圍之內(nèi),每個(gè)脈沖將使電機(jī)轉(zhuǎn)動(dòng)一個(gè)固定的步距角度。</p><p> 3. 根據(jù)步距角的大小及實(shí)際走的步數(shù),只要知道初始位置,便可知道步進(jìn)電機(jī)的最終位置。</p><p> 1.4 步進(jìn)電機(jī)的啟??刂?lt;/p><p> 步進(jìn)電機(jī)由于其電氣特性,運(yùn)轉(zhuǎn)時(shí)會有步進(jìn)感 ,即振動(dòng)感。為了使電機(jī)轉(zhuǎn)動(dòng)平滑 ,</p><p> 減小振動(dòng) ,可
19、在步進(jìn)電機(jī)控制脈沖的上升沿和下降沿采用細(xì)分的梯形波 ,可以減小步</p><p> 進(jìn)電機(jī)的步進(jìn)角 ,提高電機(jī)運(yùn)行的平穩(wěn)性。在步進(jìn)電機(jī)停轉(zhuǎn)時(shí) ,為了防止因慣性而使</p><p> 電機(jī)軸產(chǎn)生順滑 ,則需采用合適的鎖定波形 ,產(chǎn)生鎖定磁力矩 ,鎖定步進(jìn)電機(jī)的轉(zhuǎn)軸 ,</p><p> 使步進(jìn)電機(jī)的轉(zhuǎn)軸不能自由轉(zhuǎn)動(dòng)。 </p><p>
20、 1.5 步進(jìn)電機(jī)的轉(zhuǎn)向控制</p><p> 步進(jìn)電機(jī)換向時(shí),一定要在電機(jī)降速停止或降到突跳頻率范圍之內(nèi)在換向,以免產(chǎn)生較大的沖擊而損壞電機(jī)。換向信號一定要在前一個(gè)方向的最后一個(gè)脈沖結(jié)束后以及下一個(gè)方向的第一個(gè)脈沖前發(fā)出。對于脈沖的設(shè)計(jì)主要要求其有一定的脈沖寬度、脈沖序列的均勻度及高低電平方式。在某一高速下的正、反向切換實(shí)質(zhì)包含了降速→換向→加速 3 個(gè)過程。</p><p> 如果
21、給定工作方式正序換相通電 ,步進(jìn)電機(jī)正轉(zhuǎn)。若步進(jìn)電機(jī)的勵(lì)磁方式為單四拍,即 A-B-C-D。如果按反序通電換相 ,則電機(jī)就反轉(zhuǎn)。 </p><p> 1.6 步進(jìn)電機(jī)的速度控制</p><p> 步進(jìn)電機(jī)速度的控制是通過控制單片機(jī)發(fā)出的步進(jìn)脈沖的頻率來實(shí)現(xiàn)。對于軟件脈沖分配方式采用調(diào)整兩個(gè)控制字之間的時(shí)間間隔來實(shí)現(xiàn)調(diào)速;對于硬件脈沖分配方式則采用定時(shí)中斷方
22、式來調(diào)整脈沖頻率從而實(shí)現(xiàn)調(diào)速。根據(jù)以上所述,控制步進(jìn)電機(jī)速度的方法有兩種。</p><p> (1)軟件延時(shí)法:通過調(diào)用標(biāo)準(zhǔn)的延時(shí)子程序,改變兩控制字之間延時(shí)時(shí)間來實(shí)現(xiàn)。采用軟件延時(shí)方法實(shí)現(xiàn)速度調(diào)節(jié)的優(yōu)點(diǎn)是程序簡單,思路清晰,不占用硬件資源,缺點(diǎn)是CPU的等待時(shí)間過長,占用大量機(jī)時(shí),因此沒有實(shí)用價(jià)值。 </p><p> (2)定時(shí)器中斷法。以805l單片機(jī)為例,在中斷服務(wù)子程序
23、中進(jìn)行脈沖輸出操作,調(diào)整定時(shí)器的定時(shí)常數(shù)就可實(shí)現(xiàn)脈沖頻率的調(diào)整,從而實(shí)現(xiàn)調(diào)速。這種方法占用CPU時(shí)間較少,容易實(shí)現(xiàn),是一種比較實(shí)用的調(diào)速方法。本文使用的就是定時(shí)器中斷法,通過改變兩次脈沖之前的間隔來實(shí)現(xiàn)對速度的調(diào)制。</p><p> 1.7 系統(tǒng)設(shè)計(jì)思路</p><p> 此次我們所設(shè)計(jì)的是一個(gè)步進(jìn)電機(jī)控制系統(tǒng),主要由單片機(jī)80C51, 4相步進(jìn)電機(jī),鍵盤,UNL2003及一些其他相
24、關(guān)元件設(shè)計(jì)而成??梢酝ㄟ^鍵盤來控制系統(tǒng)的啟/停工作,當(dāng)系統(tǒng)運(yùn)轉(zhuǎn)時(shí),用鍵盤來控制方向,同樣由鍵盤來選擇工作模式,最后根據(jù)思路所設(shè)計(jì)出來的硬件圖設(shè)計(jì)相適應(yīng)的軟件。</p><p> 圖2 用微型機(jī)控制步進(jìn)電機(jī)原理系統(tǒng)圖</p><p> 第二章 系統(tǒng)硬件設(shè)計(jì)</p><p><b> 2.1總體設(shè)計(jì)</b></p><
25、p> 設(shè)計(jì)一個(gè)單片機(jī)四相步進(jìn)電機(jī)控制系統(tǒng)要求系統(tǒng)具有如下功能:</p><p> (1)由I/O口產(chǎn)生的時(shí)序方波作為電機(jī)控制信號</p><p> ?。?)信號經(jīng)過驅(qū)動(dòng)芯片驅(qū)動(dòng)電機(jī)的運(yùn)轉(zhuǎn)</p><p> (3)電機(jī)的狀態(tài)通過鍵盤控制,包括正轉(zhuǎn),反轉(zhuǎn),加速,減速,停止。</p><p> 根據(jù)要求系統(tǒng)設(shè)計(jì)的框圖如下:</p
26、><p> 圖 3 系統(tǒng)的整體設(shè)計(jì)思想框圖</p><p> 2.2 系統(tǒng)硬件設(shè)計(jì)</p><p> ?。?)步進(jìn)電機(jī)的驅(qū)動(dòng)電路:</p><p> 圖4 步進(jìn)電機(jī)的驅(qū)動(dòng)電路圖</p><p> 其中1B、2B、3B、4B分別與P1.0、P1.1、P1.2、P1.3相接</p><p>&
27、lt;b> ?。?)鍵盤電路:</b></p><p><b> 圖4 驅(qū)動(dòng)電路</b></p><p> 圖5 鍵盤電路 </p><p> ?。?)時(shí)鐘晶振電路:</p><p> 圖6 時(shí)鐘晶振電路圖</p><p>
28、; ?。?)系統(tǒng)總圖如下:</p><p><b> 圖7 系統(tǒng)總圖</b></p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)</p><p> 按硬件圖連接好電路以后,開始寫程序,并運(yùn)行程序,1鍵為啟動(dòng),2鍵為停止,</p><p> 3鍵為減速,四鍵為加速,5鍵為正轉(zhuǎn),6鍵為反轉(zhuǎn),單片機(jī)輸出信息通過P1口的P1.0
29、,</p><p> P1.1,P1.2,P1.3給驅(qū)動(dòng)器件NLN2003A,然后驅(qū)動(dòng)電機(jī)進(jìn)行個(gè)狀態(tài)間的轉(zhuǎn)換。</p><p> 3.1具體的程序流程圖如下所示:</p><p> ?。?)主程序流程圖 (2)鍵盤掃描流程圖</p><p> 由分析可以看出,實(shí)現(xiàn)設(shè)計(jì)要求的系統(tǒng)的軟件程序應(yīng)主要
30、由主程序,按鍵程序,正轉(zhuǎn)反轉(zhuǎn)程序,延遲程序構(gòu)成,因此在設(shè)計(jì)中,我們依次設(shè)計(jì)鍵盤掃描程序,正轉(zhuǎn),反轉(zhuǎn)程序,延時(shí)程序等,再用主程序?qū)λ鼈冞M(jìn)行調(diào)用,即可完成我們所需的設(shè)計(jì)要求。</p><p><b> 3.2 主程序</b></p><p> 主程序主要完成了對系統(tǒng)各個(gè)初值的設(shè)置,并且不斷的進(jìn)行待機(jī)鍵盤掃描:</p><p> OUTBIT
31、 equ 08002h; 《給標(biāo)號幅初值》 </p><p> IN equ 08001h</p><p> yanshi equ 20h</p><p> org 0000h; 《定義程序的存儲位置》</p><p> ljmp main</
32、p><p><b> org 0100h</b></p><p> main: mov p1,#0h; 《對P1口的低四位進(jìn)行清零操作》</p><p> mov sp, #70h;</p><p> loop: mov tmod,#10h</p><p>
33、 mov yanshi,#20h; 《對延時(shí)幅初值》 </p><p> saomiao: lcall kongzhi; 《不斷地對鍵盤進(jìn)行掃描》</p><p> sjmp saomiao</p><p><b> 3.3 按鍵程序</b></p><p> 本次設(shè)計(jì)中適用的是獨(dú)
34、立式鍵盤,首先需要輸入選通的列信號,然后讀出行信號,通過兩者的結(jié)果,計(jì)算出是哪個(gè)按鍵被按下,并轉(zhuǎn)入相應(yīng)的按鍵子程序。</p><p><b> TestKey:</b></p><p> mov dptr, #OUTBIT</p><p> mov a, #0</p><p> movx @dptr,
35、a</p><p> mov dptr, #IN</p><p> movx a, @dptr</p><p><b> cpl a</b></p><p> anl a, #0fh</p><p><b> ret</b></p>&l
36、t;p> KeyTable: </p><p> db 16h, 15h, 14h, 0ffh</p><p> db 13h, 12h, 11h, 10h</p><p> db 0dh, 0ch, 0bh, 0ah</p><p> db 0eh, 03h,
37、06h, 09h</p><p> db 0fh, 02h, 05h, 08h</p><p> db 00h, 01h, 04h, 07h</p><p><b> GetKey:</b></p><p> mov dptr, #OUTBIT</p><p> mov
38、 P2, dph</p><p> mov r0, #Low(IN)</p><p> mov r1, #00100000b</p><p> mov r2, #6</p><p><b> KLoop:</b></p><p> mov a, r1</p>
39、<p><b> cpl a</b></p><p> movx @dptr, a</p><p><b> cpl a</b></p><p><b> rr a</b></p><p> mov r1, a</p>
40、<p> movx a, @r0</p><p><b> cpl a</b></p><p> anl a, #0fh</p><p> jnz Goon1</p><p> djnz r2, KLoop</p><p> mov r2, #0ffh&l
41、t;/p><p> sjmp Exit</p><p><b> Goon1:</b></p><p> mov r1, a</p><p> mov a, r2</p><p><b> dec a</b></p><p><
42、;b> rl a</b></p><p><b> rl a</b></p><p> mov r2, a </p><p> mov a, r1</p><p> mov r1, #4</p><p><b> LoopC:<
43、/b></p><p><b> rrc a</b></p><p> jc Exit</p><p><b> inc r2</b></p><p> djnz r1, LoopC</p><p><b> Exit:</b&
44、gt;</p><p> mov dptr, #OUTBIT</p><p><b> clr a</b></p><p> movx @dptr, a</p><p> mov a, r2</p><p> mov dptr, #KeyTable</p>
45、<p> movc a, @a+dptr</p><p><b> ret</b></p><p><b> kongzhi:</b></p><p><b> MLoop:</b></p><p> call TestKey</p>&l
46、t;p> jz fanhui</p><p> call GetKey</p><p> mov p1,#0ffh</p><p> cjne a,#1,aloop1</p><p> lcall anjian1</p><p> ljmp fanhui</p><p>
47、 aloop1: cjne a,#2,aloop2</p><p> lcall anjian2</p><p> ljmp fanhui</p><p> aloop2: cjne a,#3,aloop3</p><p> lcall anjian3</p><p> ljmp fanhui</p&g
48、t;<p> aloop3: cjne a,#4,aloop4</p><p> lcall anjian4</p><p> ljmp fanhui</p><p> aloop4: cjne a,#5,aloop5</p><p> lcall anjian5</p><p> ljmp
49、fanhui</p><p> aloop5: cjne a,#6,MLoop</p><p> lcall anjian6</p><p> fanhui: ret</p><p> anjian1: ljmp zhengzhuan</p><p> ret </p>
50、;<p> anjian2: mov p1,#0h</p><p> ret </p><p><b> anjian3:</b></p><p> mov a,yanshi</p><p><b> mov a,#10</b></p&g
51、t;<p> mov yanshi,a</p><p> ret </p><p> anjian4: mov a,yanshi</p><p> mov a,#40h</p><p> MOV yanshi,a</p><p> ret <
52、/p><p> anjian5: ljmp zhengzhuan</p><p><b> ret</b></p><p> anjian6: ljmp fanzhuan</p><p><b> ret</b></p><p><b> 3.4 延遲程
53、序</b></p><p> 在每次輸出改變之后會調(diào)用一次延遲程序,所以延遲程序的長短決定了輸出信號變化的快慢,因此也就能夠?qū)Σ竭M(jìn)電機(jī)的速度快慢進(jìn)行控制,在這個(gè)延遲程序中,yanshi作為關(guān)鍵參量決定了本程序延遲時(shí)間的長短。在之前的anjian3也就是加速子程序中,對yanshi進(jìn)行的幅值操作,使延遲程序的延遲時(shí)間變短,輸出頻率變快,實(shí)現(xiàn)加速功能,在anjian4也就是減速子程序中,對yanshi進(jìn)
54、行的幅值操作,使延遲程序的延遲時(shí)間變長,輸出頻率變慢,實(shí)現(xiàn)減速功能。</p><p> delay: mov r6,yanshi</p><p><b> anjian3:</b></p><p> mov a,yanshi</p><p><b> mov a,#10</b></
55、p><p> mov yanshi,a</p><p> ret </p><p> 3.4 正轉(zhuǎn)反轉(zhuǎn)程序</p><p> 由上面的程序可以看到,當(dāng)按鍵1按下之后,對應(yīng)的按鍵子程序會根據(jù)標(biāo)志(位地址為50H的寄存器內(nèi)的值)來轉(zhuǎn)入zhengzhuan或者fanzhuan 程序,這兩個(gè)程序主要實(shí)現(xiàn)的功能是使P1口的
56、低四位依次輸出0001→0010→0100→1000→0001或者0001→1000</p><p> →0100→0010→0001并在每次改變輸出后掃描一次鍵盤來看是否有停止以及加減速的控制。P1口的低四位的輸出接到ULN2003AN后經(jīng)過放大實(shí)現(xiàn)相序的循環(huán)變化,驅(qū)動(dòng)步進(jìn)電機(jī)實(shí)現(xiàn)正轉(zhuǎn)或者反轉(zhuǎn)。</p><p> zhengzhuan</p><p> lo
57、opzheng: mov p1,#01H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov p1,#02H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov
58、 p1,#04H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov p1,#08H</p><p> lcall delay</p><p> lcall kongzhi</p><p> JMP loopzheng&l
59、t;/p><p> ret fanzhuan:</p><p> loopfan: mov p1,#01H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov p1,#08H</p><p> lcall delay<
60、;/p><p> lcall kongzhi</p><p> mov p1,#04H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov p1,#02H</p><p> lcall delay</p><
61、;p> lcall kongzhi</p><p> JMP loopfan</p><p><b> ret</b></p><p> 3.5 控制系統(tǒng)的總程序如下:</p><p> OUTBIT equ 08002h; 《給標(biāo)號幅初值》 </p><p
62、> IN equ 08001h</p><p> yanshi equ 20h</p><p> org 0000h; 《定義程序的存儲位置》</p><p> ljmp main</p><p><b> org 0100h</b></
63、p><p> main: mov p1,#0h; 《對P1口的低四位進(jìn)行清零操作》</p><p> mov sp, #70h;</p><p> loop: mov tmod,#10h</p><p> mov yanshi,#20h; 《對延時(shí)幅初值》 </p><p&g
64、t; saomiao: lcall kongzhi; 《不斷地對鍵盤進(jìn)行掃描》</p><p> sjmp saomiao</p><p> delay: mov r6,yanshi 《設(shè)置兩相之間的間隔》</p><p><b> TestKey:</b></p><p&
65、gt; mov dptr, #OUTBIT</p><p> mov a, #0</p><p> movx @dptr, a</p><p> mov dptr, #IN</p><p> movx a, @dptr</p><p><b> cpl a</b>&
66、lt;/p><p> anl a, #0fh</p><p><b> ret</b></p><p> KeyTable: ; 《鍵盤陣列》</p><p> db 16h, 15h, 14h, 0ffh</p><p> db
67、13h, 12h, 11h, 10h</p><p> db 0dh, 0ch, 0bh, 0ah</p><p> db 0eh, 03h, 06h, 09h</p><p> db 0fh, 02h, 05h, 08h</p><p> db 00h, 01h, 04h, 07h</p>&l
68、t;p><b> GetKey:</b></p><p> mov dptr, #OUTBIT</p><p> mov P2, dph</p><p> mov r0, #Low(IN)</p><p> mov r1, #00100000b </p>
69、<p> mov r2, #6 </p><p><b> KLoop:</b></p><p> mov a, r1</p><p><b> cpl a</b></p><p> movx @dptr, a</p><p
70、><b> cpl a</b></p><p><b> rr a</b></p><p> mov r1, a</p><p> movx a, @r0</p><p><b> cpl a</b></p><p>
71、 anl a, #0fh</p><p> jnz Goon1</p><p> djnz r2, KLoop</p><p> mov r2, #0ffh</p><p> sjmp Exit</p><p><b> Goon1:</b></p>&l
72、t;p> mov r1, a</p><p> mov a, r2</p><p><b> dec a</b></p><p><b> rl a</b></p><p><b> rl a</b></p><p&g
73、t; mov r2, a </p><p> mov a, r1</p><p> mov r1, #4</p><p><b> LoopC:</b></p><p><b> rrc a</b></p><p> jc Exit</
74、p><p><b> inc r2</b></p><p> djnz r1, LoopC</p><p><b> Exit:</b></p><p> mov dptr, #OUTBIT</p><p><b> clr a</b>
75、;</p><p> movx @dptr, a</p><p> mov a, r2</p><p> mov dptr, #KeyTable</p><p> movc a, @a+dptr</p><p><b> ret</b></p><p>
76、;<b> kongzhi:</b></p><p><b> MLoop:</b></p><p> call TestKey</p><p> jz fanhui</p><p> call GetKey</p><p> mov p1,#0ffh<
77、/p><p> cjne a,#1,aloop1</p><p> lcall anjian1</p><p> ljmp fanhui</p><p> aloop1: cjne a,#2,aloop2</p><p> lcall anjian2</p><p> ljmp fanh
78、ui</p><p> aloop2: cjne a,#3,aloop3</p><p> lcall anjian3</p><p> ljmp fanhui</p><p> aloop3: cjne a,#4,aloop4</p><p> lcall anjian4</p><p&
79、gt; ljmp fanhui</p><p> aloop4: cjne a,#5,aloop5</p><p> lcall anjian5</p><p> ljmp fanhui</p><p> aloop5: cjne a,#6,MLoop</p><p> lcall anjian6</
80、p><p> fanhui: ret</p><p> anjian1: mov a,50h</p><p> jz zhengzhuan</p><p> ljmp fanzhuan</p><p> ret </p><p> anjia
81、n2: mov p1,#0h</p><p> ret </p><p> anjian3: mov a,yanshi</p><p><b> mov a,#10</b></p><p> mov yanshi,a</p><p> ret
82、 </p><p> anjian4: mov a,yanshi</p><p> mov a,#40h</p><p> mov yanshi,a</p><p> ret </p><p> anjian5: ljmp zhengzhuan</p><p>
83、 ret </p><p> anjian6: ljmp fanzhuan</p><p><b> ret</b></p><p> zhengzhuan:</p><p> loopzheng: mov p1,#01H</p><p> lcall delay&
84、lt;/p><p> lcall kongzhi</p><p> mov p1,#02H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov p1,#04H</p><p> lcall delay</p>&
85、lt;p> lcall kongzhi</p><p> mov p1,#08H</p><p> lcall delay</p><p> lcall kongzhi</p><p> JMP loopzheng</p><p><b> ret</b></p>
86、<p><b> fanzhuan:</b></p><p> loopfan: mov p1,#01H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov p1,#08H</p><p> lcall dela
87、y</p><p> lcall kongzhi</p><p> mov p1,#04H</p><p> lcall delay</p><p> lcall kongzhi</p><p> mov p1,#02H</p><p> lcall delay</p>
88、<p> lcall kongzhi</p><p> JMP loopfan</p><p><b> ret</b></p><p><b> 第四章 心得體會</b></p><p> 在本次課程設(shè)計(jì)中,我首次接觸到單片機(jī)的應(yīng)用,接到題目時(shí),我對步進(jìn)電機(jī)一無所知,并對如
89、何使用單片機(jī)也不甚了解,僅僅知道一些生硬的指令和符號,并不知道它們到底如何使用以及其意義,通過老師指導(dǎo),然后自己在課后翻閱書籍和上網(wǎng),搜集到了不少有關(guān)步進(jìn)電動(dòng)機(jī)的知識。通過鉆研這些知識,我總算對步進(jìn)電機(jī)有了認(rèn)識,但是這離課程設(shè)計(jì)需要掌握的知識相差甚遠(yuǎn),為了縮短這種差距,我只能不斷地查閱資料,仔細(xì)揣摩。在這次課程設(shè)計(jì)中,通過用單片機(jī)控制步進(jìn)電機(jī)的起動(dòng)、停止,正、反轉(zhuǎn),加、減速,我也對單片機(jī)的知識也進(jìn)行了復(fù)習(xí)和鞏固。那時(shí)候覺得學(xué)習(xí)單片機(jī)是那
90、么的枯燥乏味,整天只是學(xué)習(xí)這個(gè)指令做什么,那個(gè)指令做什么,覺得學(xué)了一點(diǎn)用都沒有?,F(xiàn)在知道,原來一些生硬的指令組合起來竟然可以實(shí)現(xiàn)如此多的實(shí)用功能。俗話說的好,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),學(xué)習(xí)再多的理論也只能紙上談兵,只有把理論應(yīng)用到實(shí)踐中,才能檢驗(yàn)出理論的真?zhèn)?。所以,雖然一周的時(shí)間不長,時(shí)間過得也很快,但是在這一周過去后,我明白了學(xué)習(xí)與實(shí)踐相結(jié)合的重要性,指引我在以后的學(xué)習(xí)中應(yīng)該把理論和實(shí)踐聯(lián)系起來。</p><p&g
91、t;<b> 參考文獻(xiàn)</b></p><p> 1:單片微型計(jì)算機(jī)接口技術(shù)及應(yīng)用 張淑清 國防工業(yè)出版社</p><p> 2:單片機(jī)原理及應(yīng)用技術(shù) 張淑清 國防工業(yè)出版社</p><p> 3:單片機(jī)應(yīng)用技術(shù)匯編</p><p><b> 課程設(shè)計(jì)評審意見表</b></
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)-控制步進(jìn)電機(jī)課程設(shè)計(jì)
- 基于單片機(jī)的步進(jìn)電機(jī)控制單片機(jī)課程設(shè)計(jì)
- 基于單片機(jī)的步進(jìn)電機(jī)控制課程設(shè)計(jì)
- 基于單片機(jī)的步進(jìn)電機(jī)控制課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)報(bào)告——單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)步進(jìn)電機(jī)控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的四相步進(jìn)電機(jī)控制
- 基于51單片機(jī)的步進(jìn)電機(jī)控制課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)角度控制
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制 (2)
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——單片機(jī)控制步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
評論
0/150
提交評論