位置:51电子网 » 技术资料 » 控制技术

四相步进电机的设计

发布时间: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口线与单片机资源紧张的系统来说特别适用。

  该驱动器根据拨码开关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口线与单片机资源紧张的系统来说特别适用。

相关IC型号

热门点击

 

推荐技术资料

自制经典的1875功放
    平时我也经常逛一些音响DIY论坛,发现有很多人喜欢LM... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!