步進電機單片機控制系統(tǒng)的設(shè)計_第1頁
步進電機單片機控制系統(tǒng)的設(shè)計_第2頁
步進電機單片機控制系統(tǒng)的設(shè)計_第3頁
步進電機單片機控制系統(tǒng)的設(shè)計_第4頁
步進電機單片機控制系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 哈 爾 濱 理 工 大 學 榮 成 學 院課程設(shè)計步進電機單片機控制系統(tǒng)的設(shè)計 姓名: &&&& 專業(yè): 電機與電器 班級: 0&&&&&& 學號: * 日期: 2012年5月10日 一、設(shè)計題目的背景 1.步進電機的原理步進電動機又稱為脈沖電動機,是數(shù)字控制系統(tǒng)的一種執(zhí)行元件,其功用是將脈沖信號變換為相應(yīng)的角位移或直線位移,既給一個脈沖電信號,電動機就轉(zhuǎn)動一個角度或前進一步。步進電動機的控制原理是通過它每相線圈的電流的順序切換來使電機作步進式旋轉(zhuǎn),驅(qū)動電路由脈沖控制,所以調(diào)節(jié)脈沖的頻率便可改 變步進電機的轉(zhuǎn)速,

2、微控制器最適合控制步進電機。此次設(shè)計步進電機共有四個相位(a、b、c、d),按轉(zhuǎn)動步驟分為單四拍(a 、 b 、 c 、 d 、 a)四相雙四拍:電機正轉(zhuǎn) ( ab 、 bc 、 cd 、 da 、ab) 電機反轉(zhuǎn) ( da、ab 、 bc 、 cd、 da)單雙8拍(a、 ab、 b、 bc、 c、cd 、 d、da、 a)2.應(yīng)用領(lǐng)域(1)應(yīng)用領(lǐng)域相當廣泛,只要是要有動力源的,而且對精度有要求的一般都可能涉及到伺服電機。如機床、印刷設(shè)備、包裝設(shè)備、紡織設(shè)備、激光加工設(shè)備、機器人、自動化生產(chǎn)線等對工藝精度、加工效率和工作可靠性等要求相對較高的設(shè)備。(2)廣泛應(yīng)用于atm機、噴繪機、刻字機、寫

3、真機、噴涂設(shè)備、醫(yī)療儀器及設(shè)備、計算機外設(shè)及海量存儲設(shè)備、精密儀器、工業(yè)控制系統(tǒng)、辦公自動化、機器人等領(lǐng)域。特別適合要求運行平穩(wěn)、低噪音、響應(yīng)快、使用壽命長、高輸出扭矩的應(yīng)用場合。(3)步進電機在電腦繡花機等紡織機械設(shè)備中有著廣泛的應(yīng)用,這類步進電機的特點是保持轉(zhuǎn)矩不高,頻繁啟動反應(yīng)速度快、運轉(zhuǎn)噪音低、運行平穩(wěn)、控制性能好、整機成本低。二、設(shè)計原理1、設(shè)計目的(1)了解步進電機的基本原理,掌握步進電機的轉(zhuǎn)動編程方法 (2)了解影響電機轉(zhuǎn)速的因素有哪些2、方案的比較在于對步進電機的控制和驅(qū)動,設(shè)計中受控電機為四相六線制的的步進電機。方案一:使用多個功率放大器驅(qū)動電機通過使用不同的放大電路和不同參

4、數(shù)的器件,可是達到不同的放大要求,放大后能夠得到較大的功率,但是由于使用的是四相的步進電機,就需要對四路信號分別放大,而放大電路很難達到完全一致,當電機的功率較大時運行會不穩(wěn)定,而電路的制作也比較復雜。方案二:使用uln2003芯片驅(qū)動電機uln2003可以驅(qū)動兩個二相電機,也可以驅(qū)動一個四相電機,它工作電壓高,工作電流大,并且能夠在關(guān)太時承受50v的電壓,輸出還可以在高負載電流并行運行,可直接用單片機的i/o口提供信號;而且電路簡單,使用比較方便。通過比較,使用uln2003芯片充分發(fā)揮了它的功能,能穩(wěn)定地驅(qū)動步進電機,且價格不高,故選用uln2003驅(qū)動電機。三、電路設(shè)計 1.單片機型號的

5、選擇80c51單片機屬于mcs-51系列單片機,增加了如乘(mul)、除(div)、減(subb)、比較(push)、16位數(shù)據(jù)指針、布爾代數(shù)運算等指令,以及串行通信能力和5個中斷源。采用40引腳雙列直插式dip(dual in line package),內(nèi)有128個ram單元及4k的rom。80c51有兩個16位定時計數(shù)器,兩個外中斷,兩個定時計數(shù)中斷,及一個串行中斷,并有4個8位并行輸入口。80c51內(nèi)部有時鐘電路,但需要石英晶體和微調(diào)電容外接,本系統(tǒng)中采用12mhz的晶振頻率。由于80c51的系統(tǒng)性能滿足系統(tǒng)數(shù)據(jù)采集及時間精度的要求,而且產(chǎn)品產(chǎn)量豐富來源廣,應(yīng)用也很成熟,故采用來作為控

