摘 要 本文利用一个常用的永磁式步进电机,介绍了如何使用单片机进行步进电机的控制,通过对电路图、程序设计和程序分析对这个系统进行了全面解释。 关键词 单片机;步进电机;控制 中图分类号:TP393 文献标识码:A 文章编号:1671—7597(2013)021-092-01 这里采用常见的永磁式步进电机,演示如何使用单片机进行步进电机的控制。这里需要实现的主要功能是: 1)系统上电后,电机不会转动,如果按下启动按钮时,电机就会以每分钟25转的速度进行旋转。 2)电机在运行的过程中,如果按下加1按钮,电机的旋转速度增加。 3)电机在运行的过程中,如果按下减1按钮,电机的旋转速度降低。 4)设定电机最高的旋转速度为100转/分,最低的旋转速度为25转/分。 5)电机在运行的过程中,按下停止按钮,电机停止旋转。 6)在数码管上把电机的旋转速度显示出来。 图1 电路图 下面介绍整个系统的设计。 1 电路图 这里采用AT89C51作为控制微处理器,整个系统的电路图,如图1所示。系统所使用的元器件列表,如表1所示。 型号为35BY38S03的步进电机在正常运转时的电压要求为12付,最大能够允许的电流为0.26安,我们可以用开路输出达林顿驱动器(ULN2003)当做整个系统的驱动,用P1.4~P1.7对线圈进行开合的控制。当整个系统通电时,P1.4~P1.7都设置高电平,步进电机这个时候不运转。如果按顺序把P1.4~P1.7切换到低电平的时候,就可以对步进电机进行驱动,使电机运转。在此要注意,同一时刻只能有一个输出引脚变为高电平。 如上所述,变化P1.4~P1.7轮流变低电平的时间就可以改变电机的旋转速度。在此我们用定时的方法来实现,下面我们来计算定时的时间。 按照上面的相关要求,步进电机最低的旋转速度为25转/分,而在此所用的步进电机的步距角是7.50度,也就是说48个脉冲电机就可以旋转1周。所以1200脉冲/分就能满足最低转速的要求,相当于50毫秒/脉冲。48000脉冲/分就能满足最高转速的要求,相当于12.5毫秒/脉冲。在系统中我们用的是11.0592 MHz的晶振,所以定时初值TH1和TL1可以根据定时时间算出。 2 程序设计 这里采用汇编语言编写程序,具体操作步骤如下。1)打开? Vision3。在? Vision3中,选择“Project”→“New Project”命令,新建一个工程,并保存。 2)在弹出的选择器件对话框中选择Atmel公司的AT89C51。 3)单击“确定”,按钮,弹出“? Vision3”对话框。单击”是”按钮,完成工程的建立。 4)选择“File”→“New”命令,新建一个程序文件,并保存为*.asm文件。在其中可以进行程序设计。本例中的主要代码示例如下: 5)程序编写完毕后,便可以进行编译。 3 程序分析 在主程序中主要执行的步骤如下。 1)首先初始化各变量,开中断,以及启动定时器,并且隐蔽掉显示器上的高三位,把用来驱动步进电机的各个引脚设置为高电平,步进电机不运转。 2)初始化完毕后,如果按下了按钮,一切指令根据键盘来处理,如果没有按下按钮就跳到下一步。 3)用BCD码代替电机的旋转速度,并且送入到显示的缓冲区。 4)判断Work State这个位变量,是“0”还是“1”。只有位变量是“1”的时候T1开启,其他的时候都是关闭;T1关闭时,将P1.4~P1.7均置高。 至此,主程序的所有工作就结束了。 定时器T1的中断服务程序用来进行步进电机的驱动。这里,在每次T1定时时间到达以后,需要将P1.4~P1.7依次接通,实现电机的转动。程序中使用变量LoopDJ,实现循环接通P1.4~P1.7的功能。 4 结束语 单片机对步进电机的控制需要各个环节的合理控制,程序的编写与分析是重中之重,希望我的文章可以帮助大家,不当之处敬请读者指正。 参考文献 [1]代子凤,吴锋.基于单片机的步进电机的驱动控制[J].机床电器,2009(06). [2]李晓贞,王福志,王忠举,张晓辉,朱志伟.基于单片机的步进电机调速研究[J].农业装备与车辆工程,2008(05). [3]陈石龙.基于单片机的步进电机控制系统[J].宁德师专学报(自然科学版),2009(01). 作者简介 杨凯,男,工学学士,助理讲师,安徽省第一轻工业学校电子与信息技术专业教师。
摘 要 本文利用一个常用的永磁式步进电机,介绍了如何使用单片机进行步进电机的控制,通过对电路图、程序设计和程序分析对这个系统进行了全面解释。 关键词 单片机;步进电机;控制 中图分类号:TP393 文献标识码:A 文章编号:1671—7597(2013)021-092-01 这里采用常见的永磁式步进电机,演示如何使用单片机进行步进电机的控制。这里需要实现的主要功能是: 1)系统上电后,电机不会转动,如果按下启动按钮时,电机就会以每分钟25转的速度进行旋转。 2)电机在运行的过程中,如果按下加1按钮,电机的旋转速度增加。 3)电机在运行的过程中,如果按下减1按钮,电机的旋转速度降低。 4)设定电机最高的旋转速度为100转/分,最低的旋转速度为25转/分。 5)电机在运行的过程中,按下停止按钮,电机停止旋转。 6)在数码管上把电机的旋转速度显示出来。 图1 电路图 下面介绍整个系统的设计。 1 电路图 这里采用AT89C51作为控制微处理器,整个系统的电路图,如图1所示。系统所使用的元器件列表,如表1所示。 型号为35BY38S03的步进电机在正常运转时的电压要求为12付,最大能够允许的电流为0.26安,我们可以用开路输出达林顿驱动器(ULN2003)当做整个系统的驱动,用P1.4~P1.7对线圈进行开合的控制。当整个系统通电时,P1.4~P1.7都设置高电平,步进电机这个时候不运转。如果按顺序把P1.4~P1.7切换到低电平的时候,就可以对步进电机进行驱动,使电机运转。在此要注意,同一时刻只能有一个输出引脚变为高电平。 如上所述,变化P1.4~P1.7轮流变低电平的时间就可以改变电机的旋转速度。在此我们用定时的方法来实现,下面我们来计算定时的时间。 按照上面的相关要求,步进电机最低的旋转速度为25转/分,而在此所用的步进电机的步距角是7.50度,也就是说48个脉冲电机就可以旋转1周。所以1200脉冲/分就能满足最低转速的要求,相当于50毫秒/脉冲。48000脉冲/分就能满足最高转速的要求,相当于12.5毫秒/脉冲。在系统中我们用的是11.0592 MHz的晶振,所以定时初值TH1和TL1可以根据定时时间算出。 2 程序设计 这里采用汇编语言编写程序,具体操作步骤如下。1)打开? Vision3。在? Vision3中,选择“Project”→“New Project”命令,新建一个工程,并保存。 2)在弹出的选择器件对话框中选择Atmel公司的AT89C51。 3)单击“确定”,按钮,弹出“? Vision3”对话框。单击”是”按钮,完成工程的建立。 4)选择“File”→“New”命令,新建一个程序文件,并保存为*.asm文件。在其中可以进行程序设计。本例中的主要代码示例如下: 5)程序编写完毕后,便可以进行编译。 3 程序分析 在主程序中主要执行的步骤如下。 1)首先初始化各变量,开中断,以及启动定时器,并且隐蔽掉显示器上的高三位,把用来驱动步进电机的各个引脚设置为高电平,步进电机不运转。 2)初始化完毕后,如果按下了按钮,一切指令根据键盘来处理,如果没有按下按钮就跳到下一步。 3)用BCD码代替电机的旋转速度,并且送入到显示的缓冲区。 4)判断Work State这个位变量,是“0”还是“1”。只有位变量是“1”的时候T1开启,其他的时候都是关闭;T1关闭时,将P1.4~P1.7均置高。 至此,主程序的所有工作就结束了。 定时器T1的中断服务程序用来进行步进电机的驱动。这里,在每次T1定时时间到达以后,需要将P1.4~P1.7依次接通,实现电机的转动。程序中使用变量LoopDJ,实现循环接通P1.4~P1.7的功能。 4 结束语 单片机对步进电机的控制需要各个环节的合理控制,程序的编写与分析是重中之重,希望我的文章可以帮助大家,不当之处敬请读者指正。 参考文献 [1]代子凤,吴锋.基于单片机的步进电机的驱动控制[J].机床电器,2009(06). [2]李晓贞,王福志,王忠举,张晓辉,朱志伟.基于单片机的步进电机调速研究[J].农业装备与车辆工程,2008(05). [3]陈石龙.基于单片机的步进电机控制系统[J].宁德师专学报(自然科学版),2009(01). 作者简介 杨凯,男,工学学士,助理讲师,安徽省第一轻工业学校电子与信息技术专业教师。