熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2016-9-14 19:31
正文摘要:找到一對(duì)拆機(jī)的57步進(jìn)電機(jī) 是為以后的遙控小車做準(zhǔn)備 于是先做了一個(gè)驅(qū)動(dòng)試驗(yàn) 試驗(yàn)結(jié)果尚可 |
謝謝分享,正好在用57步進(jìn)電機(jī) |
非常好支持下 我拿來放在57上同是1.8角卻轉(zhuǎn)動(dòng)一點(diǎn)正反轉(zhuǎn) 不知哪里問題 |
我的這個(gè)是2個(gè)中心抽頭 所以出來6根線 5線的就是把2個(gè)抽頭合并成一個(gè)了 |
太詳細(xì)了,謝謝樓主分享,果斷收藏保存.我以前只驅(qū)動(dòng)過5線的步進(jìn)電機(jī) |
我寫的驅(qū)動(dòng)代碼 僅僅供壇友做參考 ;試驗(yàn)57步進(jìn)電機(jī)驅(qū)動(dòng)匯編代碼 ;11.0592MHz晶振+AT89C2051/4051 ;Lxa0最后修改于2016-9-17--V2.0 ;t0備用,t1產(chǎn)生9600波特率 ;p10p11p12p13分別對(duì)應(yīng)步進(jìn)電機(jī)ABCD,低電平有效 ;步進(jìn)角為1.8度,一圈360度,需要200個(gè)脈沖完成 ;A組線圈 P1.0 ;B組線圈 P1.1 ;C組線圈 P1.2 ;D組線圈 P1.3 org 0000h ajmp mm ;轉(zhuǎn)主程序 org 0023h ajmp qz ;轉(zhuǎn)串口讀取指令 ;主程序******************************************************* org 0100h mm:nop mov p1,#0ffh ;關(guān)閉全部 mov r0,#00h ;讀dptr首址用 mov r1,#00h ;存放正反轉(zhuǎn)脈沖數(shù)據(jù)(1圈200個(gè)脈沖,16制為c8h) mov r2,#00h ;存放改變轉(zhuǎn)速的數(shù)據(jù) mov r3,#00h ;備用 mov r4,#00h ;r4和r5短延時(shí)用 mov r5,#00h mov r6,#00h ;r6和r7長延時(shí)用 mov r7,#00h mov 20h,#00h ;20h設(shè)置wifi標(biāo)志 mov 21h,#00h ;21h設(shè)置動(dòng)作標(biāo)志 mov 22h,#00h ;動(dòng)作代碼存放單元 mov sp,#4fh ;設(shè)堆棧入口50h mov scon,#50h ;設(shè)置串口方式1,允許串口接收 mov pcon,#00h ;設(shè)置波特率9600 mov tmod,#21h ;T0設(shè)方式1,T1方式2(自動(dòng)重裝) mov th1,#0fdh ;T1設(shè)初始值 mov tl1,#0fdh ;TH1=TL1=#0fdh(波特率9600) clr et1 ;禁止T1中斷 clr ri clr ti setb tr1 ;開T1定時(shí)器 setb es ;開串口中斷 setb ea ;開總中斷 mm1:nop acall ssd ;雙閃溝? acall ssd acall ssd acall zz ;調(diào)用正轉(zhuǎn) acall ssd ;雙光燈 acall ssd acall ssd acall fz ;調(diào)用反轉(zhuǎn) sjmp mm1 ;正轉(zhuǎn)子程序*********************************************************************** ORG 0200H zz:push acc MOV R1,#0c8h ;正轉(zhuǎn)1圈發(fā)200個(gè)脈沖,單八拍 zz1:MOV R0,#00h zz2:mov p1,0ffh mov p1,#0ffh MOV A,R0 MOV DPTR,#0380h MOVC A,@A+DPTR JZ zz1 ;當(dāng)A=0時(shí)轉(zhuǎn)完1圈完畢 MOV P1,A LCALL ys ;這個(gè)時(shí)間是調(diào)速的,時(shí)間越長速度越慢 INC R0 DJNZ R1,zz2 MOV P1,#0ffh mov p1,#0ffh pop acc ret ;反轉(zhuǎn)子程序*********************************************************************** org 0280h fz:push acc MOV R1,#0c8h ;反轉(zhuǎn)1圈發(fā)200個(gè)脈沖,單八拍 fz1:MOV R0,#00H fz2:MOV P1,#0ffh mov p1,#0ffh MOV A,R0 MOV DPTR,#03c0h MOVC A,@A+DPTR JZ fz1 ;當(dāng)A=0時(shí)反轉(zhuǎn)1圈完畢 MOV P1,A CALL ys INC R0 DJNZ R1,fz2 MOV P1,#0ffh mov p1,#0ffh pop acc ret ;轉(zhuǎn)速控制子程序*********************************************************************** org 0300h ys:djnz r2,ys ;步進(jìn)電機(jī)的轉(zhuǎn)速 RET org 0380h TABLE1: DB 0feh,0fcH,0fdh,0f9H,0fbh,0f3H,0f7h,0f6H ;正轉(zhuǎn)表 DB 00h ;正傳結(jié)束 org 03c0h TABLE2: DB 0feh,0f6h,0f7h,0f3h,0fbh,0f9h,0fdh,0fch ;反轉(zhuǎn)表 DB 00h ;反轉(zhuǎn)結(jié)束 ;接收并取出串口接收到的數(shù)據(jù)指令******************************* org 0400h qz:nop clr ri ;先清零串口接收中斷位 qz00:reti ;閃光燈代碼*************************************************** org 0500h ssd:clr p3.7 ;Gled閃爍發(fā)光 acall dys setb p3.7 acall dys acall cys clr p3.7 acall dys setb p3.7 acall cys acall cys acall cys acall cys acall cys ret dys:mov r4,#0ffh ;短延時(shí) mov r5,#10h dys1:djnz r4,dys1 dys2:djnz r5,dys1 ret cys:mov r6,#0ffh ;長延時(shí) mov r7,#0ffh cys1:djnz r6,cys1 cys2:djnz r7,cys1 ret end ;四相八拍步進(jìn)電機(jī)順序 ;正轉(zhuǎn):A-AB-B-BC-C-CD-D-DA----------0feh,0fcH,0fdh,0f9H,0fbh,0f3H,0f7h,0f6h ;反轉(zhuǎn):A-AD-D-DC-C-CB-B-BA----------0feh,0f6h,0f7h,0f3h,0fbh,0f9h,0fdh,0fch |
Powered by 單片機(jī)教程網(wǎng)