

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計 </b></p><p> 題目:單片機控制步進電機的設(shè)計</p><p> 姓名: </p><p> 專業(yè): </p><p> 學(xué)號:
2、 </p><p> 2011年10月22日</p><p> 單片機控制步進電機的設(shè)計</p><p><b> 一、設(shè)計題目的背景</b></p><p><b> 1、步進電機的原理</b></p><p>
3、 步進電動機又稱為脈沖電動機,是數(shù)字控制系統(tǒng)的一種執(zhí)行元件,其功用是將脈沖信號變換為相應(yīng)的角位移或直線位移,既給一個脈沖電信號,電動機就轉(zhuǎn)動一個角度或前進一步,根據(jù)結(jié)構(gòu)和工作原理,步進電動機分為:永磁式、混合式、反應(yīng)式。單片機在應(yīng)用系統(tǒng)中應(yīng)用較多是反應(yīng)式步進電動機,反應(yīng)式步進電動機具有步進頻率高、頻率 相應(yīng)快等優(yōu)點。</p><p> 步進電動機的控制原理是通過它每相線圈的電流的順序切換來使電機作步進式旋轉(zhuǎn),驅(qū)
4、動電路由脈沖控制,所以調(diào)節(jié)脈沖的頻率便可改 變步進電機的轉(zhuǎn)速,微控制器最適合控制步進電機。</p><p> 此次設(shè)計步進電機共有四個相位(A、B、C、D),按轉(zhuǎn)動步驟分為單四拍(A 、 B 、 C 、 D 、 A)</p><p> 四相雙四拍:電機正轉(zhuǎn) ( AB 、 BC 、 CD 、 DA 、AB)</p><p> 電機反轉(zhuǎn)
5、 ( DA、AB 、 BC 、 CD、 DA)</p><p> 單雙8拍(A、 AB、 B、 BC、 C、CD 、 D、DA、 A)</p><p><b> 2、應(yīng)用領(lǐng)域</b></p><p> 目前,我國以較多地將步進電動機用于機械加工的數(shù)字程序控制機床中,在繪圖機、軋鋼機的自動控制,自動記錄儀表和數(shù)模變換等方面也得到很多應(yīng)用。
6、</p><p><b> 二、設(shè)計原理</b></p><p><b> 1、設(shè)計目的</b></p><p> ?。?)了解步進電機的基本原理,掌握步進電機的轉(zhuǎn)動編程方法 </p><p> ?。?)了解影響電機轉(zhuǎn)速的因素有哪些</p><p><b>
7、三、電路設(shè)計</b></p><p><b> 1、單片機的選型</b></p><p> 現(xiàn)在普遍的用的是80C31和80C51,80C51的EA加上高低電平,決定單片機訪問內(nèi)部或外部的程序存儲器,EA高電平時,訪問內(nèi)部程序存儲器,但當(dāng)程序計數(shù)器(PC)值超過0FFH時單片機自動轉(zhuǎn)向外部程序存儲器。當(dāng)EA為低電平時,不管單片機有無內(nèi)部存儲器,只訪問外
8、部存儲器。80C31沒有內(nèi)部存儲器,所以EA必須接地,這樣單片機只能選擇外部程序存儲器。所以80C51性能比較好。</p><p><b> 2、硬件電路圖</b></p><p><b> 四 軟件設(shè)計</b></p><p><b> 1、程序框圖</b></p><
9、;p><b> 2、完整的程序</b></p><p> ;EXTRNCODE(INIT8279,SCAN_KEY,Display8)</p><p> MAIN_CODESEGMENTCODE</p><p> MAIN_BITSEGMENTBIT</p><p> MAIN_DATA
10、SEGMENTDATA</p><p> STACKSEGMENTIDATA</p><p> ;PUBLICINIT8279,SCAN_KEY,Display8</p><p> CMD_8279XDATA0bF01H</p><p> DATA_8279XDATA0bF00H</p>
11、<p> RSEGMAIN_DATA</p><p> StepControl:DS1</p><p> buffer:DS8</p><p> SpeedNo: DS1</p><p> StepDelay:DS1</p><p> StartSte
12、pDelay:DS1</p><p> StartStepDelay1:DS1</p><p> RSEGMAIN_BIT</p><p> bFirst:DBIT1</p><p> bClockwise:DBIT1</p><p> bNeedDisplay: DBIT
13、1</p><p> RSEGSTACK</p><p><b> DS20H</b></p><p> CSEGAT0000H</p><p> LJMPSTAR</p><p> CSEGAT000BH</p><p> LJMP
14、TIMER0</p><p> RSEGMAIN_CODE</p><p> STAR:MOVSP,#STACK-1</p><p> ACALL INIT8279</p><p> SETBbFirst</p><p> SETB bClockwis
15、e</p><p> MOVStepControl,#33H</p><p> MOV SpeedNo,#5</p><p> MOVTMOD,#02H</p><p> MOVTH0,#55</p><p> MOVTL0,#55</p><p&g
16、t; MOVIE,#82H</p><p> MOVBuffer+7,#0</p><p> MOVbuffer+6,#0</p><p> MOVbuffer+5,#0</p><p> MOVbuffer+4,#0</p><p> MOVbuffer+3,#10H</p&
17、gt;<p> MOVbuffer+2,SpeedNo</p><p> MOVbuffer+1,#10H</p><p> MOVbuffer,#0</p><p> STAR2:MOVR0,#buffer</p><p> ACALLDisplay8</p><p>
18、 STAR3:ACALLScan_Key</p><p><b> JCSTAR5</b></p><p> JNBbNeedDisplay,STAR3</p><p> CLRbNeedDisplay</p><p> ACALLStep_SUB_1</p><p&
19、gt; SJMPSTAR2</p><p> STAR5:CLRTR0</p><p> CJNEA,#10,$+3</p><p> JNCSTAR1</p><p> MOVbuffer+4,buffer+5</p><p> MOVbuffer+5,buffer+6<
20、/p><p> MOVbuffer+6,buffer+7</p><p> MOVBuffer+7,A</p><p> SJMPSTAR2</p><p> STAR1:CJNEA,#14,$+3</p><p> JNCSTAR3</p><p> MOV
21、DPTR,#DriverTab</p><p><b> CLRC</b></p><p> SUBBA,#10</p><p><b> RLA</b></p><p> JMP@A+DPTR</p><p> DriverTab:SJMPD
22、irection</p><p> SJMPSpeed_up</p><p> SJMPSpeed_Down</p><p> SJMPExec</p><p> Direction:CPLbClockwise</p><p> JBbClockwise,Clockwise</p&
23、gt;<p> MOVbuffer,#1</p><p> AntiClockwise:JNBbFirst,AntiClockwise1</p><p> MOVStepControl,#91H</p><p> SJMPDirection1</p><p> AntiClockwise1:MOVA
24、,StepControl</p><p><b> RRA</b></p><p><b> RRA</b></p><p> MOVStepControl,A</p><p> SJMPDirection1</p><p> Clockwise:
25、MOVbuffer,#0</p><p> JNBbFirst,Clockwise1</p><p> MOVStepControl,#33H</p><p> SJMPDirection1</p><p> Clockwise1:MOVA,StepControl</p><p><
26、b> RLA</b></p><p><b> RLA</b></p><p> MOVStepControl,A</p><p> Direction1: SJMP STAR2</p><p> Speed_up: MOV A
27、,SpeedNo</p><p> CJNEA,#11,Speed_up1</p><p> SJMPspeed_up2</p><p> Speed_up1:INCSpeedNo</p><p> MOVbuffer+2,SpeedNo</p><p> Speed_up2:SJMP
28、STAR2</p><p> Speed_Down:MOVA,SpeedNo</p><p> JZSpeed_Down1</p><p> DECSpeedNo</p><p> MOVbuffer+2,SpeedNo</p><p> Speed_Down1:SJMPSTAR
29、2</p><p> Exec:CLRbFirst</p><p> ACALLTakeStepCount</p><p> MOVDPTR,#StepDelayTab</p><p> MOVA,SpeedNo</p><p> MOVCA,@A+DPTR</p>&
30、lt;p> MOVStepDelay,A</p><p> CJNEA,#50,$+3</p><p> JNCExec1</p><p> MOVA,#50</p><p> Exec1:MOVStartStepDelay,A</p><p> MOVStartStep
31、Delay1,A</p><p><b> SETBTR0</b></p><p> AJMPSTAR2</p><p> StepDelayTab:DB250,125,83,62,50,42,36,32,28,25,22,21</p><p> TIMER0:PUSHACC</p
32、><p> DJNZStartStepDelay,TIMER0_1</p><p> MOVA,StartStepDelay1</p><p> CJNEA,StepDelay,TIMER0_5</p><p> SJMPTIMER0_2</p><p> TIMER0_5:DECA<
33、;/p><p> MOVStartStepDelay1,A</p><p> TIMER0_2:MOVStartStepDelay,A</p><p> MOVA,StepControl</p><p><b> CPLA</b></p><p><b> MO
34、VP1,A</b></p><p><b> CPLA</b></p><p> JBbClockwise,TIMER0_3</p><p><b> RRA</b></p><p> SJMPTIMER0_4</p><p> TI
35、MER0_3:RLA</p><p> TIMER0_4:MOVStepControl,A</p><p><b> MOVA,R6</b></p><p><b> ORLA,R7</b></p><p> JZTIMER0_1</p><p
36、> SETBbNeedDisplay</p><p> DJNZR7,TIMER0_1</p><p> DJNZR6,TIMER0_1</p><p><b> CLRTR0</b></p><p> TIMER0_1:POPACC</p><p><
37、;b> RETI</b></p><p> Step_SUB_1:MOVR5,#4</p><p> MOVR0,#buffer+7</p><p> Step_SUB_1_1:MOVA,@R0</p><p><b> DEC@R0</b></p><
38、;p> JNZStep_SUB_1_2</p><p> MOV@R0,#9</p><p><b> DECR0</b></p><p> DJNZR5,Step_SUB_1_1</p><p> Step_SUB_1_2:RET</p><p> TakeS
39、tepCount:MOVA,buffer+4</p><p> MOVB,#10</p><p><b> MULAB</b></p><p> ADDA,buffer+5</p><p> MOVB,#10</p><p><b> MULAB<
40、;/b></p><p> ADDA,buffer+6</p><p><b> MOVR7,A</b></p><p><b> MOVA,B</b></p><p> ADDCA,#0</p><p> MOVB,#10</p&g
41、t;<p><b> MULAB</b></p><p><b> XCHA,R7</b></p><p> MOVB,#10</p><p><b> MULAB</b></p><p><b> XCHA,B</b
42、></p><p><b> ADDA,R7</b></p><p><b> XCHA,B</b></p><p> ADDA,buffer+7</p><p><b> MOVR7,A</b></p><p><b
43、> MOVA,B</b></p><p> ADDCA,#0</p><p><b> MOVR6,A</b></p><p> CJNER7,#0,TakeStepCount1</p><p><b> RET</b></p><p&
44、gt; TakeStepCount1:INCR6</p><p><b> RET</b></p><p> INIT8279: MOVA,#34H</p><p> MOVX@DPTR,A</p><p><b> CLRA</b></p>&
45、lt;p> MOVDPTR,#CMD_8279</p><p> MOVX@DPTR,A</p><p> INIT8279_1: CALLCLEAR</p><p> MOVA,#90H</p><p> MOVX@DPTR,A</p><p><b> RET
46、</b></p><p> CLEAR:MOVA,#0DEH</p><p> MOVDPTR,#CMD_8279</p><p> MOVX@DPTR,A</p><p> WAIT1: MOVXA,@DPTR</p><p> JBACC.7,WAIT1<
47、;/p><p><b> RET</b></p><p> SCAN_KEY: MOVDPTR,#CMD_8279</p><p> MOVXA,@DPTR</p><p> READ_FIFO: ANLA,#7</p><p> JZNO_KEY</p&g
48、t;<p> READ: MOVA,#40H</p><p> MOVX@DPTR,A</p><p> MOVDPTR,#DATA_8279</p><p> MOVXA,@DPTR</p><p> ACALLKEY_NUM</p><p><b>
49、SETBC</b></p><p> SCAN_KEY1: RET</p><p> NO_KEY: CLRC</p><p> SJMPSCAN_KEY1</p><p> KEY_NUM: ANLA,#3FH</p><p><b> RET</
50、b></p><p> WRITE_DATA:MOVDPTR,#DATA_8279</p><p> MOVX@DPTR,A</p><p><b> RET</b></p><p> LED_TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H</p&g
51、t;<p> DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH</p><p><b> RET</b></p><p> Display8:PUSH07H</p><p> MOVDPTR,#LED_TAB</p><p> MOVP2,#HIGH
52、(CMD_8279)</p><p> MOVR1,#LOW(CMD_8279)</p><p> MOVA,#90H</p><p> MOVX@R1,A;第一位開始顯示</p><p> MOVR1,#LOW(DATA_8279)</p><p><b> MOVR7,#8<
53、/b></p><p> Display81:MOVA,@R0</p><p> MOVCA,@A+DPTR</p><p> MOVX@R1,A</p><p><b> INCR0</b></p><p> DJNZR7,Display81</p>&
54、lt;p><b> POP07H</b></p><p><b> RET</b></p><p><b> END</b></p><p><b> 五、結(jié)語</b></p><p> 利用G5區(qū)的鍵盤可以控制步進電機的正反轉(zhuǎn),調(diào)節(jié)轉(zhuǎn)速
55、,連續(xù)轉(zhuǎn)動或轉(zhuǎn)動指定步數(shù);相應(yīng)的數(shù)據(jù)都會顯示在數(shù)碼管上。G5區(qū)的鍵盤A可以控制步進電機的正反轉(zhuǎn),當(dāng)數(shù)碼管的最高位為0為正轉(zhuǎn),為1時是反轉(zhuǎn)。B、C可以調(diào)節(jié)轉(zhuǎn)速,C可將轉(zhuǎn)速往上調(diào),B可將轉(zhuǎn)速往下調(diào)。</p><p> 本設(shè)計系統(tǒng)各種芯片選型都是市場上常用的芯片,價格便宜,資源開放。例如步進電機驅(qū)動電路由功率放大芯片ULN2003進行電流電壓的放大,最高耐壓50V,輸出可以在高負載電流并行運行;可以直接用單片機的IO
56、口提供信號;而且電路簡單,使用比較方便。</p><p> 此次設(shè)計從整體布局,系統(tǒng)設(shè)計直到最后完成,每個流程下來,都帶給我很多新的東西,再次用到Protel99se,使我對此軟件又加深了運用。我還學(xué)會了無底紋的截圖法,使截的圖更加的清晰。這次設(shè)計我從圖書館、上網(wǎng)查閱了相關(guān)的資料,使我對單片機有進一步的了解,對步進電機有一定的認識。</p><p> 此次設(shè)計的不足之處是有的芯片找的不
57、太合適,畫得有點亂,鍵盤顯示的程序不好用,</p><p> 讓我在以后的設(shè)計更加謹慎,盡量做的盡善盡美。</p><p><b> 六、參考文獻</b></p><p> [1] 陳隆昌、 閻治安 、劉新正編著. 控制電機西安電子科技大學(xué)出版社,西安,2010 </p><p> [2] 楊居義. 單片
58、機課程設(shè)計指導(dǎo). 清華大學(xué)出版社,北.京,2009</p><p> 【3】 張小林、崔浩. 51系列單片機常用模塊設(shè)計查詢手冊.清華大學(xué)出版社,北京,2010</p><p> 【4】 張文灼 .單片機應(yīng)用技術(shù). 機械工業(yè)出版社, 北京,2009</p><p> 【5】 林春泉. 單片機原理及應(yīng)用. 機械工業(yè)出版社,北京,2009</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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計--單片機控制步進電機
- 單片機課程設(shè)計-單片機控制步進電機
- 單片機課程設(shè)計報告——單片機控制步進電機
- 單片機-控制步進電機課程設(shè)計
- 單片機課程設(shè)計--步進電機控制
- 單片機課程設(shè)計--步進電機
- 單片機課程設(shè)計---步進電機控制
- 單片機課程設(shè)計---步進電機
- 單片機課程設(shè)計--基于單片機的步進電機控制
- 單片機課程設(shè)計步進電機控制設(shè)計
- 單片機課程設(shè)計-步進電機
- 單片機課程設(shè)計-步進電機的控制
- 單片機課程設(shè)計——單片機控制步進電機控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計-步進電機的控制
- 基于單片機的步進電機控制單片機課程設(shè)計
- 單片機課程設(shè)計--步進電機角度控制
- 單片機課程設(shè)計---步進電機控制 (2)
- 單片機課程設(shè)計報告--步進電機控制設(shè)計
- 單片機課程設(shè)計--基于單片機的四相步進電機控制
- 單片機課程設(shè)計——基于單片機的步進電機控制器設(shè)計
評論
0/150
提交評論