單片機(jī)控制步進(jìn)電機(jī)1步10步100步正反轉(zhuǎn)
1)
步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件.在非超載的情況下,電機(jī)的轉(zhuǎn)速,停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響.即給電機(jī)加一個信號,電機(jī)則轉(zhuǎn)過一個步距角.這一線形關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無積累誤差等特點(diǎn),使得在線速度,位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡單.
2)
使用單片機(jī)以軟件方式驅(qū)動步進(jìn)電機(jī)通過編輯方法,對步進(jìn)電機(jī)的轉(zhuǎn)速,往返轉(zhuǎn)動的角度以及轉(zhuǎn)動次數(shù)等進(jìn)行控制使其在一定的范圍下進(jìn)行,還可以方便靈活的控制步進(jìn)電機(jī)的運(yùn)行狀態(tài):
3)原理圖:
4)連接圖:
輸出端 | 輸入端 | ||||
A | C1 | P2.0 | KM1 | P1.0 | 1B |
B | C2 | P2.1 | KM2 | P1.1 | 2B |
C | C3 | P2.2 | KM3 | P1.2 | 3B |
D | C4 | P2.3 | KM4 | P1.3 | 4B |
P2.4 | KM5 |
5)運(yùn)用元件及電路圖
元件名稱 | 型號 | 件數(shù) |
單片機(jī) | AT89C51 | 1 |
晶振 | CRYSTAL | 1 |
電容 | CAP | 2 |
電阻 | RES | 1 |
步進(jìn)電機(jī) | STEPER | 1 |
步進(jìn)電機(jī)芯片 | ULN2003A | 1 |
按鈕 | BUTTON | 6 |
二、 實(shí)驗(yàn)程序
org 0000H
start:
jnb p2.0,step
jnb p2.1,step
sjmp start
step:
jnb p2.2,one
jnb p2.3,ten
jnb p2.4,hundred
ljmp start
one:
mov r0,#2
jnb p2.0,zh1
jnb p2.1,fan1
ljmp start
ten:
mov r0,#10
jnb p2.0,zh1
jnb p2.1,fan1
ljmp start
hundred:
mov r0,#100
jnb p2.0,zh1
jnb p2.1,fan1
ljmp start
zh1:
mov p1,#03H
lcall delay
jnb p2.7,stop
djnz r0,zh2
ljmp stop
zh2:
mov p1,#06H
lcall delay
jnb p2.7,stop
djnz r0,zh3
ljmp stop
zh3:
mov p1,#0cH
lcall delay
jnb p2.7,stop
djnz r0,zh4
ljmp stop
zh4:
mov p1,#09H
lcall delay
jnb p2.7,stop
djnz r0,zh1
sjmp stop
fan1:
mov p1,#09H
lcall delay
jnb p2.7,stop
djnz r0,fan2
ljmp stop
fan2:
mov p1,#0cH
lcall delay
jnb p2.7,stop
djnz r0,fan3
ljmp stop
fan3:
mov p1,#06H
lcall delay
jnb p2.7,stop
djnz r0,fan4
ljmp stop
fan4:
mov p1,#03H
lcall delay
jnb p2.7,stop
djnz r0,fan1
sjmp stop
stop:
mov p1,#00H
ljmp start
delay:
mov r2,#200
d1:mov r1,#200
djnz r1,$
djnz r2,d1
ret
end
三、調(diào)試記錄:
當(dāng)程序編譯完成后,下載到單片機(jī)中后,在運(yùn)行過程當(dāng)中時發(fā)現(xiàn)按下10步按鈕無法運(yùn)行,其他都正常運(yùn)行,回到程序檢查時發(fā)現(xiàn)10步程序編寫出現(xiàn)錯誤,經(jīng)過改正后,可以運(yùn)行.
評論