论文部分内容阅读
摘 要 本文利用一个常用的永磁式步进电机,介绍了如何使用单片机进行步进电机的控制,通过对电路图、程序设计和程序分析对这个系统进行了全面解释。
关键词 单片机;步进电机;控制
中图分类号: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).
作者简介
杨凯,男,工学学士,助理讲师,安徽省第一轻工业学校电子与信息技术专业教师。