重庆理工大学毕业设计 三相步进电机驱动电源软件设计
向、发下一个脉冲,以及保存当前的各种状态。
T0中断入口 保护现场 N 中断次数-1=0? Y 读方向指示 发速度脉冲 重送相关状态 恢复现场 中断返回 图4-8 定时中断程序流程 在本设计中,当有按键按下时,需要改变电机运行状态是采用外部中断INT0请求,低电平有效,由P3.2引脚输入。在步数计数和加速减速子程序中都要采用T0计数器0溢出中断请求,由引脚P3.4输入。在步数运行完后,申请中断,电机停止运行。在加速过程中速度达到给定值,申请中断,调用匀速运行子程序。
29
重庆理工大学毕业设计 三相步进电机驱动电源软件设计
4.7 步进电机脉冲产生子程序
本设计中采用的是三相步进电机的单三拍控制,其中正转给定脉冲相序为A--B--C,反转给定脉冲的相序为A--C--B。因此,我们可编写相应的模型程序如下:
{ //定时器0中断,定时1ms// TH0=(65536-1000)/256; TL0=(65536-1000)%6; time++; }
void delay(uint n) { //一般延时 while(--n); }
void delay(uint dtime) { //延时 TR0=1;
while(time<=dtime); time=0; TR0=0; }
void moto(bit cf,uchar n,uint dtime){ //电机驱动子程序, uchar idata zhpai[4]={0x78,0xb8,0xd8,0xe8}; uchar idata fpai[4]={0xe8,0xd8,0xb8,0x78}; uchar i,l=0;
if(cf==0) //正转,A-B-C-A for(i=0;i 30 重庆理工大学毕业设计 三相步进电机驱动电源软件设计 { P1=zhpai[l];//P1.7~1.4为输出口,分别为A、B、C、D l++; delay(dtime); if(l==4) l=0; } else{ //反转,C-B-A-C for(i=0;i P1=fpai[l]; l++; delay(dtime); if(l==4) l=0; } } } 31 重庆理工大学毕业设计 三相步进电机驱动电源软件设计 第五章 实验仿真 5.1 Keil C51集成开发环境 软件是一个系统的灵魂,是在硬件平台的基础上完成的。随着单片机开发技术的不断发展,从普遍的汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展。Keil软件是目前最流行开发MCS-51系列单片机的软件,这从今年来各仿真机厂商纷纷宣布全面支持Keil即可看出。 Keil C51是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil C51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境μVision3将这些部分组合在一起。在μVision3中,可以完成从源程序编写、编译、连接定位到目标文件的仿真调试等全部工作系统正是在μVision3环境下进行软件开发的。μVision3是一种基于Windows的多窗口软件仿真器,它可以在完全没有8051单片机硬件的情况下模拟调试各种应用程序,即使是对单片机内部特殊集成功能的编程,也可以找到对应的模拟。 图5-1 生成hex文件 32