版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)</p><p> ——基于Intel 8086 CPU的步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與驗(yàn)證</p><p> 摘要:由于用步進(jìn)電機(jī)組成的開環(huán)控制系統(tǒng)既簡(jiǎn)單、廉價(jià)、又性能可靠,因此在各種運(yùn)動(dòng)控制裝置特別是在機(jī)電一體化設(shè)備中有著極其廣泛的應(yīng)用。</p><p> 本文介紹的是一種基于8086CPU的步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)
2、,通過8086CPU、可編程并行I/O芯片8255A、步進(jìn)電機(jī)驅(qū)動(dòng)芯片ULN2003A以及相應(yīng)的輔助芯片和開關(guān),用匯編語言編寫了電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、停止程序,實(shí)現(xiàn)了步進(jìn)電機(jī)的控制功能。并最終在Proteus 7.8 SP2中進(jìn)行了芯片的繪制連接和系統(tǒng)的仿真驗(yàn)證,取得了良好的實(shí)驗(yàn)效果。</p><p> 關(guān)鍵詞:步進(jìn)電機(jī);8086CPU;Proteus仿真;匯編編程</p><p&g
3、t;<b> 目 錄</b></p><p> 第一章 選題分析,問題描述與設(shè)計(jì)要求-------------------------------------------04</p><p> 第二章 問題分析與方案設(shè)計(jì)----------------------------------------------------------</p>
4、;<p> 第三章 硬件線路設(shè)計(jì)-------------------------------------------------------------------</p><p> 第四章 程序流程圖----------------------------------------------------------------------</p><p> 第五
5、章 匯編源碼-------------------------------------------------------------------------</p><p> 第六章 經(jīng)驗(yàn)與教訓(xùn)----------------------------------------------------------------------</p><p> 第七章 參考資料-----
6、-------------------------------------------------------------------- </p><p><b> 第一章</b></p><p><b> 1. 選題分析:</b></p><p> 課程設(shè)計(jì)題目分別列出如下:</p>&l
7、t;p> a. 模擬交通燈控制 b. 步進(jìn)電機(jī)控制c. 模擬鋼琴</p><p> d. 數(shù)字時(shí)鐘 e. 計(jì)時(shí)器 f. 搶答器 g. 自擬選題</p><p> 通過比較分析發(fā)現(xiàn),6個(gè)已知題目都是通過按鍵/開關(guān)來手動(dòng)產(chǎn)生一個(gè)信號(hào),通過查詢方式或中斷方式將信號(hào)提交給CPU,并調(diào)用對(duì)應(yīng)的處理子程序,以驅(qū)動(dòng)相應(yīng)的外設(shè),比如LED燈,
8、步進(jìn)電機(jī),蜂鳴器,或是7段數(shù)碼管,進(jìn)而達(dá)到整個(gè)系統(tǒng)控制的目的。</p><p> 中間可能會(huì)牽涉到的可編程芯片有,可編程中斷控制器8259A,可編程并行接口芯片8255A,可編程定時(shí)器/計(jì)數(shù)器8253,當(dāng)然最后都要用到8086CPU。</p><p> 再比較6個(gè)題目中,驅(qū)動(dòng)外設(shè)的復(fù)雜程度要數(shù)步進(jìn)電機(jī)最高;當(dāng)然模擬鋼琴要驅(qū)動(dòng)的是蜂鳴器,需要通過8253芯片的out端口來產(chǎn)生不同的頻率信
9、號(hào),而數(shù)字時(shí)鐘題目和計(jì)時(shí)器題目都需要8253芯片來實(shí)現(xiàn)計(jì)數(shù)與定時(shí)功能,算是對(duì)8253芯片的基本應(yīng)用。搶答器的設(shè)計(jì)稍顯簡(jiǎn)單一點(diǎn),驅(qū)動(dòng)的是7段數(shù)碼管,而模擬交通燈控制驅(qū)動(dòng)的也是數(shù)碼管,如果要是顯示剩余時(shí)間的話應(yīng)再加上8253芯片稍顯復(fù)雜一點(diǎn)。</p><p> 總之通過概括可以看出6個(gè)題目各有側(cè)重點(diǎn),最終我們小組選中了步進(jìn)電機(jī)控制題目,因?yàn)槭紫瓤紤]到步進(jìn)電機(jī)控制的是運(yùn)動(dòng)執(zhí)行機(jī)構(gòu),在機(jī)電一體化技術(shù)中顯得很是重要;再加
10、上它的硬件系統(tǒng)連線只需要一片8255A即可,你不是很復(fù)雜;另外一個(gè)很明顯的原因是選擇這個(gè)題目的人會(huì)很少(這在提交方案時(shí)得到了印證)。</p><p><b> 2. 設(shè)計(jì)目的:</b></p><p> 1. 了解步進(jìn)電機(jī)控制的基本原理,掌握控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的編程方法。</p><p> 2. 進(jìn)一步熟練掌握8255A并行I/O口的工作方
11、式以及編程方法。</p><p> 3. 體會(huì)系統(tǒng)整體設(shè)計(jì)的流程與方法,為以后系統(tǒng)級(jí)設(shè)計(jì)積累經(jīng)驗(yàn)。</p><p><b> 3. 功能要求:</b></p><p> 01. 通過開關(guān)K1實(shí)現(xiàn)步進(jìn)電機(jī)的開始與停止;</p><p> 02. 通過開關(guān)K2來選擇步進(jìn)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn);</p><
12、;p> 03. 通過開關(guān)K3,K4組成(2-4譯碼)四檔電機(jī)轉(zhuǎn)速選擇;</p><p> 04. 對(duì)每只開關(guān)的選擇情況同時(shí)通過4位8段數(shù)碼管來顯示;</p><p> 05. 擴(kuò)展設(shè)計(jì):可以在以上功能基礎(chǔ)上,增加控制步進(jìn)電機(jī)單步轉(zhuǎn)動(dòng)的開關(guān);增加控制電機(jī)加速轉(zhuǎn)動(dòng)的開關(guān);增加控制電機(jī)減速的開關(guān)。</p><p><b> 問題分析:</b&
13、gt;</p><p><b> 驗(yàn)證方法:</b></p><p><b> 設(shè)計(jì)方案</b></p><p> 01. 使用的芯片與部件:</p><p><b> 8086 CPU:</b></p><p> 現(xiàn)將8086的引腳圖和各引腳
14、功能列出如下,其他具體內(nèi)容詳見《微機(jī)原理及接口技術(shù)》教材</p><p> 8086CPU的40條引腳信號(hào)可按功能分可分為四類,它們是:地址總線,數(shù)據(jù)總線,控制總線,其它(時(shí)鐘與電源)。 </p><p> 在最小模式下各引腳功能(MN/MX接+5V):</p><p> ?、?AD15~AD0,地址/數(shù)據(jù)總線 </p><p> ?、?
15、A19/S6~A16/S3,地址/狀態(tài)總線 </p><p> ?、?BHE/ S7,高8位數(shù)據(jù)允許/狀態(tài)線 </p><p> ?、躆N/MX,最小/最大模式控制信號(hào),輸入 </p><p><b> ?、軷D,讀信號(hào) </b></p><p><b> ?、轜R,寫信號(hào) </b></p&g
16、t;<p> ⑦M(jìn)/IO,存儲(chǔ)器/輸入輸出控制信號(hào)</p><p> ?、郃LE,地址鎖存允許信號(hào)</p><p> ?、酭EADY(Ready),準(zhǔn)備就緒信號(hào)</p><p> ?、釯NTR,可屏蔽中斷請(qǐng)求信號(hào)</p><p> ?INTA,中斷響應(yīng)信號(hào) </p><p> ?NMI,非屏蔽中斷請(qǐng)
17、求信號(hào)</p><p> ?RESET,系統(tǒng)復(fù)位信號(hào) </p><p> ?DEN,數(shù)據(jù)允許信號(hào) </p><p> ?DT/R,數(shù)據(jù)發(fā)送/接收控制信號(hào)</p><p> ?HOLD,總線保持請(qǐng)求信號(hào)輸入 </p><p> ?HLDA,總線保持響應(yīng)信號(hào) </p><p> ?TES
18、T,測(cè)試信號(hào) </p><p> ?CLK,時(shí)鐘輸入信號(hào) </p><p> ?VCC(+5V),GND </p><p> 8255A:8255是可編程并行I/O接口芯片,有3個(gè)8位并行I/O口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。</p><p><b>
19、 其引腳圖為:</b></p><p> 74LS273:74LS273是一種帶清除功能的8D觸發(fā)器, 1D~8D為數(shù)據(jù)輸入端,1Q~8Q為數(shù)據(jù)輸出端,正脈沖觸發(fā),低電平清除,常用作8位地址鎖存器。</p><p> 74LS138:74LS138為3線-8線譯碼器,其真值表和引腳圖為:</p><p><b> 引出端口號(hào):</
20、b></p><p> B、C 譯碼地址輸入端</p><p> G1 選通端</p><p> /(G2A)、/(G2B) 選通端(低電平有效)</p><p> Y0~Y7 譯碼輸出端(低電平有效)</p><p> ULN2003A:
21、ULN2003A是高壓大電流達(dá)林頓晶體管陣列,由功率電路來擴(kuò)展輸出電流以滿足被控元件的電流,電壓。具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)。ULN2003A芯片主要用于如下領(lǐng)域:伺服電機(jī),步進(jìn)電機(jī),電磁閥,可控照明燈。</p><p><b> 步進(jìn)電機(jī):</b></p><p><b> 步進(jìn)電機(jī)概
22、述:</b></p><p> 步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號(hào),電機(jī)則轉(zhuǎn)過一個(gè)步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn)。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡(jiǎn)單。</p><p>
23、正常情況下,步進(jìn)電機(jī)轉(zhuǎn)過的總角度和輸入的脈沖數(shù)成正比;連續(xù)輸入一定頻率的脈沖時(shí),電動(dòng)機(jī)的轉(zhuǎn)速與輸入脈沖的頻率保持嚴(yán)格的對(duì)應(yīng)關(guān)系,不受電壓波動(dòng)和負(fù)載變化的影響。由于步進(jìn)電動(dòng)機(jī)能直接接收數(shù)字量的輸入,所以特別適合于微機(jī)控制。</p><p> 本次課程設(shè)計(jì)采用的是四相八拍步進(jìn)電機(jī)。</p><p> 步進(jìn)電機(jī)的基本參數(shù): </p><p> (一)步進(jìn)電機(jī)的靜態(tài)
24、指標(biāo)術(shù)語</p><p> 1、相數(shù):產(chǎn)生不同對(duì)N、S磁場(chǎng)的激磁線圈對(duì)數(shù)。常用m表示。</p><p> 2、拍數(shù):完成一個(gè)磁場(chǎng)周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài)用n表示,或指電機(jī)轉(zhuǎn)過一個(gè)齒距角所需脈沖數(shù),以四相電機(jī)為例,有四相四拍運(yùn)行方式即AB-BC-CD-DA-AB,四相八拍運(yùn)行方式即 A-AB-B-BC-C-CD-D-DA-A.</p><p>
25、3、步距角:對(duì)應(yīng)一個(gè)脈沖信號(hào),電機(jī)轉(zhuǎn)子轉(zhuǎn)過的角位移用θ表示。θ=360度(轉(zhuǎn)子齒數(shù)*運(yùn)行拍數(shù)),以常規(guī)二、四相,轉(zhuǎn)子齒為50齒電機(jī)為例。四拍運(yùn)行時(shí)步距角為θ=360度/(50*4)=1.8度(俗稱整步),八拍運(yùn)行時(shí)步距角為θ=360度/(50*8)=0.9度(俗稱半步)。</p><p> 4、定位轉(zhuǎn)矩:電機(jī)在不通電狀態(tài)下,電機(jī)轉(zhuǎn)子自身的鎖定力矩(由磁場(chǎng)齒形的諧波以及機(jī)械誤差造成的)</p>&l
26、t;p> 5、靜轉(zhuǎn)矩:電機(jī)在額定靜態(tài)電作用下,電機(jī)不作旋轉(zhuǎn)運(yùn)動(dòng)時(shí),電機(jī)轉(zhuǎn)軸的鎖定力矩。此力矩是衡量電機(jī)體積(幾何尺寸)的標(biāo)準(zhǔn),與驅(qū)動(dòng)電壓及驅(qū)動(dòng)電源等無關(guān)。</p><p> 雖然靜轉(zhuǎn)矩與電磁激磁安匝數(shù)成正比,與定齒轉(zhuǎn)子間的氣隙有關(guān),但過份采用減小氣隙,增加激磁安匝來提高靜力矩是不可取的,這樣會(huì)造成電機(jī)的發(fā)熱及機(jī)械噪音。</p><p><b> 電機(jī)正反轉(zhuǎn)控制:<
27、;/b></p><p> 當(dāng)電機(jī)繞組通電時(shí)序?yàn)锳-AB-B-BC-C-CD-D-DA時(shí)為正轉(zhuǎn),通電時(shí)序?yàn)镈A-D-CD-C-BC-B-AB-A時(shí)為反轉(zhuǎn)。</p><p> 步進(jìn)電機(jī)的工作原理:</p><p> 步進(jìn)電機(jī)的工作就是步進(jìn)轉(zhuǎn)動(dòng),其功用是將脈沖電信號(hào)變換為相應(yīng)的角位移或是直線位移,就是給一個(gè)脈沖信號(hào),電動(dòng)機(jī)轉(zhuǎn)動(dòng)一個(gè)角度或是前進(jìn)一步。步進(jìn)電機(jī)的
28、角位移量與脈沖數(shù)成正比,它的轉(zhuǎn)速與脈沖頻率(f)成正比,在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號(hào),電機(jī)則轉(zhuǎn)過一個(gè)步距角。</p><p> 如下所示的步進(jìn)電機(jī)為一四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。圖1是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖。</p><
29、;p> 圖2-1 四相步進(jìn)電機(jī)步進(jìn)示意圖</p><p> 開始時(shí),開關(guān)SB接通電源,SA、SC、SD斷開,B相磁極和轉(zhuǎn)子0、3號(hào)齒對(duì)齊,同時(shí),轉(zhuǎn)子的1、4號(hào)齒就和C、D相繞組磁極產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和D、A相繞組磁極產(chǎn)生錯(cuò)齒。</p><p> 當(dāng)開關(guān)SC接通電源,SB、SA、SD斷開時(shí),由于C相繞組的磁力線和1、4號(hào)齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動(dòng),1、4號(hào)齒和C
30、相繞組的磁極對(duì)齊。而0、3號(hào)齒和A、B相繞組產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和A、D相繞組磁極產(chǎn)生錯(cuò)齒。依次類推,A、B、C、D</p><p> 四相繞組輪流供電,則轉(zhuǎn)子會(huì)沿著A、B、C、D方向轉(zhuǎn)動(dòng)。</p><p> 單四拍、雙四拍與八拍工作方式的電源通電時(shí)序與波形分別如圖2-2所示:</p><p> 圖2-2 步進(jìn)電機(jī)工作時(shí)序波形圖</p><
31、;p> 如表3.1所示,首先使HA線圈和HB線圈有驅(qū)動(dòng)電流,接著使HB和HC、HC和HD、HD和HA,又返回到HA和HB有驅(qū)動(dòng)電流,按這種順序切換,電機(jī)軸按順時(shí)針方向旋轉(zhuǎn)。</p><p> 表3.1 步進(jìn)電機(jī)激磁方式</p><p> 第三章 硬件線路設(shè)計(jì)</p><p><b> 程序流程圖</b></p>
32、;<p><b> 第五章 源程序代碼</b></p><p> IOY0 EQU 0C400H ;片選IOY0對(duì)應(yīng)的端口起始地址</p><p> MY8255_A EQU IOY0+00H*4 ;8255的A口地址</p><p> MY8255_B EQU IOY
33、0+01H*4 ;8255的B口地址</p><p> MY8255_C EQU IOY0+02H*4 ;8255的C口地址</p><p> MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址</p><p> STACK1 SEGMENT STACK</p><p&g
34、t; DW 256 DUP(?)</p><p> STACK1 ENDS</p><p> DATA SEGMENT</p><p> DTABLE1 DB 6DH,79H,73H,77H,39H,06H,5BH,4FH,66H,40H</p><p> DTABLE3 DB 10
35、H,30H,20H,60H,40H,0C0H,80H,90H</p><p> DTABLE4 DB 90H,80H,0C0H,40H,60H,20H,30H,10H</p><p> DATA ENDS</p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DAT
36、A</p><p> START: MOV AX,DATA</p><p> MOV DS,AX</p><p> MOV SI,3000H</p><p> MOV [SI],00H</p><p> MOV [SI+2],09H</p&g
37、t;<p> MOV [SI+4],03H</p><p> MOV [SI+6],05H</p><p> MOV [SI+8],01H</p><p> MOV DX,MY8255_MODE ;初始化8255工作方式</p><p> MOV
38、 AL,81H ;方式0,A輸出、B口輸出,C口低四位輸入,高四位輸出</p><p> OUT DX,AL</p><p> QIDONG: ;CALL CLEAR</p><p> ;CALL DIS</p><p> MOV DX,MY8255_C</p>
39、<p> IN AL,DX</p><p> TEST AL,01H</p><p> JNZ STOP;測(cè)試C口的PC0是否為0;若不為0則跳到STOP代碼段;否則繼續(xù)執(zhí)行下面代碼</p><p> SPEED: MOV [SI],01H</p><p> C
40、MP [SI+8],08H</p><p> JZ ZHI;若3008H單元的值等于08H,則跳到ZHI代碼段;否則的話,向下繼續(xù)執(zhí)行</p><p> MOV BX,[SI+8]</p><p> DEC BX</p><p> MOV DX,MY8255_C<
41、;/p><p> IN AL,DX</p><p> TEST AL,02H;測(cè)試PC1口的是否為1,若為0則跳轉(zhuǎn)到SHUN代碼段(順時(shí)針旋轉(zhuǎn))</p><p> JZ SHUN</p><p> NI: MOV [SI+4],03H</p><p> MO
42、V AL,DTABLE4[BX]</p><p> PUSH AX</p><p> JMP ZHUANG;逆時(shí)針轉(zhuǎn)動(dòng)片段 </p><p> SHUN: MOV [SI+4],04H</p><p> MOV AL,DTABLE3[BX]</p><
43、;p> PUSH AX;順時(shí)針轉(zhuǎn)動(dòng)片段</p><p> ZHUANG: MOV DX,MY8255_C</p><p> IN AL,DX</p><p> TEST AL,0CH</p><p> JZ DANG3</p><p>
44、 TEST AL,04H </p><p> JZ DANG2 </p><p> TEST AL,08H</p><p> JZ DANG4</p><p> DANG1:POP AX</p><p> MOV DX,MY8255_C
45、</p><p> OUT DX,AL</p><p> INC BX</p><p> INC BX</p><p> MOV [SI+8],BX</p><p> MOV [SI+6],05H</p><p> CALL
46、 DALLY</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p>&l
47、t;p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1
48、</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> JMP SPEED</p><p> DANG2:POP AX</p><p> M
49、OV DX,MY8255_C</p><p> OUT DX,AL</p><p> INC BX</p><p> INC BX</p><p> MOV [SI+8],BX</p><p> MOV [SI+6],06H</p&
50、gt;<p> CALL DALLY</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL
51、DALLY1</p><p> CALL DALLY1</p><p> JMP SPEED</p><p> DANG3:POP AX</p><p> MOV DX,MY8255_C</p><p> OUT DX,AL</p>&l
52、t;p> INC BX</p><p> INC BX</p><p> MOV [SI+8],BX</p><p> MOV [SI+6],07H</p><p> CALL DALLY</p><p> CALL DALLY1&l
53、t;/p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> JMP SPEED </p><p> DANG4:POP AX</p><p> MOV DX,MY8255_C</p><p&g
54、t; OUT DX,AL</p><p> INC BX</p><p> INC BX</p><p> MOV [SI+8],BX</p><p> MOV [SI+6],08H</p><p> CALL DALLY</p&g
55、t;<p> JMP SPEED </p><p> ZHI: MOV [SI+8],01H</p><p> JMP QIDONG</p><p> STOP: MOV [SI],00H</p><p> MOV
56、 [SI+4],03H</p><p> MOV [SI+6],05H</p><p> CALL CLEAR</p><p> CALL DIS</p><p> JMP QIDONG</p><p> DALLY PROC NEAR
57、 ;軟件延時(shí)子程序</p><p> CALL CLEAR</p><p> CALL DIS</p><p> PUSH CX</p><p> MOV CX,000FH</p><p> D1: MOV AX,000FH</p>&
58、lt;p> D2: DEC AX</p><p> JNZ D2</p><p> LOOP D1</p><p> POP CX</p><p><b> RET</b></p><p> DALLY ENDP</p>
59、;<p> CLEAR PROC NEAR ;清除數(shù)碼管顯示子程序</p><p> MOV DX,MY8255_B ;段位置0即可清除數(shù)碼管顯示</p><p> MOV AL,00H</p><p> OUT DX,AL</p><p><b>
60、 RET</b></p><p> CLEAR ENDP</p><p> DIS PROC NEAR ;顯示鍵值子程序</p><p> PUSH AX</p><p> PUSH SI</p><p> MOV SI,3006H&l
61、t;/p><p> MOV DL,0F7H</p><p> MOV AL,DL</p><p> AGAIN: PUSH DX</p><p> MOV DX,MY8255_A</p><p> OUT DX,AL ;設(shè)置X1~X4,選通一
62、個(gè)數(shù)碼管</p><p> MOV AL,[SI] ;取出緩沖區(qū)中存放鍵值</p><p> MOV BX,OFFSET DTABLE1</p><p> AND AX,00FFH</p><p> ADD BX,AX</p><p> MOV
63、 AL,[BX]</p><p> MOV DX,MY8255_B</p><p> OUT DX,AL ;寫入數(shù)碼管A~Dp</p><p> CALL DALLY1</p><p> DEC SI</p><p> DEC SI
64、 ;取下一個(gè)鍵值</p><p> POP DX</p><p> MOV AL,DL</p><p> TEST AL,01H ;判斷是否顯示完?</p><p> JZ OUT1 ;顯示完,返回</p><p> ROR
65、 AL,1</p><p> MOV DL,AL</p><p> JMP AGAIN ;未顯示完,跳回繼續(xù)</p><p> OUT1: POP SI</p><p> POP AX</p><p><b> RET</
66、b></p><p><b> DIS ENDP</b></p><p> DALLY1 PROC NEAR ;軟件延時(shí)子程序</p><p> PUSH CX</p><p> MOV CX,002FH</p><p> D3:
67、 MOV AX,002FH</p><p> D4: DEC AX</p><p> JNZ D4</p><p> LOOP D3</p><p> POP CX</p><p><b> RET</b></p>
68、<p> DALLY1 ENDP</p><p> CODE ENDS</p><p> END START</p><p> 第六章 經(jīng)驗(yàn)與教訓(xùn)</p><p> 先從整體上來說,我原本打算整個(gè)課程設(shè)計(jì)只需要3-4天即可完成,而實(shí)際的情況是用了將近12天還未完全實(shí)現(xiàn)設(shè)計(jì)要求,比如說,步進(jìn)電機(jī)的加速與減
69、速功能,用4位7段數(shù)碼管來顯示步進(jìn)電機(jī)的轉(zhuǎn)速,這些功能都在代碼實(shí)現(xiàn)時(shí)遇到了困難,而這也恰恰反應(yīng)了匯編語言學(xué)習(xí)的不足——練習(xí)太少,而見過的匯編源碼也同樣很少。舉個(gè)例子,有其他小組做的搶答器設(shè)計(jì),有十幾行的一段程序是通過ROR循環(huán)右移指令和LOOPNZ指令來達(dá)到依次測(cè)試每個(gè)搶答開關(guān)是否摁下,就是這樣一段簡(jiǎn)單的代碼,就看足足1個(gè)小時(shí),原因有兩點(diǎn),它的代碼中寫成了LOONZ指令,還有就是ROR,因?yàn)樗梢詫⒁瞥龅奈欢歼M(jìn)入CF以保存該位,以供后續(xù)
70、的程序測(cè)試。這些指令很是不熟悉,從這方面很是能夠反應(yīng)出一些問題。</p><p> 比如說我在網(wǎng)上查找他人的設(shè)計(jì)方案時(shí),基本上都是用51單片機(jī)來控制步進(jìn)電機(jī)的,當(dāng)然都是通過Proteus軟件仿真驗(yàn)證的,很少有基于8086芯片的,很偶然的搜索一份后,我發(fā)現(xiàn)我需要把整個(gè)系統(tǒng)硬件連線理解透徹,很是花了一番功夫。一開始我以為Proteus軟件不能做8086芯片的仿真,之前它都是用來仿真單片機(jī)的,而事實(shí)上它也確實(shí)是這樣,
71、8086芯片的仿真確實(shí)是這兩年才添加的,應(yīng)為做8086芯片的仿真需要一系列外圍芯片的支持,比如說:8259A可編程中斷控制器、8255A可編程并行接口芯片、D/A轉(zhuǎn)換器、A/D轉(zhuǎn)換器,8251A可編程異步通信接口芯片(這個(gè)在7.8版本中就沒有)可見拿這個(gè)完全取代實(shí)驗(yàn)箱還有一定的距離。當(dāng)然這次的課程設(shè)計(jì)我可以完全使用它,因?yàn)闆]有使用到8251A芯片。</p><p> 還有就是有很多輔助性芯片自己在以前根本就沒有
72、關(guān)注過,直到這次課程設(shè)計(jì),我才認(rèn)認(rèn)真真的查找了74系列芯片資料比如74LS273、74LS138,因?yàn)槲以谶@次系統(tǒng)的硬件設(shè)計(jì)部分遇到了困難,因?yàn)橹暗?包括上學(xué)期的組成原理和這學(xué)期的接口技術(shù),用到的實(shí)驗(yàn)箱都是人家事先連好并預(yù)留出的,在實(shí)驗(yàn)時(shí)有都是按照實(shí)驗(yàn)手冊(cè)上的電路圖去連線的,幾乎從來不去思考為什么要這樣連接,這些芯片的內(nèi)部結(jié)構(gòu)是怎樣的,除了這個(gè)型號(hào)的芯片,其他型號(hào)的芯片是否也能實(shí)現(xiàn)相應(yīng)的功能,它們兩者之間又有何異同和優(yōu)缺點(diǎn),等等這一系
73、列的問題在硬件的設(shè)計(jì)時(shí)都讓我給碰到了,我不知道是我的幸運(yùn)還是不幸)這些問題讓我認(rèn)識(shí)到在現(xiàn)有實(shí)驗(yàn)箱上不管是進(jìn)行實(shí)驗(yàn)的驗(yàn)證還是教學(xué),都存在很大的缺陷,更不用提系統(tǒng)的設(shè)計(jì)了。</p><p> 概括來說,芯片了解太少,匯編編程很不熟練,驗(yàn)證方法有缺陷,方案的整體設(shè)計(jì)把控很不足</p><p> 學(xué)習(xí)的內(nèi)容:初步理解掌握了在Proteus軟件中進(jìn)行硬件仿真的步驟及方法,了解了Proteus軟件
74、芯片庫(kù)的構(gòu)成體系,對(duì)芯片的選取不再過于盲目,理解并掌握了8255A芯片編程方法,了解了嵌入式系統(tǒng)設(shè)計(jì)的一般步驟與方法</p><p><b> 第七章 參考資料</b></p><p> 01. 《微機(jī)原理及接口技術(shù)》(從中可以查找詳細(xì)的8086CPU、8255A芯片功能及編程方法)——肖洪兵 主編</p><p> 02. 步進(jìn)電機(jī)控
75、制方面的資料(包括原理,控制方法等)——源自網(wǎng)絡(luò)</p><p> 03. 74系列芯片功能手冊(cè)(包括74LS273、74LS138)——源自網(wǎng)絡(luò)</p><p> 04. ULN2000系列芯片手冊(cè)(包括ULN2003A)——源自網(wǎng)絡(luò)</p><p> 05. Proteus 7.8 SP2 用戶手冊(cè)(用于查找是否包含實(shí)驗(yàn)所用芯片,以及芯片連線方式)<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于8086的步進(jìn)電機(jī)控制課程設(shè)計(jì)
- 步進(jìn)電機(jī)課程設(shè)計(jì)--- 步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)
- 步進(jìn)電機(jī)課程設(shè)計(jì)報(bào)告---步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)課程設(shè)計(jì)報(bào)告--步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 步進(jìn)電機(jī)控制系統(tǒng)課程設(shè)計(jì)
- 步進(jìn)電機(jī)專業(yè)課程設(shè)計(jì)--步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)-步進(jìn)電機(jī)控制步進(jìn)電機(jī)轉(zhuǎn)速實(shí)時(shí)控制
- 課程設(shè)計(jì)-- 微機(jī)步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 步進(jìn)電機(jī)的設(shè)計(jì)與控制課程設(shè)計(jì)
- 課程設(shè)計(jì)----二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)
- 課程設(shè)計(jì)---步進(jìn)電機(jī)控制
- 微機(jī)原理課程設(shè)計(jì)--步進(jìn)電機(jī)控制系統(tǒng)
- 基于plc的步進(jìn)電機(jī)控制課程設(shè)計(jì)
- 微機(jī)控制技術(shù)課程設(shè)計(jì)---步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 基于arm的步進(jìn)電機(jī)控制課程設(shè)計(jì)
- 基于arm的步進(jìn)電機(jī)控制課程設(shè)計(jì)
- 步進(jìn)電機(jī)的控制課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論