步进电机驱动电源的软件设计论文 下载本文

重庆理工大学毕业设计 三相步进电机驱动电源软件设计

{ uc i;

if(col<64)//左半平面 {

CS2=1;CS1=0;

wcode(LCDPAGE十page);//写指令页 wcode(LCDLINE+col);//写指令行

if((col+16)<64) //如果字在左半平面显示不了,转到右半平面去 {

for(i=O;i< 16;i++)//写字 wdata(* (temp+i)); }

else //右半平面 {

for(i=O;i<64-col;i++)//减去左边数,从右半平面第一位开始显示 wdata(*(temp+i));//写字显示 CS2=0;CS 1=1;//右半平面

wcode(LCDPAGE+page); //写指令页 wcode(LCDLINE); //写指令行 for(i=64-col;i<16;i++) //写字右半平面 wdata(*(temp+i)); } } else {

CS2=O;CS1=1;

wcode(LCDPAGE+page);//写指令页 wcode(LCDLINE+coI-64);//写指令行 for(i=0; i< 16; i++) //写字 wdata(* (temp+i));

25

重庆理工大学毕业设计 三相步进电机驱动电源软件设计

} }

综上,我们可将LCD初始化程序流程图总结如下:

定义LCD各项函数

LCD开显示 写数据代码 写指令代码 判断LCD忙 图4-4 LCD初始化流程图

4.5速度程序设计

在本设计中速度由外接键盘给定,由于步进电机具有惯性,所以速度不满足从0直接升到所给定的频率,如果信号变化太快,步进电机由于惯性跟不上电信号的变化,这时就会产生堵转和失步现象。所有步进电机在启动时,必须有加速过程,在停止时波形有减速过程。理想的加速曲线一般为指数曲线,步进电机整个降速过程频率变化规律是整个加速过程频率变化规律的逆过程。在本设计中对步进电机的加速和减速是以等差数列来逐步达到给定速度或者减速到零。同时在速度达到给定值之后便调用匀速运行子程序,保持匀速运行。

26

重庆理工大学毕业设计 三相步进电机驱动电源软件设计

图4-5 步进电机转速-时间图

在步进电机的加速-匀速-减速过程中,由于对步进电机设定了固定的转动步数,所以在调速阶段,要分配好各个阶段的步数,设步进电机最终频率为fh,初始频率为f0,加速度为a,n为加速的次数,则在加速阶段所用的时间为t=(fh-f0)/a。在定时器定时时间为△t=t/n。 电机开始运动

图4-6 速度调节流程图

27

N 是否正转 Y 反转加速 正转加速 反转匀速 正转匀速 反转减速 正转减速 停止 停止 重庆理工大学毕业设计 三相步进电机驱动电源软件设计

在加速的过程中,所用的定时器中断程序如下,读入设定的步数和速度后计算机通过公式计算出电机加速-匀速-减速各需的时间,将加速阶段分为n个台阶,每个台阶加速时间为△t,这个值循环赋给定时器,直到加速阶段运行完成,进入匀速运行阶段。相反,在减速阶段工作方式也是一样,直到速度减速到停止。

计算每个加速阶段所需时间

图4-7 加速阶段流程图

N 加速台阶减一,是否等于0 Y 匀速运行 定时器溢出,开启中断 调用延时子程序,改变脉冲频率 送时间常数到定时器 4.6 定时器中断子程序设计

步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方

28