西安电子科技大学继续教育学院毕业论文
图3-1 步进电机控制系统主程序流程图
系统上电复位后,先调用初始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制时间常数。初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。
2.2.2 读键盘子程序流程图
首先初始化实际键值参数为0FH,然后扫描P2口,与初始值比较,相等则说明没有键按下,不相等则软件消抖,以便确认是否真的有键按下。延时10ms后再次扫描P2口,第二次与初始值比较,若相等则表明前一次比较不相等是由抖动产生;如果相等则表明确实有键按下。执行键盘之程序里的指令,将相应的变量值改变,为键盘处理子程序做准备。
15
西安电子科技大学继续教育学院毕业论文
启动否是否有键按下是处理键盘子程序
图3-2 扫描键盘字程序流程图
2.2.3 键盘处理子程序流程图
按键处理子程序流程图如图3-3所示:
开始初始化变量是P2.3是否按下TR0取反,通过启停T0启停步进电机是P2.2是否按下修改速度参数值,减速P2.1是否按下是修改速度参数值,加速P2.0是否按下是取反方向控制为,改变电机转动方向退出
图3-3键盘处理子程序流程图
16
西安电子科技大学继续教育学院毕业论文
步进电机的启停控制通过启停定时器T0来实现,因为定时器T0控制着脉冲信号的输出,关闭定时器T0也就阻止了脉冲信号的输出。
2.2.4 电机控制中断程序流程图
定时器中断0服务程序流程图如图3-4所示:
开始 设置T0时间参数 判断转动方向控制位的值 是 有控制位查询输出脉冲 退出 改变方向控制变量值
图3-4 定时器中断0服务程序流程图
定时器中断0服务程序的中断时间由当前的转速决定。进入中断程序后,首先要保护现场,再根据当前值设置TH0和TL0的值。然后判断转动方向控制位的值,如果是0则控制脉冲信号P1.0、P1.2输出,如果是1则控制脉冲信号P1.1、P1.3输出。最后恢复现场,返回,等待下次中断。
通过用当前转速控制中断时间,控制了脉冲的输出频率,也就到达了控制步进电机转动速度的目的;通过检测方向控制位的电平,选择脉冲信号P1.0、P1.2与P1.1、P1.3间的切换,控制了步进电机各引出端的接通顺序,也就到实现了步进电机转动方向的控制。
各模块控制的详细程序附于最后。
17
西安电子科技大学继续教育学院毕业论文
第三章 调试与改进
3.1 调试与改进
在系统完成后测试系统,检查硬件和软件是否能够协调运行,并对系统出现的情况进行分析,看是否能够达到系统创作之初所设想的效果,如达不到则重新修改系统的硬件结构或者修改软件的程序部分,直到达到设计需要为止。
本系统的设计思路为:首先从整体上划分出各功能模块,然后硬件和软件同时进行依次完成各个功能模块,最后将各个模块联系起来完成整个系统。
在硬件调试的过程中,遇到了很多问题。主要有:
1. 确定步进电机的使用方法,和控制模式。此处尤为重要,这是整个系统的基础,也是确定软件是否能控制步进电机思路的开端。
2.键盘设计完成后,在多次运行过程中发现按键是否按下难以直观准确判断,在此处进行改进设计,为每一个按键接上一个发光二极管,当有键按下时,相对应的发光二极管变亮,使得按键动作形象直观。并以此方法测试步进电机控制程序。
3.向电源插座送入12V直流电源,测量LM7805输出脚对地电压,是否为5V左右,这个电压的测量可以直接在L7805的OUT脚和GND之间完成。
4. 单片机应用(电源)注意事项:在电源两端应该加一个47uF以上的电解电容和一个0.1uF的小电容,进行电源去藕滤波。
5.可供霍尔片检测到的信号注意是S磁极。 软件测试的时候也有些问题,主要有: 1.软件去抖方式,和时间的控制。
2.控制步进电机转动的程序段完成后,调试发现对步进电机速度的控制范围过小,查阅资料后发现设计思路不太合理,原先的设计思路是用主程序控制步进电机转动,采用延时方式控制步进电机速度,由定时器处理键盘;改进程序,主程序用来处理键盘,由定时器控制步进电机转动,步进电机转动速度由定时器定时时间决定。问题得到解决,不仅扩大了步进电机速度的控制范围,
18
西安电子科技大学继续教育学院毕业论文
也使得单片机对步进电机速度的控制更加精确。
3.2 运行结果
连接好硬件电路,上电复位,程序开始运行。
1.此时步进电机不转动,LED数码管不显示;按下启停键,步进电机开始转动,LED数码管显示数值当前数值,即当前步进电机的转速为25转/分;
2.此时每按下加速键一次,LED数码管显示数值加1,步进电机转动速度相应增加;此时每按下减速键一次,LED数码管显示数值减1,步进电机转动速度相应减少;此时若按下方向控制键,步进电机立即向相反方向转动,转动速度保持不变;此时若按下启停键,步进电机停止转动,LED数码管停止显示为0,符合设计要求。
19