四相步进电机的设计
发布时间:2008/10/6 0:00:00 访问次数:728
该驱动器根据拨码开关kx、ky的不同组合有三种工作方式供选择:
方式1为中断方式:p3.5(int1)为步进脉冲输入端,p3.7为正反转脉冲输入端。上位机(pc机或单片机)与驱动器仅以2条线相连。
方式2为串行通讯方式:上位机(pc机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。
方式3为拨码开关控制方式:通过k1~k5的不同组合,直接控制步进电机。
当上电或按下复位键kr后,at89c2051先检测拨码开关kx、ky的状态,根据kx、ky 的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。
在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20h单元的各位为步进电机正转标志位;21h单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。
图1 方式1程序框图
方式1源程序:
mov 20h,#00h ;20h单元置初值,电机正转位置指针
mov 21h,#00h ;21h单元置初值,电机反转位置指针
mov p1,#0c0h ;p1口置初值,防止电机上电短路
mov tmod,#60h ;t1计数器置初值,开中断
mov tl1,#0ffh
mov th1,#0ffh
setb et1
setb ea
setb tr1
sjmp $
;***********计数器1中断程序************
it1p: jb p3.7,fan ;电机正、反转指针
;*************电机正转*****************
jb 00h,loop0
jb 01h,loop1
jb 02h,loop2
jb 03h,loop3
jb 04h,loop4
jb 05h,loop5
jb 06h,loop6
jb 07h,loop7
loop0: mov p1,#0d0h
mov 20h,#02h
mov 21h,#40h
ajmp quit
loop1: mov p1,#090h
mov 20h,#04h
mov 21h,#20h
ajmp quit
loop2: mov p1,#0b0h
mov 20h,#08h
mov 21h,#10h
ajmp quit
loop3: mov p1,#030h
mov 20h,#10h
mov 21h,#08h
ajmp quit
loop4: mov p1,#070h
mov 20h,#20h
mov 21h,#04h
ajmp quit
loop5: mov p1,#060h
mov 20h,#40h
mov 21h,#02h
ajmp quit
loop6: mov p1,#0e0h
mov 20h,#80h
mov 21h,#01h
ajmp quit
loop7: mov p1,#0c0h
mov ; 20h,#01h
mov 21h,#80h
ajmp quit
;***************电机反转*****************
fan: jb 08h,looq0
jb 09h,looq1
jb 0ah,looq2
jb 0bh,looq3
jb 0ch,looq4
jb 0dh,looq5
jb 0eh,looq6
jb 0fh,looq7
looq0: mov p1,#0a0h
mov 21h,#02h
mov 20h,#40h
ajmp quit
looq1: mov p1,#0e0h
mov 21h,#04h
mov 20h,#20h
ajmp quit
looq2: mov p1,#0c0h
mov 21h,#08h
mov 20h,#10h
ajmp quit
looq3: mov p1,#0d0h
mov 21h,#10h
mov 20h,#08h
ajmp quit
looq4: mov p1,#050h
mov 21h,#20h
mov 20h,#04h
ajmp quit
looq5: mov p1,#070h
mov 21h,#40h
mov 20h,#02h
ajmp quit
looq6: mov p1,#030h
mov 21h,#80h
mov 20h,#01h
ajmp quit
looq7: mov p1,#0b0h
mov 21h,#01h
mov 20h,#80h
quit: reti
end
4.结论
该驱动器经实验验证能驱动0.5n.m的步进电机。将驱动部分的电阻、电容及续流二极管的有关参数加以调整,可驱动1.2n.m的步进电机。该驱动器电路简单可靠,结构紧凑,对于i/o口线与单片机资源紧张的系统来说特别适用。
方式1为中断方式:p3.5(int1)为步进脉冲输入端,p3.7为正反转脉冲输入端。上位机(pc机或单片机)与驱动器仅以2条线相连。
方式2为串行通讯方式:上位机(pc机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。
方式3为拨码开关控制方式:通过k1~k5的不同组合,直接控制步进电机。
当上电或按下复位键kr后,at89c2051先检测拨码开关kx、ky的状态,根据kx、ky 的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。
在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20h单元的各位为步进电机正转标志位;21h单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。
图1 方式1程序框图
方式1源程序:
mov 20h,#00h ;20h单元置初值,电机正转位置指针
mov 21h,#00h ;21h单元置初值,电机反转位置指针
mov p1,#0c0h ;p1口置初值,防止电机上电短路
mov tmod,#60h ;t1计数器置初值,开中断
mov tl1,#0ffh
mov th1,#0ffh
setb et1
setb ea
setb tr1
sjmp $
;***********计数器1中断程序************
it1p: jb p3.7,fan ;电机正、反转指针
;*************电机正转*****************
jb 00h,loop0
jb 01h,loop1
jb 02h,loop2
jb 03h,loop3
jb 04h,loop4
jb 05h,loop5
jb 06h,loop6
jb 07h,loop7
loop0: mov p1,#0d0h
mov 20h,#02h
mov 21h,#40h
ajmp quit
loop1: mov p1,#090h
mov 20h,#04h
mov 21h,#20h
ajmp quit
loop2: mov p1,#0b0h
mov 20h,#08h
mov 21h,#10h
ajmp quit
loop3: mov p1,#030h
mov 20h,#10h
mov 21h,#08h
ajmp quit
loop4: mov p1,#070h
mov 20h,#20h
mov 21h,#04h
ajmp quit
loop5: mov p1,#060h
mov 20h,#40h
mov 21h,#02h
ajmp quit
loop6: mov p1,#0e0h
mov 20h,#80h
mov 21h,#01h
ajmp quit
loop7: mov p1,#0c0h
mov ; 20h,#01h
mov 21h,#80h
ajmp quit
;***************电机反转*****************
fan: jb 08h,looq0
jb 09h,looq1
jb 0ah,looq2
jb 0bh,looq3
jb 0ch,looq4
jb 0dh,looq5
jb 0eh,looq6
jb 0fh,looq7
looq0: mov p1,#0a0h
mov 21h,#02h
mov 20h,#40h
ajmp quit
looq1: mov p1,#0e0h
mov 21h,#04h
mov 20h,#20h
ajmp quit
looq2: mov p1,#0c0h
mov 21h,#08h
mov 20h,#10h
ajmp quit
looq3: mov p1,#0d0h
mov 21h,#10h
mov 20h,#08h
ajmp quit
looq4: mov p1,#050h
mov 21h,#20h
mov 20h,#04h
ajmp quit
looq5: mov p1,#070h
mov 21h,#40h
mov 20h,#02h
ajmp quit
looq6: mov p1,#030h
mov 21h,#80h
mov 20h,#01h
ajmp quit
looq7: mov p1,#0b0h
mov 21h,#01h
mov 20h,#80h
quit: reti
end
4.结论
该驱动器经实验验证能驱动0.5n.m的步进电机。将驱动部分的电阻、电容及续流二极管的有关参数加以调整,可驱动1.2n.m的步进电机。该驱动器电路简单可靠,结构紧凑,对于i/o口线与单片机资源紧张的系统来说特别适用。
该驱动器根据拨码开关kx、ky的不同组合有三种工作方式供选择:
方式1为中断方式:p3.5(int1)为步进脉冲输入端,p3.7为正反转脉冲输入端。上位机(pc机或单片机)与驱动器仅以2条线相连。
方式2为串行通讯方式:上位机(pc机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。
方式3为拨码开关控制方式:通过k1~k5的不同组合,直接控制步进电机。
当上电或按下复位键kr后,at89c2051先检测拨码开关kx、ky的状态,根据kx、ky 的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。
在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20h单元的各位为步进电机正转标志位;21h单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。
图1 方式1程序框图
方式1源程序:
mov 20h,#00h ;20h单元置初值,电机正转位置指针
mov 21h,#00h ;21h单元置初值,电机反转位置指针
mov p1,#0c0h ;p1口置初值,防止电机上电短路
mov tmod,#60h ;t1计数器置初值,开中断
mov tl1,#0ffh
mov th1,#0ffh
setb et1
setb ea
setb tr1
sjmp $
;***********计数器1中断程序************
it1p: jb p3.7,fan ;电机正、反转指针
;*************电机正转*****************
jb 00h,loop0
jb 01h,loop1
jb 02h,loop2
jb 03h,loop3
jb 04h,loop4
jb 05h,loop5
jb 06h,loop6
jb 07h,loop7
loop0: mov p1,#0d0h
mov 20h,#02h
mov 21h,#40h
ajmp quit
loop1: mov p1,#090h
mov 20h,#04h
mov 21h,#20h
ajmp quit
loop2: mov p1,#0b0h
mov 20h,#08h
mov 21h,#10h
ajmp quit
loop3: mov p1,#030h
mov 20h,#10h
mov 21h,#08h
ajmp quit
loop4: mov p1,#070h
mov 20h,#20h
mov 21h,#04h
ajmp quit
loop5: mov p1,#060h
mov 20h,#40h
mov 21h,#02h
ajmp quit
loop6: mov p1,#0e0h
mov 20h,#80h
mov 21h,#01h
ajmp quit
loop7: mov p1,#0c0h
mov ; 20h,#01h
mov 21h,#80h
ajmp quit
;***************电机反转*****************
fan: jb 08h,looq0
jb 09h,looq1
jb 0ah,looq2
jb 0bh,looq3
jb 0ch,looq4
jb 0dh,looq5
jb 0eh,looq6
jb 0fh,looq7
looq0: mov p1,#0a0h
mov 21h,#02h
mov 20h,#40h
ajmp quit
looq1: mov p1,#0e0h
mov 21h,#04h
mov 20h,#20h
ajmp quit
looq2: mov p1,#0c0h
mov 21h,#08h
mov 20h,#10h
ajmp quit
looq3: mov p1,#0d0h
mov 21h,#10h
mov 20h,#08h
ajmp quit
looq4: mov p1,#050h
mov 21h,#20h
mov 20h,#04h
ajmp quit
looq5: mov p1,#070h
mov 21h,#40h
mov 20h,#02h
ajmp quit
looq6: mov p1,#030h
mov 21h,#80h
mov 20h,#01h
ajmp quit
looq7: mov p1,#0b0h
mov 21h,#01h
mov 20h,#80h
quit: reti
end
4.结论
该驱动器经实验验证能驱动0.5n.m的步进电机。将驱动部分的电阻、电容及续流二极管的有关参数加以调整,可驱动1.2n.m的步进电机。该驱动器电路简单可靠,结构紧凑,对于i/o口线与单片机资源紧张的系统来说特别适用。
方式1为中断方式:p3.5(int1)为步进脉冲输入端,p3.7为正反转脉冲输入端。上位机(pc机或单片机)与驱动器仅以2条线相连。
方式2为串行通讯方式:上位机(pc机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。
方式3为拨码开关控制方式:通过k1~k5的不同组合,直接控制步进电机。
当上电或按下复位键kr后,at89c2051先检测拨码开关kx、ky的状态,根据kx、ky 的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。
在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20h单元的各位为步进电机正转标志位;21h单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。
图1 方式1程序框图
方式1源程序:
mov 20h,#00h ;20h单元置初值,电机正转位置指针
mov 21h,#00h ;21h单元置初值,电机反转位置指针
mov p1,#0c0h ;p1口置初值,防止电机上电短路
mov tmod,#60h ;t1计数器置初值,开中断
mov tl1,#0ffh
mov th1,#0ffh
setb et1
setb ea
setb tr1
sjmp $
;***********计数器1中断程序************
it1p: jb p3.7,fan ;电机正、反转指针
;*************电机正转*****************
jb 00h,loop0
jb 01h,loop1
jb 02h,loop2
jb 03h,loop3
jb 04h,loop4
jb 05h,loop5
jb 06h,loop6
jb 07h,loop7
loop0: mov p1,#0d0h
mov 20h,#02h
mov 21h,#40h
ajmp quit
loop1: mov p1,#090h
mov 20h,#04h
mov 21h,#20h
ajmp quit
loop2: mov p1,#0b0h
mov 20h,#08h
mov 21h,#10h
ajmp quit
loop3: mov p1,#030h
mov 20h,#10h
mov 21h,#08h
ajmp quit
loop4: mov p1,#070h
mov 20h,#20h
mov 21h,#04h
ajmp quit
loop5: mov p1,#060h
mov 20h,#40h
mov 21h,#02h
ajmp quit
loop6: mov p1,#0e0h
mov 20h,#80h
mov 21h,#01h
ajmp quit
loop7: mov p1,#0c0h
mov ; 20h,#01h
mov 21h,#80h
ajmp quit
;***************电机反转*****************
fan: jb 08h,looq0
jb 09h,looq1
jb 0ah,looq2
jb 0bh,looq3
jb 0ch,looq4
jb 0dh,looq5
jb 0eh,looq6
jb 0fh,looq7
looq0: mov p1,#0a0h
mov 21h,#02h
mov 20h,#40h
ajmp quit
looq1: mov p1,#0e0h
mov 21h,#04h
mov 20h,#20h
ajmp quit
looq2: mov p1,#0c0h
mov 21h,#08h
mov 20h,#10h
ajmp quit
looq3: mov p1,#0d0h
mov 21h,#10h
mov 20h,#08h
ajmp quit
looq4: mov p1,#050h
mov 21h,#20h
mov 20h,#04h
ajmp quit
looq5: mov p1,#070h
mov 21h,#40h
mov 20h,#02h
ajmp quit
looq6: mov p1,#030h
mov 21h,#80h
mov 20h,#01h
ajmp quit
looq7: mov p1,#0b0h
mov 21h,#01h
mov 20h,#80h
quit: reti
end
4.结论
该驱动器经实验验证能驱动0.5n.m的步进电机。将驱动部分的电阻、电容及续流二极管的有关参数加以调整,可驱动1.2n.m的步进电机。该驱动器电路简单可靠,结构紧凑,对于i/o口线与单片机资源紧张的系统来说特别适用。
上一篇:开关调节器主要电流波形
上一篇:风力发电机原理的解说