版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 微機(jī)應(yīng)用系統(tǒng)設(shè)計與綜合實驗設(shè)計報告</p><p> 設(shè)計題目 小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計 </p><p> 指導(dǎo)老師 </p><p> 設(shè)計者 </p><p> 專業(yè)班級
2、 </p><p> 學(xué) 號 </p><p> 設(shè)計日期 </p><p><b> 目錄</b></p><p> 摘要…………….……………
3、……………………………...…...3</p><p> 課程設(shè)計目的……………………………………….....…...4</p><p> 設(shè)計題目名稱及要求……………………………….....…….4</p><p> 實驗設(shè)備…………………………………………...…..…….4</p><p> 設(shè)計的思想和實施方案……………………
4、………..….…….5</p><p> 硬件原理圖…………………………………………………….11</p><p> 典型程序模塊及典型編程技巧…………………….…....…13</p><p> 課程設(shè)計中遇到的問題及解決方法………………...………16</p><p> 程序流程圖………………………………………….…......1
5、9</p><p> 匯編程序清單及程序注釋…………………………..…..……..23</p><p> C語言程序清單及注釋………………………….……..…..…30</p><p> 收獲體會………………………………….………..……..…37</p><p> 參考文獻(xiàn)………………………………………..….…..……38<
6、/p><p><b> 摘 要</b></p><p> 在現(xiàn)代電子產(chǎn)品中,步進(jìn)電機(jī)廣泛應(yīng)用于ATM機(jī)、噴繪機(jī)、刻字機(jī)、寫真機(jī)、噴涂設(shè)備、醫(yī)療儀器及設(shè)備、計算機(jī)外設(shè)及海量存儲設(shè)備、精密儀器、工業(yè)控制系統(tǒng)、辦公自動化、機(jī)器人等領(lǐng)域。所以步進(jìn)電機(jī)的控制是一門很實用的技術(shù)。本實驗主要是基于唐都——PIT試驗箱的步進(jìn)電機(jī)控制的設(shè)計。主要使用到了并行接口電路8255、LED七段
7、數(shù)碼管電路、8086cpu、步進(jìn)電機(jī)等元件。主要是通過按鍵的不同來設(shè)置直流電機(jī)的轉(zhuǎn)速、運行狀態(tài)和方向。軟件部分采用了匯編語言編寫程序代碼和C語言編寫的步進(jìn)電機(jī)控制程序,通過判斷、跳轉(zhuǎn)、循環(huán)、延時等基本技術(shù)實現(xiàn)。</p><p> 此系統(tǒng)可以通過鍵盤輸入相關(guān)數(shù)據(jù), 并根據(jù)需要, 實時對步進(jìn)電機(jī)工作方式進(jìn)行設(shè)置, 具有實時性和交互性的特點。該設(shè)計可應(yīng)用于步進(jìn)電機(jī)控制的大多數(shù)場合</p><p&g
8、t; 關(guān)鍵詞: 步進(jìn)電動機(jī) 調(diào)速 方向控制 并行接口 七段數(shù)碼管</p><p> 小型步進(jìn)電機(jī)控制系統(tǒng)</p><p><b> 課程設(shè)計目的</b></p><p> 課程設(shè)計是本科教學(xué)全過程中的重要環(huán)節(jié)。《微機(jī)應(yīng)用系統(tǒng)設(shè)計與綜合實驗(實踐)》課程設(shè)計主要培養(yǎng)我們自動化專業(yè)學(xué)生,運用所學(xué)知識解決計算機(jī)應(yīng)用領(lǐng)域內(nèi)實際問題能力,進(jìn)
9、一步提高學(xué)生運用計算機(jī)編程語言綜合編程能力、程序調(diào)試技能和微機(jī)系統(tǒng)接口綜合應(yīng)用及電路設(shè)計能力。</p><p> 1、學(xué)習(xí)在PC系統(tǒng)中擴(kuò)展簡單的I/O接口的方法。</p><p> 2、熟練掌握和運用匯編和C語言編寫程序控制8255各口的輸入輸出,并正確帶動數(shù)碼管及步進(jìn)電機(jī);能熟練運用匯編和C語言實現(xiàn)8254的定時功能,以確保8255輸出的脈沖頻率穩(wěn)定。</p><
10、p> 3、熟練掌握ISA總線配置方式下硬件實驗的調(diào)試,并能獨立的排除故障,以確保實驗的順利進(jìn)行。</p><p> 4、.鞏固和加深課堂所學(xué)知識;</p><p> 5、學(xué)習(xí)掌握一般的軟硬件的設(shè)計方法和查閱、運用資料的能力;</p><p> 6、通過步進(jìn)電機(jī)控制系統(tǒng)設(shè)計與制作,深入了解與掌握步進(jìn)電機(jī)的運行方式、方向、速度、啟/停的控制。</p&
11、gt;<p> 設(shè)計的題目名稱及要求</p><p> 設(shè)計題目:小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計。</p><p><b> 設(shè)計要求:</b></p><p> ?。?)分別用C語言和匯編語言編程完成硬件接口功能設(shè)計;</p><p> ?。?)基于80x86微機(jī)接口硬件電路設(shè)計調(diào)試;</p>
12、<p> ?。?)控制功能要求:小鍵盤給定分段速度,數(shù)碼管顯示當(dāng)前步進(jìn)電機(jī)啟動與停止、方向、速度信息;</p><p> ?。?)具有本地與遠(yuǎn)程(串行方式下)功能。</p><p><b> 三、實驗設(shè)備</b></p><p> PC機(jī)一臺(裝有TDPIT軟件)、唐都AEDK8688ET實驗箱。</p><
13、;p> 使用硬件:8086 PC,8255芯片,鍵盤數(shù)碼管,步進(jìn)電機(jī)驅(qū)動電路,步進(jìn)電機(jī)。</p><p> 系統(tǒng)設(shè)計:鍵盤采用實驗板提供的4*4鍵盤,使用4個數(shù)碼管實時顯示系統(tǒng)當(dāng)前狀態(tài)。</p><p> 四、設(shè)計的思想和實施方案</p><p> 4.1.2 步進(jìn)電機(jī)的工作原理</p><p> 步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變
14、為角位移或線位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個脈沖信號,電機(jī)則轉(zhuǎn)過一個步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡單。</p><p> 步進(jìn)電機(jī)動態(tài)指標(biāo)及術(shù)語: </p><p><b> 1、步
15、距角精度:</b></p><p> 步進(jìn)電機(jī)每轉(zhuǎn)過一個步距角的實際值與理論值的誤差。用百分比表示:誤差/步距角*100%。不同運行拍數(shù)其值不同,四拍運行時應(yīng)在5%之內(nèi),八拍運行時應(yīng)在15%以內(nèi)。</p><p><b> 2、失步:</b></p><p> 電機(jī)運轉(zhuǎn)時運轉(zhuǎn)的步數(shù),不等于理論上的步數(shù)。稱之為失步。</p
16、><p><b> 3、失調(diào)角:</b></p><p> 轉(zhuǎn)子齒軸線偏移定子齒軸線的角度,電機(jī)運轉(zhuǎn)必存在失調(diào)角,由失調(diào)角產(chǎn)生的誤差,采用細(xì)分驅(qū)動是不能解決的。</p><p> 4、電機(jī)正反轉(zhuǎn)控制:</p><p> 當(dāng)電機(jī)繞組通電時序為AB-BC-CD-DA或()時為正轉(zhuǎn),通電時序為DA-CA-BC-AB或()時
17、為反轉(zhuǎn)。</p><p><b> 驅(qū)動控制系統(tǒng)組成:</b></p><p> 使用、控制步進(jìn)電機(jī)必須由環(huán)形脈沖,功率放大等組成的控制系統(tǒng),其方框圖如下:</p><p><b> 脈沖信號的產(chǎn)生:</b></p><p> 脈沖信號一般由單片機(jī)或CPU產(chǎn)生,一般脈沖信號的占空比為0.3-
18、0.4左右,電機(jī)轉(zhuǎn)速越高,占空比則越大。</p><p> 下圖步進(jìn)電機(jī)為一四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對步進(jìn)電機(jī)的各相繞組按合適的時序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動。圖1是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖。 </p><p> 圖1 四相步進(jìn)電機(jī)步進(jìn)示意圖</p><p> 開始時,開關(guān)sb接通電源,sa、sc、sd斷開,b相磁極和轉(zhuǎn)子0、3號
19、齒對齊,同時,轉(zhuǎn)子的1、4號齒就和c、d相 </p><p> 繞組磁極產(chǎn)生錯齒,2、5號齒就和d、a相繞組磁極產(chǎn)生錯齒。</p><p> 當(dāng)開關(guān)sc接通電源,sb、sa、sd斷開時,由于c相繞組的磁力線和1、4號齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動,1、4號齒和c相繞組的磁極對齊。而0、3號齒和a、b相繞組產(chǎn)生錯齒,2、5號齒就和a、d相繞組磁極產(chǎn)生錯齒。依次類推,a、b、c、d四相繞組
20、輪流供電,則轉(zhuǎn)子會沿著a、b、c、d方向轉(zhuǎn)動。</p><p> 四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動力矩又可以提高控制精度。</p><p> 單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖2.a、b、c所示
21、:</p><p> a. 單四拍 b. 雙四拍 c八拍</p><p> 圖2.步進(jìn)電機(jī)工作時序波形圖 </p><p> 4.1.2 8255A的功能簡介</p><p> Intel 8086/8088 系列的可編程外設(shè)接口電路(Programmab
22、le Peripheral Interface)簡稱 PPI,型號為8255(改進(jìn)型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強(qiáng),使用靈活,通過它CPU可直接與外設(shè)相連接。</p><p> 8255A在使用前要寫入一個方式控制字,選擇A、B、C三個端口各自的工作方式,共有三種;&l
23、t;/p><p> 方式0 :基本的輸入輸出方式,即無須聯(lián)絡(luò)就可以直接進(jìn)行的 I/O方式。其中A、B、C口的高四位或低四位可分別設(shè)置成輸入或輸出。</p><p> 方式1 :選通I/O,此時接口和外圍設(shè)備需聯(lián)絡(luò)信號進(jìn)行協(xié)調(diào),只有A口和B口可以工作在方式1,此時C口的某些線被規(guī)定為A口或B口與外圍設(shè)備的聯(lián)絡(luò)信號,余下的線只有基本的I/O功能,即只工作在方式0.</p><
24、;p> 方式2: 雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時C口有5條線被規(guī)定為A口和外圍設(shè)備的雙向聯(lián)絡(luò)線,C口剩下的三條線可作為B口方式1的聯(lián)絡(luò)線,也可以和B口一起方式0的I/O線。</p><p> 4.1.3 設(shè)計思想和實施方案</p><p> 初步設(shè)計的模塊圖如下:</p><p><b> 進(jìn)一
25、步的設(shè)計圖:</b></p><p> 本次設(shè)計,對8255的使用是這樣的:8255工作于方式0,A口低四位接鍵盤及數(shù)碼管顯示單元的X1~X4;C口低四位接鍵盤及數(shù)碼管顯示單元的Y1~Y4; C口高四位接步進(jìn)電路的驅(qū)動電路,使電機(jī)轉(zhuǎn)動起來;B口接數(shù)碼管的A、B、C、D、E、F、G和DP,以使數(shù)碼管顯示電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。8255的A口高四位本次課程設(shè)計沒有用到。</p><p>
26、; 此外,本次設(shè)計還用到了實驗箱中的鍵盤及數(shù)碼管顯示單元:</p><p> 方向鍵:控制步進(jìn)電機(jī)運行方向,無論電機(jī)處于運行或停止?fàn)顟B(tài),每按下一次,電機(jī)轉(zhuǎn)動方向反向;</p><p> 運行/暫停鍵:控制電機(jī)運行與否。電機(jī)轉(zhuǎn)動時按下,電機(jī)暫停,當(dāng)前電機(jī)運行參數(shù)不變,再次按下時,電機(jī)繼續(xù)按暫停前參數(shù)運行;</p><p> 停止鍵:無論電機(jī)處于任何狀態(tài),按下此
27、鍵,電機(jī)停止轉(zhuǎn)動,電機(jī)各運行參數(shù)復(fù)位,默認(rèn)參數(shù)為:“順時針,停止?fàn)顟B(tài),1檔”;</p><p> 檔位鍵:無論電機(jī)處于任何狀態(tài),均可設(shè)定電機(jī)檔位。</p><p><b> 數(shù)碼管顯示信息:</b></p><p> 左起第一個數(shù)碼管顯示當(dāng)前電機(jī)的運行狀態(tài):S(Stop)表示當(dāng)前電機(jī)為停止?fàn)顟B(tài);E(Enable)表示當(dāng)前電機(jī)為運行狀態(tài);P
28、(Pause)表示當(dāng)前電機(jī)為暫停狀態(tài)。</p><p> 第二個數(shù)碼管未使用,只有小數(shù)點點亮。</p><p> 第三個數(shù)碼管顯示電機(jī)運行方向:C(Clockwise)表示電機(jī)運行方向為順時針;A(Anti-clockwise)表示電機(jī)運行方向為逆時針。</p><p> 第四個數(shù)碼管顯示電機(jī)的檔位:1、2、3、4分別表示1、2、3、4檔。</p>
29、<p> 鍵盤數(shù)碼管內(nèi)部連線如下圖:</p><p><b> 五、硬件電路原理圖</b></p><p> 圖 步進(jìn)電機(jī)控制系統(tǒng)硬件電路原理</p><p> 如上圖示:該原理圖涉及到系統(tǒng)總線、可編程外圍接口芯片8255、鍵盤及數(shù)碼管顯示單元和步進(jìn)電機(jī)及其驅(qū)動電路.8255的D0~D7 依次接系統(tǒng)總線的XD0~XD7,A
30、1和A0依次接系統(tǒng)總線的XA3和XA2;WR和RD 依次接系統(tǒng)總線上的XIOW和XIOR;8255的CS接系統(tǒng)總線的IOY0, 8255的A口低四位PA0~PA4依次接小鍵盤的X1~X4(列);C口低四位PC0~PC3分別接小鍵盤的Y1~Y4(行); C口高四位PC4~PC7依次接驅(qū)動電路的A、B、C和D;B口PB0~PB7分別接數(shù)碼管的A、B、C、D、E、F、G和DP;A口高四位沒用到。</p><p><
31、;b> 圖 步進(jìn)電機(jī)模塊</b></p><p> 此模塊的主要功能是通過接收8255的C口輸入信號來控制步進(jìn)電機(jī)的轉(zhuǎn)動,A,B,C,D分別代表不同的四個相位,分別接入到PC0,PC1,PC2和PC3,實現(xiàn)轉(zhuǎn)動控制。</p><p><b> 圖 LED模塊</b></p><p> 六、典型程序模塊及典型編程技
32、巧分析</p><p><b> 1.主函數(shù)模塊</b></p><p> 主函數(shù)MAIN主要是綜合調(diào)用各子函數(shù),以完成對四項八拍步進(jìn)電機(jī)轉(zhuǎn)速</p><p> 和轉(zhuǎn)向的控制,并在數(shù)碼管上實時顯示電機(jī)的運行狀態(tài)、轉(zhuǎn)向和轉(zhuǎn)速檔位。</p><p> 本次設(shè)計的電機(jī)轉(zhuǎn)速分為四個檔,分為一二三四檔,在數(shù)碼管的檔位部分顯
33、示,分別顯示1,2,3,4。</p><p> 當(dāng)程序開始運行時,數(shù)碼管上顯示初始狀態(tài): S(停止),</p><p><b> 小數(shù)點(該位不用)</b></p><p><b> C(順時針)</b></p><p><b> 1(速度為1檔)</b><
34、/p><p> 小鍵盤“0” 控制電機(jī)轉(zhuǎn)向:</p><p> 程序默認(rèn)初始態(tài)為C(順時針);按下該鍵,電機(jī)可以切換轉(zhuǎn)向,C(Clockwise)表示電機(jī)運行方向為順時針;A(Anti-clockwise)表示電機(jī)運行方向為逆時針。無論電機(jī)處于運行或停止?fàn)顟B(tài),每按下一次,電機(jī)轉(zhuǎn)動方向反向。 </p><p> 小鍵盤“1”控制電機(jī)開始和暫停兩個狀態(tài)之間的切換:&l
35、t;/p><p> 電機(jī)轉(zhuǎn)動時按下,電機(jī)暫停,當(dāng)前電機(jī)運行參數(shù)不變,再次按下時,電機(jī)繼續(xù)按暫停前參數(shù)運行。E(Enable)表示當(dāng)前電機(jī)為運行狀態(tài);P(Pause)表示當(dāng)前電機(jī)為暫停狀態(tài)。 </p><p> 小鍵盤“2”控制電機(jī)的停止復(fù)位(S:Stop):</p><p> 按下該鍵,電機(jī)停止轉(zhuǎn)動,并且恢復(fù)到初始參數(shù)狀態(tài)。</p><p&g
36、t; 小鍵盤“4”“5”“6”“7”控制電機(jī)的四個轉(zhuǎn)速檔位:</p><p> 當(dāng)按下這四個鍵時,分別是電機(jī)運行在1,2,3,4,轉(zhuǎn)速檔位。即實現(xiàn)了電機(jī)的調(diào)速,并且可以實現(xiàn)任意檔速的切換。</p><p> 2. 鍵盤掃描與顯示子程序模塊</p><p> 此子函數(shù)是用來掃描小鍵盤哪行哪列有鍵按下,當(dāng)確定某行某列有鍵按下時,再把相應(yīng)的鍵值保存起來。</
37、p><p> 小鍵盤有四行四列共16個按鍵,第一行從左到右依次是0~3;第二行從</p><p> 左到右依次是 4~7;第三行從左到右依次是 8~B;第二行從左到右依次是 C~F。</p><p> 為了實現(xiàn)判斷功能,在C語言中設(shè)置三個標(biāo)志位:</p><p> 1.運行狀態(tài)標(biāo)志MODE:0 = 停止(Stop);</p>
38、<p> 1 = 運行(Enable);</p><p> 2 = 暫停(Pause)。</p><p> 2.方向標(biāo)志DIR(Direction):</p><p> 0 = 逆時針(Anti-clockwise);</p><p> 1 = 順時針(Clockwise)。</p><p>
39、3.檔位標(biāo)志GRD(Grade):</p><p><b> 1 = 1 檔;</b></p><p><b> 2 = 2檔;</b></p><p><b> 3 = 3檔;</b></p><p><b> 4 = 4檔。</b></p
40、><p> 數(shù)組a[]中存放數(shù)碼管的編碼,一次為:“S”、“E”、“P”、“A”、“C”、“1”、“2”、“3”、“4”、“.”。數(shù)組b[]中分別存放四個數(shù)碼管應(yīng)顯示的編碼在數(shù)組a[]中對應(yīng)的位置,例如:b[]的初值為:0,9,4,5,則數(shù)碼管會對應(yīng)顯示:“ S . C 1 ”。</p><p> 在匯編程序中,用DTABLE1中存放數(shù)碼管的編碼。[SI][SI+2][SI+4][SI+6
41、] 中分別存放四個數(shù)碼管應(yīng)顯示的編碼在DTABLE1中對應(yīng)的位置。與C程序中不同,匯編程序中取消了dir、mode、grd三個獨立的變量,而是直接用[SI][SI+4][SI+6]來代表,即:</p><p> [SI]=0時,表示停止?fàn)顟B(tài);</p><p> [SI]=1時,表示運行狀態(tài);</p><p> [SI]=2時,表示暫停狀態(tài);</p>
42、<p> [SI+4]=3時,表示方向為逆時針;</p><p> [SI+4]=4時,表示方向為順時針;</p><p> [SI+6]=5時,表示檔位為1檔;</p><p> [SI+6]=6時,表示檔位為2檔;</p><p> [SI+6]=7時,表示檔位為3檔;</p><p>
43、[SI+6]=8時,表示檔位為4檔。</p><p> 首先保證使計數(shù)值i在0-7之間變化,若正轉(zhuǎn),則遞增;反轉(zhuǎn)則遞減。判斷是否運行,如運行,則跳出循環(huán),給步進(jìn)電機(jī)發(fā)驅(qū)動脈沖。</p><p> 3 .保存鍵值子程序</p><p> 此函數(shù)完成在按下小鍵盤按鍵后,將其相應(yīng)的電機(jī)運行狀態(tài)、轉(zhuǎn)向和轉(zhuǎn)速數(shù)值保存起來,以備其它子程序使用。</p>&l
44、t;p> 4. 掃描是否有按鍵閉合子程序</p><p> 此子函數(shù)用來掃描小鍵盤是否有鍵按下。通過8255的C口高四位,使X1~X4(列)全選通,然后由8255的C口低四位判斷各列所對應(yīng)的行是否有鍵安下,無任何鍵按下則C口低四位讀入的全是“1”,若有鍵按下則C口低四位讀入的對應(yīng)行是“0”,其余全是“1”,經(jīng)取反(NOT)后掃描小鍵盤的子程序CCSCAN的功能變?yōu)?若小鍵盤無鍵按下則AL寄存器數(shù)據(jù)為“0
45、”; 若小鍵盤有鍵按下則AL寄存器數(shù)據(jù)為非“0”。</p><p> 為減少引線,鍵盤采用矩陣式。鍵盤的識別采用行掃描法,程序使某行為低電平,則說明行列交叉點處的鍵被按下,然后,再具體確定按下的是哪個鍵。為此先使所在行輸出為0,再檢查列線是否有0。如果有零的話,此時由于不能確定閉合鍵所在的行,于是再用行掃描法來具體定位。如果讀得數(shù)據(jù)全部為1,則說明無鍵閉合。硬件上將8255端口C的上、下半部分分別用作鍵盤的行線
46、和列線。用電平邏輯開關(guān)輸出高低電平來代替鍵盤按鍵。</p><p> 5. 顯示鍵值子程序</p><p> 將保存示值子函數(shù)中保存下的電機(jī)運行狀態(tài)、轉(zhuǎn)向和轉(zhuǎn)速值送到數(shù)碼管上顯示。</p><p> 數(shù)碼管的段位順序如右圖所示:</p><p> 一般來說在一個字節(jié)中按照abcdefg dp的順序放置字型碼,比如在一個“共陰極”數(shù)碼管
47、上要顯示“1”,則b、c段需被點亮,因此在段選線中寫入60H。</p><p><b> 對應(yīng)規(guī)則:</b></p><p> a----->D7 </p><p><b> b----->D6</b></p><p><b> c----->D5</b&
48、gt;</p><p> d----->D4 </p><p> e----->D3 </p><p><b> f----->D2</b></p><p> g----->D1 圖3-2
49、數(shù)碼管顯示</p><p><b> dp---->D0</b></p><p> LED顯示器的顯示方法有兩種——靜態(tài)顯示法和動態(tài)掃描顯示法。靜態(tài)顯示就是每一個顯示器各筆畫段都要獨占具有所存功能的輸出口線,CPU把要顯示的字符代碼送到輸出口上,就可以是顯示器顯示所需的數(shù)字后符號。但由于它站用的I/O口線較多,硬件成本高。所以我們選用了動態(tài)掃描顯示法。<
50、;/p><p> 6. 清除數(shù)碼管顯示子程序</p><p> 將段位置0即可清除數(shù)碼管顯示,即將00H分別送入A口(驅(qū)動LED燈和B口(驅(qū)動數(shù)碼管)便可實驗此功能</p><p> 7. 軟件延時子程序</p><p> 延時子函數(shù),可供別的程序調(diào)用以實現(xiàn)較好的顯示和操作效果。讀取鍵盤時要有一定的延時,來跳過鍵盤在剛按下時產(chǎn)生的抖動。&
51、lt;/p><p> 判斷檔位,進(jìn)行相應(yīng)的延時,注意延時的時候也應(yīng)每隔一定時間調(diào)用keyscan()鍵盤掃描及顯示程序,已保證及時響應(yīng)鍵盤輸入,和刷新數(shù)碼管,使數(shù)碼管常亮。</p><p> 應(yīng)注意調(diào)用子程序前要將CX與AX寄存器的內(nèi)容入棧進(jìn)行保護(hù)。</p><p> 七、課程設(shè)計中遇到的問題及解決方法</p><p> 在本次課程設(shè)計過
52、程中,我遇到了一下問題:</p><p> 首先,在顯示模塊中,在做數(shù)碼管顯示時,每次可以輸出四位信息,而且要輸出的字符須轉(zhuǎn)化為相應(yīng)的ASCII才行,否則就不能輸出想要的東西。顯示模塊的調(diào)試一般是程序問題,硬件連接很簡單,一般不會出錯,我在調(diào)試時,開始沒有初始化8255,導(dǎo)致結(jié)果不能輸出。再就是相應(yīng)的端口一定不能定義錯誤。這在顯示模塊調(diào)試中應(yīng)該多注意。</p><p> 在這里還有一個
53、比較難解決的問題,即調(diào)用了數(shù)碼管顯示程序而卻看不到數(shù)碼管有示數(shù),這主要是調(diào)用數(shù)碼管顯示子函數(shù)的頻率不夠高,可以把數(shù)碼管顯示子函數(shù)換個位置,或者是多調(diào)用幾次就可以解決了。至于數(shù)碼管好像是全亮,情況正好相反,是數(shù)碼管顯示子函數(shù)調(diào)用的頻率過高,把數(shù)碼管顯示子函數(shù)換個位置,或者是在關(guān)鍵位置調(diào)用一下延時函數(shù)就可以解決了。還有,DIS和CLEAR成對調(diào)用可使數(shù)碼管有個較好的顯示效果。</p><p> 在剛開始編程時,各種
54、功能大部分是由主程序來完成的。由于主程序過于復(fù)雜,可讀性不高。使得在以后的程序的調(diào)試中遇到了很大的麻煩。后來把主程序的部分功能轉(zhuǎn)化成子程序來實現(xiàn),并在一些重要的地方增加了注釋,使的程序的可讀性大大加強(qiáng)。調(diào)試也變的比較簡單了。</p><p> 其次,在使用小鍵盤時容易死機(jī)。出現(xiàn)死機(jī)的原因有很多,有時候同一個程序換臺機(jī)子運行就會死機(jī),有時候同一臺機(jī)子同一個程序運行多次就會死機(jī),不過總的來看死機(jī)的出現(xiàn)多少是和所編寫
55、的程序有關(guān),記得我以前用小鍵盤時就是很容易就死機(jī)了,不過在這次的課程設(shè)計中 我把所有的和小鍵盤有關(guān)的程序都用了子函數(shù)代替,大大簡化了主程序的結(jié)構(gòu),這樣就基本再也沒發(fā)生過死機(jī)現(xiàn)象了。</p><p> 再者,當(dāng)小鍵盤按下不松時電機(jī)也停止轉(zhuǎn)動這種情況出現(xiàn)在電機(jī)的加速、減速和改變轉(zhuǎn)向中,這主要是在原有的keyscan程序中有一段判斷按鍵是否彈起的程序,將此段換成一個合適的軟件延時便可以起到很好的效果(按鍵不松時可以連
56、續(xù)的加速和減速)。</p><p> 再就是寄存器的使用問題。在編程時,子程序的調(diào)試也是相當(dāng)重要,由于子程序不可避免的使用AX\BX\CX\DX通用寄存器一個或幾個。使得原主程序中的通用寄存器的內(nèi)容很容易被覆蓋,對子程序中所有的通用寄存器出入棧即可以避免上訴的問題,不用考慮使用的是哪幾個寄存器,使用起來又比較簡單方便。</p><p> 數(shù)碼轉(zhuǎn)換問題,首先查找許多相關(guān)的典型程序,例如:
57、</p><p> 十六位二進(jìn)制數(shù)轉(zhuǎn)換為10進(jìn)制BCD碼,可將AX中的二進(jìn)制數(shù)先后除以1000,100,10,每次除法所得的商,即是BCD的千位、百位和十位數(shù),余數(shù)是個位。</p><p> TRAN: PUSH CX SHL DX,CL</p><p> PUSH DX
58、 XCHG AL,AH</p><p> SUB DX,DX SUB AH,AH</p><p> MOV CX,1000 MOV CL,10</p><p> DIV CX DIV CL</p><
59、p> XCHG AX,DX ADD DL,AL</p><p> MOV CL,4 MOV CL,4</p><p> SHL DX,CL SHL DX,CL</p><p> MOV CL,100
60、 ADD DL,AH</p><p> DIV CL MOV AX,DX</p><p> ADD DL,AL POP DX</p><p> MOV CL,4 POP CX</p>&
61、lt;p> 而在算術(shù)運算方面也遇到了不少的問題,由于設(shè)計過程中存在著小數(shù)所以很多時候總會出現(xiàn)算術(shù)方面錯誤,具體表現(xiàn)為結(jié)果的溢出或者結(jié)果小數(shù)點位置錯誤。</p><p> 解決的方法通常是先將所要計算的數(shù)值乘以10、100等使得數(shù)值為整數(shù),然后再進(jìn)行計算,而在結(jié)果輸出時再除以相映的數(shù)值從而實現(xiàn)小數(shù)的算術(shù)運算功能,而不需要采用定義浮點型去計算小數(shù)以避免出現(xiàn)數(shù)值定義的錯誤。</p><p&
62、gt; 另一個常見的錯誤就是自定義存儲空間之間的數(shù)值存放,因為在許多時候總是需要將結(jié)果保存在某一段存儲空間里面,由于對存儲空間的定義使得其大小范圍各有不同,所以對其賦值時總是會出現(xiàn)溢出或數(shù)值轉(zhuǎn)換的錯誤。</p><p> 而在子程序調(diào)用以循環(huán)方面存在的問題是指針的計數(shù)以及標(biāo)志位清零或置1搞錯從而使子程序運算錯誤或者進(jìn)入死循環(huán)等。所采取的解決方法是對指針計數(shù)值在各個部分運算結(jié)束后進(jìn)行清零以保證指針初值的正確。&
63、lt;/p><p> 最后的問題就是DOS系統(tǒng)功能調(diào)用和BIOS中斷調(diào)用,因為本課題設(shè)計中要實現(xiàn)軟件時鐘,所以需要對軟件延遲以及中斷調(diào)用有一定的了解,對此在設(shè)計時查閱了一些相關(guān)的軟件中斷命令。</p><p> 當(dāng)個模塊都調(diào)試成功后,即可合成到一起運行。本系統(tǒng)電機(jī)的速度可以通過速度增減鍵來控制。通過驗證各按鍵是否被有效采用,來檢驗該系統(tǒng)是否正確的完成了指定的功能。</p>&
64、lt;p> 八、實驗程序的流程圖</p><p><b> 主流程圖:</b></p><p><b> 掃描與顯示流程圖:</b></p><p> 鍵盤顯示子程序流程圖:</p><p> 鍵盤掃描子程序流程圖:</p><p> 九、匯編程序清單及程序
65、注釋</p><p><b> ;步進(jìn)電機(jī)實驗</b></p><p> IOY0 EQU 0e400H ;片選IOY0對應(yīng)的端口始地址</p><p> MY8255_A EQU IOY0+00H*4 ;8255的A口地址</p><p> MY825
66、5_B EQU IOY0+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 STA
67、CK</p><p> DW 256 DUP(?)</p><p> STACK1 ENDS</p><p> DATA SEGMENT</p><p> DTABLE1 DB 6DH,79H,73H,77H,39H,06H,5BH,4FH,66H,80H</p><p> DTABLE3 D
68、B 10H,30H,20H,60H,40H,0C0H,80H,90H</p><p> DATA ENDS </p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DATA</p><p> START: MOV AX,DATA<
69、/p><p><b> MOV DS,AX</b></p><p> MOV SI,3000H</p><p> MOV [SI],00H</p><p> MOV [SI+2],09H</p><p> MOV [SI+4],04H</p><p> MOV [S
70、I+6],05H</p><p> MOV [SI+8],01H</p><p> MOV DX,MY8255_MODE ;初始化8255工作方式 </p><p> MOV AL,81H ;方式0,A口、B口輸出,C口低4位輸入 </p><p><b> OUT DX,A
71、L</b></p><p> KAISHI:MOV SI,3000H </p><p> MOV DH,[SI+8]</p><p><b> CMP DH,8</b></p><p><b> JA ZHI1</b></p><p><b>
72、 CMP DH,1</b></p><p><b> JB ZHI8</b></p><p><b> JMP JIXU</b></p><p> ZHI1:MOV [SI+8],01H</p><p><b> JMP JIXU</b></p&g
73、t;<p> ZHI8:MOV [SI+8],08H</p><p> JIXU:CALL KEYSCAN</p><p> MOV AH,1 ;判斷是否有按鍵按下</p><p><b> INT 16H</b></p><p> JZ SFRUN
74、 ;無按鍵則跳回繼續(xù)循環(huán),有則退出</p><p> QUIT: MOV AX,4C00H ;結(jié)束程序退出</p><p><b> INT 21H</b></p><p> SFRUN:MOV SI,3000H </p><p> MO
75、V DH,[SI]</p><p> CMP DH,01H</p><p><b> JNZ JIXU</b></p><p> MOV DH,[SI+4]</p><p> CMP DH,04H</p><p> JNZ ZIJIAN</p><p> INC
76、 [SI+8]</p><p><b> JMP RUN</b></p><p> KAISHI1: JMP KAISHI</p><p> ZIJIAN:DEC [SI+8]</p><p> RUN:MOV AL,[SI+8]</p><p> MOV BX,OFFSET DTA
77、BLE3</p><p> AND AX,00FFH </p><p><b> ADD BX,AX</b></p><p> DEC BX </p><p> MOV AL,[BX] </p><p>
78、 MOV DX,MY8255_C </p><p> OUT DX,AL</p><p> DANG1:MOV DH,[SI+6]</p><p> CMP DH,05H</p><p><b> JNZ DANG2</b></p><p><b>
79、; PUSH CX</b></p><p> MOV CX,10H</p><p> DA1:CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CALL DALLY1</p><p> CAL
80、L KEYSCAN</p><p> JMP KAISHI</p><p> DANG2:CMP DH,06H</p><p><b> JNZ DANG3</b></p><p> DA2:CALL DALLY1</p><p> CALL DALLY1</p>&l
81、t;p> CALL DALLY1</p><p> JMP KAISHI</p><p> DANG3:CMP DH,07H</p><p><b> JNZ DANG4</b></p><p> DA3:CALL DALLY1</p><p> CALL DALLY1<
82、;/p><p> JMP KAISHI</p><p> DANG4:CMP DH,08H</p><p> JNZ KAISHI1</p><p> DA4:CALL DALLY1</p><p> CALL KEYSCAN</p><p> JMP KAISHI</p>
83、;<p> DALLY1 PROC NEAR ;軟件延時子程序</p><p><b> PUSH CX</b></p><p><b> PUSH AX </b></p><p> MOV CX,00AFH</p><p> D11
84、:MOV AX,5000H</p><p> D22:DEC AX</p><p><b> JNZ D22</b></p><p><b> PUSH CX</b></p><p><b> PUSH AX</b></p><p>
85、 CALL KEYSCAN</p><p><b> POP AX</b></p><p><b> POP CX</b></p><p><b> LOOP D11</b></p><p><b> POP AX</b></p>
86、<p><b> POP CX</b></p><p><b> RET</b></p><p> DALLY1 ENDP</p><p> KEYSCAN PROC NEAR ;鍵盤掃描子程序</p><p> BEGIN:CAL
87、L DIS ;顯示刷新 </p><p> CALL CLEAR ;清屏</p><p> CALL CCSCAN ;掃描按鍵</p><p> JNZ GETKEY1 ;有鍵按下則跳置GETK
88、EY1 </p><p> JMP GOBACK1</p><p> GETKEY1:CALL DIS ;顯示刷新</p><p> CALL DALLY </p><p> CALL DALLY</p><p> CALL CLEA
89、R ;清屏</p><p> CALL CCSCAN ;再次掃描按鍵</p><p> JNZ GETKEY2 ;有鍵按下則跳置GETKEY2</p><p> JMP BEGIN ;否則跳回開始繼續(xù)循環(huán)</p><
90、p> GETKEY2:MOV CH,0FEH</p><p> MOV CL,00H ;設(shè)置當(dāng)前檢測的是第幾列</p><p> COLUM: MOV AL,CH ;選取一列,將X1~X4中一個置0 </p><p> MOV DX,MY8255_A </p
91、><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_C ;讀Y1~Y4,用于判斷是哪一行按鍵閉合 </p><p><b> IN AL,DX</b></p><p> L1: TEST AL,01H
92、 ;是否為第1行</p><p> JNZ L2 ;不是則繼續(xù)判斷 </p><p> MOV AL,00H ;設(shè)置第1行第1列的對應(yīng)的鍵值</p><p><b> JMP KCODE</b></p><p> BEGIN1:JM
93、P BEGIN</p><p> L2: TEST AL,02H ;是否為第2行</p><p> JNZ L3 ;不是則繼續(xù)判斷</p><p> MOV AL,04H ;設(shè)置第2行第1列的對應(yīng)的鍵值</p><p><
94、b> JMP KCODE</b></p><p> L3: TEST AL,04H ;是否為第3行</p><p> JNZ L4 ;不是則繼續(xù)判斷</p><p> MOV AL,08H ;設(shè)置第3行第1列的對應(yīng)的鍵值</p
95、><p><b> JMP KCODE</b></p><p> L4: TEST AL,08H ;是否為第4行</p><p> JNZ NEXT ;不是則繼續(xù)判斷</p><p> MOV AL,0CH ;設(shè)
96、置第4行第1列的對應(yīng)的鍵值</p><p> KCODE: ADD AL,CL ;將第1列的值加上當(dāng)前列數(shù),確定按鍵值</p><p> CALL PUTBUF ;保存按鍵值</p><p><b> PUSH AX</b></p><p> KO
97、N: CALL DIS ;顯示刷新</p><p> CALL CLEAR ;清屏</p><p> CALL CCSCAN ;掃描按鍵,判斷按鍵是否彈起</p><p> JNZ KON ;未彈起則繼續(xù)循環(huán)等待彈起&l
98、t;/p><p><b> POP AX</b></p><p> NEXT: INC CL ;當(dāng)前檢測的列數(shù)遞增 </p><p><b> MOV AL,CH</b></p><p> TEST AL,08H
99、 ;檢測是否掃描到第4列</p><p> JZ BEGIN1</p><p> ROL AL,1 ;沒檢測到第4列則準(zhǔn)備檢測下一列</p><p><b> MOV CH,AL</b></p><p><b> JMP COLUM<
100、;/b></p><p> GOBACK1:RET</p><p> KEYSCAN ENDP</p><p> CCSCAN PROC NEAR ;掃描是否有按鍵閉合子程序</p><p> MOV AL,00H </p>
101、;<p> MOV DX,MY8255_A ;將4列全選通,X1~X4置0</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_C </p><p> IN AL,DX ;讀Y1~Y4</p><p
102、><b> NOT AL</b></p><p> AND AL,0FH ;取出Y1~Y4的反值</p><p><b> RET</b></p><p> CCSCAN ENDP</p><p> CLEAR PROC NEAR
103、 ;清除數(shù)碼管顯示子程序</p><p> MOV DX,MY8255_B ;段位置0即可清除數(shù)碼管顯示 </p><p> MOV AL,00H</p><p><b> OUT DX,AL</b></p><p><b> RET</b><
104、/p><p> CLEAR ENDP</p><p> DIS PROC NEAR ;顯示鍵值子程序</p><p><b> PUSH AX </b></p><p> PUSH SI </p><p> MOV
105、 SI,3006H </p><p> MOV DL,0F7H</p><p><b> MOV AL,DL</b></p><p> AGAIN: PUSH DX</p><p> MOV DX,MY8255_A </p><p&g
106、t; OUT DX,AL ;設(shè)置X1~X4,選通一個數(shù)碼管 </p><p> MOV AL,[SI] ;取出緩沖區(qū)中存放鍵值 </p><p> MOV BX,OFFSET DTABLE1</p><p> AND AX,00FFH</p>
107、<p> ADD BX,AX </p><p> MOV AL,[BX] </p><p> MOV DX,MY8255_B </p><p> OUT DX,AL ;寫入數(shù)碼管A~Dp</p><p> CALL DALLY</p><p
108、><b> DEC SI</b></p><p> DEC SI ;取下一個鍵值</p><p><b> POP DX</b></p><p><b> MOV AL,DL</b></p><p> TEST AL,01
109、H ;判斷是否顯示完?</p><p> JZ OUT1 ;顯示完,返回</p><p> ROR AL,1 </p><p><b> MOV DL,AL</b></p><p> JMP AGAIN
110、 ;未顯示完,跳回繼續(xù)</p><p> OUT1: POP SI</p><p> POP AX </p><p><b> RET</b></p><p><b> DIS ENDP</b></p><p&g
111、t; PUTBUF PROC NEAR ;保存鍵值子程序</p><p> MOV SI,3000H </p><p> CMP AL,00H</p><p><b> JNZ MODE</b></p><p> DIR:CMP [SI+4],03H</p>
112、<p><b> JZ DIR1</b></p><p> MOV [SI+4],03H </p><p><b> JMP LAST</b></p><p> DIR1:MOV [SI+4],04H</p><p><b> JMP LAST</
113、b></p><p> MODE:CMP AL,01H</p><p><b> JNZ STOP</b></p><p> CMP [SI],01H</p><p><b> JZ MODE1</b></p><p> MOV [SI],01H</p
114、><p><b> JMP LAST</b></p><p> MODE1:MOV [SI],02H</p><p><b> JMP LAST</b></p><p> STOP:CMP AL,02H</p><p><b> JNZ GRD1</
115、b></p><p> MOV [SI],00H</p><p> MOV [SI+4],04H</p><p> MOV [SI+6],05H</p><p> GRD1:CMP AL,04H</p><p><b> JNZ GRD2</b></p><p
116、> MOV [SI+6],05H</p><p> GRD2:CMP AL,05H</p><p><b> JNZ GRD3</b></p><p> MOV [SI+6],06H</p><p> GRD3:CMP AL,06H</p><p><b> JNZ
117、 GRD4</b></p><p> MOV [SI+6],07H</p><p> GRD4:CMP AL,07H</p><p><b> JNZ LAST</b></p><p> MOV [SI+6],08H</p><p> LAST:CALL DIS</
118、p><p> CALL CLEAR</p><p> CALL CCSCAN</p><p> GOBACK: RET</p><p> PUTBUF ENDP</p><p> DALLY PROC NEAR ;軟件延時子程序</p><p><
119、;b> PUSH CX</b></p><p> MOV CX,00FFH</p><p> D1: MOV AX,00FFH</p><p> D2: DEC AX</p><p><b> JNZ D2</b></p><p><b>
120、LOOP D1</b></p><p><b> POP CX</b></p><p><b> RET</b></p><p> DALLY ENDP</p><p><b> CODE ENDS</b></p><p><b
121、> END START</b></p><p><b> 十、C語言程序清單</b></p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <conio.h>&l
122、t;/p><p> #include <bios.h></p><p> #include <ctype.h></p><p> #include <process.h></p><p> void dis(void);</p><p> void key(void);<
123、/p><p> void clear(void);</p><p> void ccscan(void);</p><p> void action(void);</p><p> void putbuf(void);</p><p> void getkey(void);</p><p>
124、; void delay0(int time);</p><p> void keyscan(void);</p><p> void delay1(int time);</p><p> #define IOY0 0x0C400</p><p> #define MY8255_A IOY0+0x00*4</p>
125、<p> #define MY8255_B IOY0+0x01*4</p><p> #define MY8255_C IOY0+0x02*4</p><p> #define MY8255_MODE IOY0+0x03*4</p><p> char a[]={0x6d,0x79,0x73,0x77,0x39,0x06,0x5b,0
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計-- 微機(jī)步進(jìn)電機(jī)控制系統(tǒng)設(shè)計
- 微機(jī)原理課程設(shè)計--步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)課程設(shè)計報告---步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)課程設(shè)計報告--步進(jìn)電機(jī)控制系統(tǒng)設(shè)計
- 微機(jī)控制技術(shù)課程設(shè)計---步進(jìn)電機(jī)控制系統(tǒng)設(shè)計
- 步進(jìn)電機(jī)控制系統(tǒng)設(shè)計課程設(shè)計報告
- 步進(jìn)電機(jī)課程設(shè)計--步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)課程設(shè)計--- 步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)課程設(shè)計---步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計
- 步進(jìn)電機(jī)控制系統(tǒng)課程設(shè)計
- 微機(jī)原理課程設(shè)計---步進(jìn)電機(jī)的微機(jī)控制
- 步進(jìn)電機(jī)專業(yè)課程設(shè)計--步進(jìn)電機(jī)控制系統(tǒng)設(shè)計
- 微機(jī)原理課程設(shè)計報告--步進(jìn)電機(jī)設(shè)計
- 微機(jī)控制技術(shù)(計算機(jī)控制技術(shù))課程設(shè)計——步進(jìn)電機(jī)控制系統(tǒng)設(shè)計
- 步進(jìn)電機(jī)控制a課程設(shè)計報告
- 微機(jī)原理課程設(shè)計---基于80x86的步進(jìn)電機(jī)控制系統(tǒng)
- 小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計1
- 課程設(shè)計----二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計
- 微機(jī)原理課程設(shè)計---步進(jìn)電機(jī)設(shè)計
- 單片機(jī)課程設(shè)計--步進(jìn)電機(jī)控制系統(tǒng)
評論
0/150
提交評論