步进电机控制系统设计(4)

2019-05-17 16:14

第3章 控制系统软件分析与设计

3.1 程序设计前期准备

3.1.1 程序设计平台

考虑到程序的易读性和简练,程序设计采用C语言。程序编辑平台采用Keil。

图3-1 Keil软件界面

3.1.2 程序设计思路

步进电机控制系统的软件需要同时完成读取键盘、处理键盘、控制步进电机转动、控制数码管动态显示等任务,这就必须通过中断技术来实现。

在本设计中,主程序采用查询方式扫描键盘端口,检测按键动作是否发生,若有按键动作则处理键盘,根据按键值修改相应参数值,实现键盘的实时处理功

14

*************

能。定时器0中断服务程序控制步进电机的转动:根据当前显示的速度进行键盘手动改变T0定时时间常数,设置TH0和TL0的值,达到对转速精确控制的目的;根据转动方向控制位的值,控制脉冲信号循环移动的方向,达到对转动方向控制的目的。

说明如下:

1.单片机接受键盘信息,改变系统内部变量值。 2.单片机输出脉冲信号,控制步进电机转动。 3.单片机根据步进电机实际转动值,控制数码管显示。

3.2程序流程图

3.2.1 主程序流程图

步进电机控制系统的主程序在对整个系统初始化后主要完成读键盘和处理键盘的功能,如图3-2所示:

图3-2 步进电机控制系统主程序流程图

系统上电复位后,先调用初始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制时间常数。初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。

15

3.2.2 读键盘子程序流程图

首先初始化实际键值参数为0FH,然后扫描P2口,与初始值比较,相等则说明没有键按下,不相等则软件消抖,以便确认是否真的有键按下。延时10ms后再次扫描P2口,第二次与初始值比较,若相等则表明前一次比较不相等是由抖动产生;如果相等则表明确实有键按下。执行键盘之程序里的指令,将相应的变量值改变,为键盘处理子程序做准备。

启动 是否有 键按下否

是 处理键盘 子程序

图3-3 扫描键盘字程序流程图

3.2.3 键盘处理子程序流程图

按键处理子程序流程图如图3-3所示:

16

*************

开始 初始化变量 是 P2.3是否按下 TR0取反,通过启停T0启停步进电是 P2.2是否按下 修改速度参数值,减速 P2.1是否按下 是 修改速度参数值,加速 P2.0是否按下 是 取反方向控制为,改变电机转动方退出

图3-3键盘处理子程序流程图

步进电机的启停控制通过启停定时器T0来实现,因为定时器T0控制着脉冲信号的输出,关闭定时器T0也就阻止了脉冲信号的输出。

3.2.4 电机控制中断程序流程图

定时器中断0服务程序流程图如图3-4所示:

17

图3-4 定时器中断0服务程序流程图

定时器中断0服务程序的中断时间由当前的转速决定。进入中断程序后,首先要保护现场,再根据当前值设置TH0和TL0的值。然后判断转动方向控制位的值,如果是0则控制脉冲信号P1.0、P1.2输出,如果是1则控制脉冲信号P1.1、P1.3输出。最后恢复现场,返回,等待下次中断。

通过用当前转速控制中断时间,控制了脉冲的输出频率,也就到达了控制步进电机转动速度的目的;通过检测方向控制位的电平,选择脉冲信号P1.0、P1.2与P1.1、P1.3间的切换,控制了步进电机各引出端的接通顺序,也就到实现了步进电机转动方向的控制。

各模块控制的详细程序附于最后。

18


步进电机控制系统设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016最新冀教版小学数学六年级上册期末复习套题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: