版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 單片機課程設(shè)計</b></p><p><b> ——步進電機控制</b></p><p> 學院 </p><p> 班級 </p><p> 學號 </p><
2、p> 姓名 </p><p> 2012年6月21日</p><p><b> 目錄</b></p><p> 一、設(shè)計任務(wù)、設(shè)計原理 ……………………………………1</p><p> 二、內(nèi)存使用分配表…………………………………………1</p><p>
3、 三、連線圖及設(shè)計步驟…………………………………………1</p><p> 四、硬件原理圖…………………………………………………3</p><p> 五、模塊程序的詳細流程圖……………………………………4</p><p> 六、詳細程序……………………………………………………5</p><p> 七、設(shè)計心得體會…………………………
4、……………………9</p><p> 一、設(shè)計任務(wù)、設(shè)計原理</p><p><b> ?。?)設(shè)計任務(wù)</b></p><p> 1、從鍵盤上輸入正、反轉(zhuǎn)命令,轉(zhuǎn)速參數(shù)(16級)和轉(zhuǎn)動步數(shù)顯示在LED顯示器上。</p><p> 顯示器上顯示:第一位為0表示正轉(zhuǎn),為1表示反轉(zhuǎn);第二位0~F為轉(zhuǎn)速等級,第三到第六位
5、設(shè)定步數(shù)。</p><p> 2、單片機依顯示器上顯示的正、反轉(zhuǎn)命令,轉(zhuǎn)速級數(shù)和轉(zhuǎn)動步數(shù)進行相應(yīng)動作,轉(zhuǎn)動步數(shù)減為零時停止轉(zhuǎn)動。</p><p><b> ?。?)設(shè)計原理</b></p><p> 如圖,當有一相繞組被通電激勵時,磁通從正相齒,經(jīng)過軟鐵芯的轉(zhuǎn)子,并以最短路徑流向負相齒,為使磁通路徑最短,在磁場力的作用下,轉(zhuǎn)子被迫移動,使最
6、近的一對齒與被激勵的一相對準。那么,通過對它每相線圈中電流的順序切換可使電機作步進式旋轉(zhuǎn)。</p><p> 相數(shù):產(chǎn)生不同對極N、S磁場的激磁線圈對數(shù)。</p><p> 拍數(shù):指電機轉(zhuǎn)過一個齒距角所需脈沖數(shù),以四相電機為例,有四相四拍運行方式即AB-BC-CD-DA-AB或A-B-C-D-A,四相八拍運行方式即 A-AB-B-BC-C-CD-D-DA-A.</p>&
7、lt;p> 步距角:對應(yīng)一個脈沖信號電機轉(zhuǎn)子轉(zhuǎn)過的角位移. 步距角=360/(轉(zhuǎn)子齒數(shù)*拍數(shù))</p><p><b> 內(nèi)存使用分配表</b></p><p><b> 連線圖及實驗步驟</b></p><p><b> 實驗接線圖</b></p><p>
8、系統(tǒng)中使用20BY-0型號步進電機,它使用+5V直流電源,步距角為18度,電機線圈由A、B、C、D四相組成。</p><p> 步進電機驅(qū)動原理是通過對它每相線圈中的電流的順序切換來使電機作步進式旋轉(zhuǎn),驅(qū)動電路由脈沖信號來控制,所以調(diào)節(jié)脈沖信號的頻率便可改變步進電機的轉(zhuǎn)速。BA、BB、BC、BD即為脈沖信號輸入插孔,驅(qū)動器輸出A、B、C、D接步進電機。實驗接線有兩種方式,共陽和共陰級兩種接法,其接線圖如圖(一)
9、、(二)所示</p><p><b> ?。?)實驗步驟</b></p><p> ?。?)步進電機模塊插頭接實驗系統(tǒng)J3插座(順接)。</p><p> (2)把P1.0~P1.3分別接到BA~BD插孔。</p><p> ?。?)根據(jù)步進電機的相序控制編寫控制程序。</p><p> ?。?
10、)編寫鍵盤輸入程序(定義功能鍵),數(shù)碼管顯示程序,數(shù)碼管的第一位為正反轉(zhuǎn)、第二位為轉(zhuǎn)速等級(0~F)、第三~六位為設(shè)定轉(zhuǎn)動步數(shù)。</p><p> ?。?)運行程序控制電機工作。從鍵盤上輸入數(shù)字使顯示器顯示,第一位為0(正轉(zhuǎn)),為1(反轉(zhuǎn)),第二位0~F顯示轉(zhuǎn)速,第三~六位為設(shè)定轉(zhuǎn)動步數(shù),按EXEC鍵后,步進電機開始轉(zhuǎn)動,步數(shù)逐漸減小到零時步進電機停止轉(zhuǎn)動。</p><p><b&g
11、t; 圖一</b></p><p><b> 圖二</b></p><p><b> 四、硬件原理圖</b></p><p><b> 1.數(shù)碼管顯示字形</b></p><p> LED顯示器是由發(fā)光二極管構(gòu)成的字段組成的顯示器。</p>
12、<p><b> 顯示程序任務(wù):</b></p><p> 設(shè)置顯示緩沖區(qū)(7EH- 79 H) ,存放待顯示數(shù)據(jù)和字符(位置碼)。</p><p> 顯示譯碼:程序存儲器中建立字形碼常數(shù)表,查表得出對應(yīng)數(shù)據(jù)和字符的字形碼。</p><p> 輸出顯示:輸出字形碼到顯示端口。</p><p> 2.字
13、位口表(從高位起) </p><p><b> 3.鍵盤顯示原理圖</b></p><p> 五、模塊程序的詳細流程圖</p><p><b> 1、顯示子程序模塊</b></p><p> 采用動態(tài)顯示方式,即一位一位地輪流點亮(掃描)6位顯示器。在8032RAM存儲器中設(shè)置六個顯示緩沖區(qū)
14、單元7EH-79H,分別存放6位顯示器的顯示數(shù)據(jù)(從高到低)。</p><p><b> 2、鍵盤輸入模塊</b></p><p> 實驗系統(tǒng)有4×8的鍵盤結(jié)構(gòu)(見鍵掃顯示原理圖)。鍵盤的行線通過電阻接+5V,當鍵盤上沒有鍵閉合時 </p><p> 所有的行線和列線都斷開,行
15、線都為高電平。</p><p> 當鍵盤上某一鍵閉合時,則該鍵所對應(yīng)的行</p><p> 線和列線都短路。CPU逐行逐列地檢查鍵盤的狀態(tài),可判斷鍵盤上有無鍵閉合。CPU</p><p> 對鍵盤上閉合鍵的鍵號確定,可根據(jù)行線和</p><p> 列線的狀態(tài)計算求得,也可以根據(jù)行線和列線的狀態(tài)查表求得。 </p><
16、;p><b> 3、步進電機控制</b></p><p> 四相四拍運行方式即AB-BC-</p><p> CD-DA-AB或A-B-C-D-A,激勵一相即</p><p> 對該相置“ 1”,控制每一拍的間隔時間用</p><p><b> 延時子程序?qū)崿F(xiàn)</b></p&g
17、t;<p><b> 六、詳細程序</b></p><p><b> ORG 0000H</b></p><p><b> LJMP MAIN</b></p><p><b> ORG 100H</b></p><p> MAIN:
18、 MOV 79H,#00H ;主程序部分</p><p> MOV 7AH,#00H</p><p> MOV 7BH,#00H</p><p> MOV 7CH,#00H</p><p> MOV 7DH,#00H</p><p> MOV
19、 7EH,#00H</p><p> MOV R0,#7EH ;取顯示內(nèi)存緩充區(qū)的第一位</p><p> MAIN1: ACALL KEY ;調(diào)用按鍵程序</p><p> MOV @R0,A
20、;獲得的值存放到7EH中 </p><p> CJNE R0,#78H,KS ;是否到78H,不到轉(zhuǎn)KS</p><p> CJNE A,#16H,AGAIN ;是否按下EXEC鍵</p><p><b> 若是則跳轉(zhuǎn)到RUN</b></p>&
21、lt;p> LJMP RUN ;調(diào)轉(zhuǎn)到步進電機控制部分</p><p> AGAIN: LJMP MAIN1</p><p> KS: DEC R0</p><p> LJMP MAIN1 </p><p> RUN:
22、 MOV A,79H ;?。?EH)當前所存</p><p> JZ ZHENG ;跳轉(zhuǎn)到正轉(zhuǎn)</p><p> JNZ FAN ;跳轉(zhuǎn)到反轉(zhuǎn)</p><p> ZHE
23、NG: MOV P1,#03H ;給AB兩相脈沖</p><p> ACALL DELAY ;調(diào)用延時子程序 </p><p> MOV P1,#06H ;給BC兩相脈沖 </p>&l
24、t;p> ACALL DELAY ;調(diào)用延時子程序</p><p> MOV P1,#0CH ;給CD兩相脈沖</p><p> ACALL DELAY ;調(diào)用延時子程序</p><p> MOV P1,
25、#09H ;給DA兩相脈沖</p><p> ACALL DELAY ;調(diào)用延時子程序 </p><p> ANL 79H,#0FH ;取7EH低四位</p><p> ANL 7AH,#0FH ;取7D
26、H低四位</p><p> ANL 7BH,#0FH ;取7CH低四位</p><p> ANL 7CH,#0FH ;取7BH低四位</p><p> LCALL DIS ;調(diào)用顯示子程序</p><p> MOV
27、 R0,79H ;步數(shù)由設(shè)定值降至0停止</p><p> CJNE R0,#0,Z1</p><p> DEC 79H</p><p> MOV R0,7AH</p><p> CJNE R0,#0,Z2</p><p> DEC 7AH&
28、lt;/p><p> MOV R0,7BH</p><p> CJNE R0,#0,Z3</p><p> DEC 7BH</p><p> MOV R0,7CH</p><p> CJNE R0,#0,Z4</p><p> LJMP MAIN
29、</p><p> Z1: DEC 79H</p><p> LJMP ZHENG</p><p> Z2: DEC 7AH</p><p> LJMP ZHENG</p><p> Z3: DEC 7BH</p><
30、p> LJMP ZHENG</p><p> Z4: DEC 7CH</p><p> LJMP ZHENG</p><p> FAN: MOV P1,#09H ;給AD相脈沖 </p><p> ACALL DELAY
31、 ;調(diào)用延時子程序</p><p> MOV P1,#0CH ;給DC相脈沖</p><p> ACALL DELAY ;調(diào)用延時子程序</p><p> MOV P1,#06H ;給CB相脈沖</p><p>
32、 ACALL DELAY ;調(diào)用延時子程序</p><p> MOV P1,#03H ;給BA相脈沖</p><p> ACALL DELAY ;調(diào)用延時子程序</p><p> ANL 79H,#0FH
33、 ;取7EH低四位</p><p> ANL 7AH,#0FH ;取7DH低四位</p><p> ANL 7BH,#0FH ;取7CH低四位</p><p> ANL 7CH,#0FH ;取7BH低四位</p><p&
34、gt; LCALL DIS</p><p> MOV R0,79H ;步數(shù)自減部分</p><p> CJNE R0,#0,F(xiàn)1</p><p> DEC 79H</p><p> MOV R0,7AH</p><p> CJNE R0,#0
35、,F(xiàn)2</p><p> DEC 7AH</p><p> MOV R0,7BH</p><p> CJNE R0,#0,F(xiàn)3</p><p> DEC 7BH</p><p> MOV R0,7CH</p><p> CJNE R0,#0,F(xiàn)4</
36、p><p> LJMP MAIN</p><p> F1: DEC 79H</p><p> LJMP FAN</p><p> F2: DEC 7AH</p><p> LJMP FAN</p><p> F3: DEC
37、 7BH</p><p> LJMP FAN</p><p> F4: DEC 7CH</p><p> LJMP FAN</p><p> DELAY: MOV R1,7DH ;延時調(diào)速部分</p><p> DELAY1: ACAL
38、L DIS </p><p> MOV R1,DELAY1</p><p><b> RET</b></p><p> HERE: ACALL DIS</p><p> SJMP HERE</p><p> KEY1: ACALL KS1
39、 ;調(diào)用判斷有無鍵按下子程序</p><p> JNZ LK1 ;有鍵按下,轉(zhuǎn)消顫延時</p><p> ACALL DIS ;無鍵按下,調(diào)用顯示子程序</p><p> AJMP KEY1
40、 ;返回KEY1,繼續(xù)等待</p><p> LK1: ACALL DIS ;調(diào)用顯示子程序</p><p> ACALL T12 ;調(diào)用12ms延時子程序</p><p> ACALL KS1
41、 ;調(diào)用判斷有無鍵按下子程序,</p><p><b> 確認按鍵真實性</b></p><p> JNZ LK2 ;有鍵按下轉(zhuǎn)逐列掃描子程序</p><p> AJMP KEY1 ;否則返回KEY1,繼續(xù)等待</
42、p><p> LK2: MOV R2,#0FEH ;首列掃描字入R2</p><p> MOV R4,#0H ;首列號入R4</p><p> LK4: MOV DPTR,#0FFDDH ;列掃面字送至鍵掃口</p><
43、;p> MOV A,R2 ;第一次列掃描</p><p> MOVX @DPTR,A ;使第0列線為0</p><p> MOV DPTR,#0FFDEH ;指向鍵入口</p><p> MOVX A,@DPTR
44、 ;鍵入口讀入行狀態(tài)</p><p> JB ACC.0,LONE ;第0行無鍵按下,轉(zhuǎn)查第1行</p><p> MOV A,#00H ;第0行有鍵按下,該行首鍵號#00HA</p><p> AJMP LKP
45、 ;轉(zhuǎn)求鍵號</p><p> LONE: JB ACC.1,LTWO ;第1行無鍵按下,轉(zhuǎn)查第2行</p><p> MOV A,#08H ;第1行有鍵按下,該行首鍵號#08HA</p><p><b> AJMP LKP</b></p>
46、<p> LTWO:JB ACC.2,LTHR ;第2行無鍵按下,轉(zhuǎn)查第3行</p><p> MOV A,#10H ;第2行有鍵按下,該行首鍵號#10HA</p><p><b> AJMP LKP</b></p><p> LTHR:JB ACC.3,NEXT
47、 ;第3行無鍵按下,轉(zhuǎn)查下一列</p><p> MOV A,#18H ;第3行有鍵按下,該行首鍵號#18HA</p><p> LKP: ADD A,R4 ;求原理圖上的鍵號=行首鍵號+列號</p><p> MOV DPTR,#TAB1 ;查找TAB1,將實際
48、鍵號賦給A</p><p> MOVC A,@A+DPTR</p><p> PUSH ACC ;將鍵號壓入堆棧</p><p> LK3: ACALL DIS ;調(diào)用顯示子程序</p><p> ACALL KS1 ;等待鍵釋放</p>
49、;<p> JNZ LK3 ;未釋放,等待</p><p> POP ACC ;鍵釋放,鍵號A</p><p> RET ;鍵掃描結(jié)束,出口狀態(tài)(A)=實際鍵號</p><p> NEXT: INC R4 ;指
50、向下一列,列號加1</p><p> MOV A,R2 ;判斷8列是否掃描完</p><p> JNB ACC.7,KND ;8列掃描完,返回</p><p> RL A ;掃描字左移一位,轉(zhuǎn)變?yōu)橄乱涣袙呙枳?lt;/p><p> MOV R2,A
51、 ;掃描字入R2</p><p> AJMP LK4 ;轉(zhuǎn)下一列掃描</p><p> KND: AJMP KEY1</p><p> KS1: MOV DPTR,#0FFDDH ;指向鍵掃口</p><p> MOV A,#00H ;全掃描字#0H&l
52、t;/p><p> MOVX @DPTR,A ;全掃描字入鍵掃口</p><p> MOV DPTR,#0FFDEH ;指向鍵入口</p><p> MOVX A,@DPTR ;讀鍵入口行狀態(tài)</p><p> CPL A ;變正邏輯,以高電平表示有鍵按下&
53、lt;/p><p> ANL A,#0FH ;屏蔽高4位</p><p> RET ;出口狀態(tài),(A)=1時有鍵按下</p><p> T12: MOV R7,#18H ;延時12ms子程序</p><p> TM: MOV R6,#0FFH&
54、lt;/p><p> TM6: DJNZ R6,TM6</p><p> DJNZ R7,TM</p><p><b> RET</b></p><p> DIS: MOV R0,#0F9H ;顯示緩沖區(qū)首地址送R0</p><p> MOV R3,#01H
55、 ;使顯示器最右邊位亮</p><p><b> MOV A,R3</b></p><p> LD0: MOV DPTR,#0FFDDH ;掃描值送給字位口 </p><p> MOVX @DPTR,A </p><p> MO
56、V A,@R0 ;取顯示數(shù)據(jù) </p><p> MOV DPTR,#TAB ;取首地址</p><p> MOVC A,@A+DPTR ;取字形</p><p> MOV DPTR,#0FFDCH ;指向字形口&l
57、t;/p><p> MOVX @DPTR,A ;送出顯示</p><p> ACALL DL1 ;延時</p><p> INC R0 ;緩沖區(qū)地址加1</p><p><b> MOV A,R3</b></p&g
58、t;<p> JB ACC.5,LD1 ;判斷是否掃描到第六個顯示位</p><p> RL A ;若沒有,掃描下一位</p><p> MOV R3,A </p><p><b> AJMP
59、LD0</b></p><p><b> LD1:RET</b></p><p> DL1: MOV R7,#02H ;延時子程序</p><p> DL: MOV R6,#0FH</p><p> DLA: DJNZ R6,DLA</p><p>
60、; DJNZ R7,DL</p><p><b> RET</b></p><p><b> ORG 700H</b></p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH ;顯示字碼段</p><p> DB 6FH,77H,7CH,
61、39H,5EH,79H,71H,00H,40H,0FFH</p><p> TAB1:DB 7H,4H,8H,5H,9H,6H,0AH,0BH,1H,0H,2H ;健表</p><p> DB 0FH,3H,0EH,0CH,0DH,00H,00H,00H,00H</p><p> DB 00H,00H,16H</p><p>&
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機步進電機課程設(shè)計--單片機控制步進電機的設(shè)計
- 單片機課程設(shè)計--單片機控制步進電機
- 單片機課程設(shè)計-單片機控制步進電機
- 單片機-控制步進電機課程設(shè)計
- 單片機課程設(shè)計--步進電機控制
- 單片機課程設(shè)計報告——單片機控制步進電機
- 單片機課程設(shè)計---步進電機控制
- 單片機課程設(shè)計步進電機控制設(shè)計
- 單片機課程設(shè)計-步進電機的控制
- 單片機課程設(shè)計--步進電機角度控制
- 單片機課程設(shè)計——單片機控制步進電機控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計--步進電機
- 單片機課程設(shè)計--基于單片機的步進電機控制
- 單片機課程設(shè)計-步進電機的控制
- 單片機課程設(shè)計---步進電機
- 單片機課程設(shè)計報告--步進電機控制設(shè)計
- 單片機課程設(shè)計-步進電機
- 基于單片機的步進電機控制單片機課程設(shè)計
- 單片機課程設(shè)計--步進電機控制系統(tǒng)
- 單片機課程設(shè)計--步進電機控制器
評論
0/150
提交評論