6、制核心。 80c31單片機,它是8位高性能單片機結(jié)合了hmos的高速和高密度技術(shù)及chmos的低功耗特征。80c31內(nèi)置中央處理單元、128字節(jié)內(nèi)部數(shù)據(jù)存儲器ram、32個雙向輸入/輸出(i/o)口、2個16位定時/計數(shù)器和5個兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。但80c31片內(nèi)并無程序存儲器,需外接rom。此外,80c31還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)cpu而ram定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存ram數(shù)據(jù),時鐘振蕩停止,同時停止芯片內(nèi)其它功能。 綜上,所以選擇80c51單片機.2.硬件電路設(shè)計四、 軟件設(shè)計1、

7、程序框圖nynynnnn0->需要刷新顯示標志1->步進電機未轉(zhuǎn)動過標志1->轉(zhuǎn)動方向標志(1:表示順時針方向)33h->下次送給步進電機值5->步進電機轉(zhuǎn)速初始化8255(pc口輸出)初始化8253(計數(shù)器t0設(shè)置在模式2狀態(tài),bcd碼計數(shù),clk0/210)初始化8259(允許8253中斷)初始化8253中斷向量初始化顯示緩沖區(qū):(數(shù)碼管第8位:0,順時針方向;5、7位消隱;6位:轉(zhuǎn)速;1、2、3、4位:0,表示連續(xù)轉(zhuǎn)動,其他值表示需要轉(zhuǎn)動的步數(shù))調(diào)用顯示子程序有鍵按下需要刷新顯示標志=10->需要刷新顯示標志調(diào)用步數(shù)調(diào)整子程序關(guān)中斷(終止步進電機轉(zhuǎn)動)

8、數(shù)碼管的1、2、3位->2、3、4位鍵值送給數(shù)碼管的第一位調(diào)用改變轉(zhuǎn)向子程序鍵值>9鍵值=0ah調(diào)用增速子程序調(diào)用減速子程序調(diào)用啟動步進電機子程序y鍵值=0bh鍵值=0ch鍵值=0dh開始yyy改變方向子程序:yynny開始轉(zhuǎn)動方向標志=091h->下次送給步進電機值下次送給步進電機值循環(huán)右移二次1->轉(zhuǎn)動方向標志0->送給數(shù)碼管的第7位步進電機未轉(zhuǎn)動過標志33h->下次送給步進電機值下次送給步進電機值循環(huán)左移二次0->轉(zhuǎn)動方向標志1->送給數(shù)碼管的第7位步進電機未轉(zhuǎn)動過標志返回啟動步進電機子程序:yny開始0->步進電機未轉(zhuǎn)動過標志取轉(zhuǎn)動

9、步數(shù)取轉(zhuǎn)速對應(yīng)的延時值(轉(zhuǎn)速延時)初始轉(zhuǎn)速延時1=初始轉(zhuǎn)速延時轉(zhuǎn)速延時< 50初始轉(zhuǎn)速延時=50返回開定時器0初始轉(zhuǎn)速延時=轉(zhuǎn)速延時增速子程序:yn開始轉(zhuǎn)速=11轉(zhuǎn)速+1轉(zhuǎn)速送給數(shù)碼管第5位返回減速子程序:ny開始轉(zhuǎn)速=0轉(zhuǎn)速-1轉(zhuǎn)速送給數(shù)碼管第5位返回nnynnnyyny初始轉(zhuǎn)速延時1=轉(zhuǎn)速延時初始轉(zhuǎn)速延時 -1=0時初始轉(zhuǎn)速延時1 - 1初始轉(zhuǎn)速延時=初始轉(zhuǎn)速延時11-1轉(zhuǎn)動方向標志=0時下次送給步進電機值循環(huán)右移一次1-1轉(zhuǎn)動步數(shù)=0時1->需要刷新顯示標志轉(zhuǎn)動步數(shù)減一1-1轉(zhuǎn)動步數(shù)=0時關(guān)中斷開始下次送給步進電機值循環(huán)左移一次1-1返回下次送給步進電機值->p1口(控

10、制步進電機轉(zhuǎn)動一步)y2.完整程序extrncode(init8279,scan_key,display8)main_codesegmentcodemain_bitsegmentbitmain_datasegmentdatastack segmentidata;public init8279,scan_key,display8cmd_8279xdata0bf01hdata_8279xdata0bf00hrsegmain_datastepcontrol:ds1buffer:ds8speedno: ds1stepdelay:ds1startstepdelay:ds1startstepdelay1:

