微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计

上传人:shaoy****1971 文档编号:108312971 上传时间:2019-10-23 格式:DOC 页数:12 大小:168.50KB
返回 下载 相关 举报
微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计_第1页
第1页 / 共12页
微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计_第2页
第2页 / 共12页
微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计_第3页
第3页 / 共12页
微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计_第4页
第4页 / 共12页
微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计》由会员分享,可在线阅读,更多相关《微机控制技术(计算机控制技术)课程设计-步进电机控制系统设计(12页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计报告步进电机控制系统设计姓 名: 班 级: B10221 指导老师: 齐建玲 日期: 2013.6.082011.6.13 北华航天工业学院一、 设计前述 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固

2、定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。本设计还通过按键控制电机正转与反转。二、设计任务和要求 设计步进电机单片机控制系统,其功能如下:1具有对步进电机的启停、正反转、加减速控制;2控制按钮分别为正转、反转、加速、减速、以及停止键;3能够通过三位LED数码管(或液晶显示器)显示当前的转动速度,并且由两只不同颜色的发光二极管分别指示正转和反转,因此可以清楚的显示当前转动方向和转速;4要求每组选择的步进电机控制字不同;5用单片机做控制微机;三、设计原理分析1、步进工作电机原理11步进电

3、机的特点:(1)一般步进电机的精度为步进角的3-5%,且不累积。(2)步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。(3)步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升

4、到所希望的高频(电机转速从低速升到高速)。 1.2步进电机的工作原理:步进电机是一种用电脉冲进行控制 ,将电脉冲信号转换成相位移的电机 ,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比 ,每一个脉冲信号可使步进电机旋转一个固定的角度.脉冲的数量决定了旋转的总角度 ,脉冲的频率决定了电机运转的速度.当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。四相步进电机有两种

5、运行方式 1.四相四拍;2.四相八拍。(1)拍数: 完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即A-B-C-D-A。(2)步距角: 对应一个脉冲信号,电机转子转过的角位移用表示。=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为=360度/(50*8)=0.9度(俗称半步)。计算转速#以基本步距角1.8的步进电机为例(现在市场上常规的二、四相混合式步进电机基本步距角都是1.8),四相八拍运行方式下,每接收一个

6、脉冲信号,转过0.9,如果每秒钟接收400个脉冲,那么转速为每秒400X0.9=360,相当与每秒钟转一圈,每分钟60转。 1.3步进电机详细调速原理:步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电的调速。具体的延时时间可以通过软件来实现。这就需要采用单片机对步进电机进行加减速控制,实际上就是改变输出脉冲的时间间隔,单片机控制步进电机加减法运转可实现的方法有软件和硬件两种 ,软件方法指的是依靠

7、延时程序来改变脉冲输出的频率,其中延时的长短是动态的,软件法在电机控制中, 要不停地产生控制脉冲, 占用了大量的CPU 时间,使单片机无法同时进行其他工作;硬件方法是依靠单片机内部的定时器来实现的,在每次进入定时中断后,改变定时常数,从而升速时使脉冲频率逐渐增大,减速时使脉冲频率逐渐减小,这种方法占用CPU 时间较少,在各种单片机中都能实现,是一种比较实用的调速方法。型号为MP28GA的步进电机和ULN2003APG的驱动芯片 步进电机的驱动信号必须为脉冲信号,转动的速度和脉冲的频率成正比! 本步进电机步进角为 5.625度 . 一圈 360 度 , 需要64个脉冲完成。2、总体原理分析使用A

8、T89C51单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;采用四相双四拍步进电机作为驱动机构;用一个四位一体共阳极数码显示管作为显示部分,构成步进电机控制系统的主体结构,配合独立式键盘和外部中断按键完成步进电机控制系统的启动、停止、正转、反转、加速、减速等各项功能;两个LCD指示灯实现正反转运行状态显示的功能。LED数码显示器采用共阳极接法以及动态扫描的形式。P0输入输出口输出数据显示段码,P2口实现3个LED数码管位选的功能;采用p3.6和p3.7口分别与二极管组成的电路来驱动LCD指示灯。键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P3口相连。键盘通过检

9、测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合。通过编写程序使用单片机的定时计数器,以及软件延时,中断资源来实现步进电机的相关控制。 软件主程序主要完成程序显示区的清零、中断初始化(外部中断、定时中断)、调用显示子程序和键盘扫描程序构成;外部中断子程序实现步进电机的加减控制;显示子程序实现段码输送和位选的功能,此步进电机控制系统的硬件整体结构如图1-1所示。AT89C51LCD指示灯步进电机控制按键数码管显示图 1-1步进电机控制系统的硬件结构图四、硬件原理图五、程序流程图1、 主程序流程图MAIN堆栈初始化显示缓

10、冲单元清零开中断设置外部中断触发方式定时器0初始化定时器0中断子程序调用显示子程序步进电机初值设定按键扫描显示值赋值六、程序清单#include#define uchar unsigned char#define DataPort P0 /数码管段选控制端#define CtrlPort P2 /数码管位选控制端sbit zf=P31; /正反转控制;sbit on_off=P30; /启动,停止sbit zl=P36;、/LCD翻转指示灯控制口sbit fl=P37; /LCD正转指示灯控制口uchar Speed,tem,tem_1;/速度变量定义uchar flag;/运行状态控制变量u

11、char biao24=0x09,0x03,0x06,0x0c,0x0c,0x06,0x03,0x09; /正,反转表格uchar const DuanMa=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳数码管显示段码值0123456789uchar code WeiMa=0xf8,0xf4,0xf2,0xf0;/共阳数码管位码uchar TempData3; /存储显示值的全局变量,用于暂存数码管显示的数字void Display(void); /数码管显示函数声明void Init_Timer0(void);/定时器0初始化 vo

12、id DelayMs(uchar m);void DelayUs2x(uchar t); /微妙延时函数声明/*-* 主函数*/void main() uchar i; EA=1; /全局中断开 IT0=1; /1表示边沿触发 IT1=1; /1表示边沿触发Init_Timer0();Speed=80;while(1)if(on_off=0) TempData0=DuanMa(15000/Speed)%10; TempData1=DuanMa(1500/Speed)%10; TempData2=DuanMa(150/Speed)%10; EX0=1; EX1=1; if(zf=1) /正转zl

13、=1;fl=0; for(i=0;i4;i+) /4相P1=biaozfi; /输出对应的相 可以自行换成反转表格DelayMs(Speed); /改变这个参数可以调整电机转速 ,数字越小,转速越大else /反转zl=0;fl=1;for(i=0;i4;i+) /4相 P1=biaozfi; /输出对应的相 可以自行换成正转表格 DelayMs(Speed); /改变这个参数可以调整电机转速 ,数字越小,转速越大 else IT0=0;IT1=0;zl=0;fl=0; TempData0=DuanMa0; TempData1=DuanMa0; TempData2=DuanMa0; Speed=80; /* 外部中断0子程序(实现减速)*/void ISR_INT0(void) interrupt 0 if(!INT0)DelayMs(1);/去抖动while(!INT0)/等待按键释放

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号