11、ds1rsegmain_bitbfirst:dbit1bclockwise:dbit1bneeddisplay: dbit1rsegstackds20hcsegat0000hljmpstarcsegat000bhljmptimer0rsegmain_codestar:movsp,#stack-1acallinit8279setbbfirst setb bclockwisemovstepcontrol,#33hmov speedno,#5movtmod,#02hmovth0,#55movtl0,#55movie,#82hmovbuffer+7,#0movbuffer+6,#0movbuffer+

12、5,#0movbuffer+4,#0movbuffer+3,#10hmovbuffer+2,speednomovbuffer+1,#10hmovbuffer,#0star2:movr0,#bufferacalldisplay8star3:acallscan_keyjcstar5jnbbneeddisplay,star3clrbneeddisplayacallstep_sub_1sjmpstar2star5:clrtr0cjnea,#10,$+3jncstar1movbuffer+4,buffer+5movbuffer+5,buffer+6movbuffer+6,buffer+7movbuffe

13、r+7,asjmpstar2star1:cjnea,#14,$+3jncstar3movdptr,#drivertabclrcsubba,#10rlajmpa+dptrdrivertab:sjmpdirectionsjmpspeed_upsjmpspeed_downsjmpexecdirection:cplbclockwisejbbclockwise,clockwisemovbuffer,#1anticlockwise:jnbbfirst,anticlockwise1movstepcontrol,#91hsjmpdirection1anticlockwise1:mova,stepcontrol

14、rrarramovstepcontrol,asjmpdirection1clockwise:movbuffer,#0jnbbfirst,clockwise1movstepcontrol,#33hsjmpdirection1clockwise1:mova,stepcontrolrlarlamovstepcontrol,adirection1: sjmp star2speed_up: mov a,speedno cjnea,#11,speed_up1 sjmpspeed_up2speed_up1:incspeedno movbuffer+2,speednospeed_up2:sjmpstar2sp

15、eed_down:mova,speedno jzspeed_down1 decspeedno movbuffer+2,speednospeed_down1:sjmpstar2exec:clrbfirst acalltakestepcount movdptr,#stepdelaytab mova,speedno movca,a+dptr movstepdelay,a cjnea,#50,$+3 jncexec1 mova,#50exec1: movstartstepdelay,a movstartstepdelay1,a setbtr0 ajmpstar2stepdelaytab:db250,1

16、25,83,62,50,42,36,32,28,25,22,21timer0:pushacc djnzstartstepdelay,timer0_1 mova,startstepdelay1 cjnea,stepdelay,timer0_5 sjmptimer0_2timer0_5:deca movstartstepdelay1,atimer0_2:movstartstepdelay,a mova,stepcontrol cpla movp1,a cpla jbbclockwise,timer0_3 rra sjmptimer0_4timer0_3:rlatimer0_4:movstepcon

17、trol,a mova,r6 orla,r7 jztimer0_1 setbbneeddisplay djnzr7,timer0_1 djnzr6,timer0_1 clrtr0timer0_1:popacc retistep_sub_1:movr5,#4 movr0,#buffer+7step_sub_1_1: mova,r0 decr0 jnzstep_sub_1_2 movr0,#9 decr0 djnzr5,step_sub_1_1step_sub_1_2:rettakestepcount:mova,buffer+4 movb,#10 mulab adda,buffer+5 movb,

18、#10 mulab adda,buffer+6 movr7,a mova,b addca,#0 movb,#10 mulab xcha,r7 movb,#10 mulab xcha,b adda,r7 xcha,b adda,buffer+7 movr7,a mova,b addca,#0 movr6,a cjner7,#0,takestepcount1 rettakestepcount1:incr6 retinit8279: mova,#34h movxdptr,a clra movdptr,#cmd_8279 movxdptr,ainit8279_1: callclear mova,#90

19、h movxdptr,a retclear:mova,#0deh movdptr,#cmd_8279 movxdptr,await1:movxa,dptr jbacc.7,wait1 retscan_key:movdptr,#cmd_8279 movxa,dptrread_fifo:anla,#7 jzno_keyread:mova,#40h movxdptr,a movdptr,#data_8279 movxa,dptr acallkey_num setbcscan_key1: retno_key:clrc sjmpscan_key1key_num:anla,#3fh retwrite_data: movdptr,#data_8279 movxdptr,a retled_tab:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb080h,90h,88h,83h,0c6h,0a1h,86h,8eh,0ffhretdisplay8:push07hmovdptr,#led_tabmov

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論