步进电机正反转启停控制的设计.doc_第1页
步进电机正反转启停控制的设计.doc_第2页
步进电机正反转启停控制的设计.doc_第3页
步进电机正反转启停控制的设计.doc_第4页
步进电机正反转启停控制的设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩 电机控制课程设计报告书 题 目 步进电机正反转启停控制的设计 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 组 长 姓 名 学 号 同 组 学 生 设 计 地 点 工科楼C 设 计 学 时 1周 指 导 教 师 金陵科技学院教务处制 目录一、设计任务和要求二、设计思路2.1系统总框图-022.2设计原理-03三、系统硬件设置3.1时钟信号控制电路原理介绍-03 3.1.1 芯片89C51介绍-03 3.1.2 芯片管脚说明-03 3.1.3 时钟信号控制电路-053.2系统复位电路原理介绍-06 3.2.1 系统复位电路-063.3驱动电路原理介绍-06 3.3.1步进电机原理介绍-06 3.3.2驱动电路-083.4正反转控制电路原理介绍-08 3.4.1正反转控制电路-08四、系统软件设置4.1主程序流程图-094.2源程序-09五、调试过程与结果-18六、总结与体会-18七、参考资料-19八、附录-20附录一 总电路图20一、设计任务和要求电机控制课程设计是考察学生利用所学过的电机控制专业知识,进行综合的电机控制系统设计并最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。最终形成一篇符合规范的设计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。本次设计考核的能力主要有:1) 专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电气控制、电机与拖动、微特电机及其驱动、计算机高级语言、计算机辅助设计、计算机办公软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、伺服电机等课程。2) 项目设计与运作能力,团队协作能力,技术文档撰写能力,PPT汇报与口头表达能力。3) 电气与自动化系统的设计与实际应用能力。要求完成的工作量包括:1) 制作实际成品,并现场演示效果。2) 学生结合课题进行PPT演讲与答辩。3) 学生上交课题要求的各类设计技术文档。二、 设计思路2.1 设计总体方框图89C51单片机电源及晶振模块复位模块键盘控制模块驱动模块步进电机 图2-1 系统总体框图2.2 设计原理 本系统主要是由电源(+5V)及时钟信号模块、复位模块、电机驱动模块(ULN2003A)、键盘控制模块、步进电机等5个模块组成。电源模块的功能是提供直流5V电源给其余几个模块供电,时钟信号模块的功能是对单片机89C51提供工作周期,使89C51能够正常工作,该电路也称最小模式电路,对于没有内部晶振的单片机,接上电源和晶振就是该单片机的最小系统。89C51芯片内部有一个反相放大器,用于构成振荡器,反相放大器的输入端为XTAL1,输出端XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器(这里电容取值在30PF,石英晶体为12MHZ),复位电路的功能是使单片机初始化操作,只要给RESET引脚(9脚)加上2个机器周期以上的高电平信号,即可使单片机复位。复位电路的功能是只对89C51单片机复位,除了进入系统的正常初始化之外,当程序运行出错或是操作错误使系统处于死锁状态时,为了摆脱死锁状态,也需要按复位键重新复位。驱动模块的功能是通过驱动器ULN2003A来驱动步进电机,通过单片机的P1.0-P1.3输出脉冲到ULN2003A的1B-4B口,经信号放大后从1C-4C口分别输出到电机的A、B、C、D相。键盘控制电路的功能是控制输入部分设置了正/反转控制、加减速和停止控制按钮,内部程序检测P0.0的状态来调用相应的来调用相应的启动和换向程序,实现步进电机的正反转控制。在该步进电机的控制器中,电机实现正反转、加减速、停止控制。三、 系统硬件设计3.1 时钟信号控制电路原理介绍3.1.1 芯片89C51介绍 图3-1 89C51芯片引脚图3.1.2 芯片管脚说明:1.VCC:供电电压。2.GND:接地。3.P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。4.P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 5.P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。6.P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。7.RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。8.ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。9./PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。10./EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。11.XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。12.XTAL2:来自反向振荡器的输出。3.1.3 时钟信号控制电路图3-2 时钟信号控制电路该电路工作原理:该电路也称最小模式电路,对于没有内部晶振的单片机,接上电源和晶振就是该单片机的最小系统。89C51芯片内部有一个高增益反相放大器,用于构成振荡器,反相放大器的输入端为XTAL1,输出端XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。电容C1、C2通常取30pf左右,可以稳定频率并对振荡频率有微调作用。振荡信号从XTAL2端输入到片内的时钟发生器上。3.2 系统复位电路原理介绍3.2.1 系统复位电路图3-3 系统复位电路 该电路工作原理:复位电路是单片机的初始化操作,只要给RESET引脚(9脚)加上2个机器周期以上的高电平信号,即可使单片机复位。除了进入系统的正常初始化之外,当程序运行出错或是操作错误使系统处于死锁状态时,为了摆脱死锁状态,也需要按复位键重新复位。3.3 驱动电路原理介绍3.3.1步进电机原理介绍 该步进电机为四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。下图是该四相反应式步进电机工作原理示意图: 图3-3 四相步进电机步进示意图 开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。 当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。 a. 单四拍 b. 双四拍 c.八拍 3.3.2 驱动电路 图3-4 驱动电路 该电路工作原理:通过驱动器ULN2003A来驱动步进电机,如图3.3所示,通过单片机的P1.0-P1.3输出脉冲到ULN2003A的1B-4B口,经信号放大后从1C-4C口分别输出到电机的A、B、C、D相。3.4 正反转控制电路原理介绍3.4.1 正反转控制电路 图3-5正反转控制电路 该电路工作原理:根据系统的控制要求,控制输入部分设置了正/反转控制、加速控制、减速控制和停止控制按钮,通过按键状态变化来实现电机的启动、加减速和换向功能。当按键的状态变化时,内部程序检测P0.0的状态来调用相应的来调用相应的启动和换向程序,实现步进电机的正反转控制。四、系统软件设计4.1 主程序流程图开始电动机停止转动按键扫描判断电机初试状态转动初始化程序电动机减转动电动机加速转动电动机反转 4.2 源程序#include #include #include key.h#define uchar unsigned char#define uint unsigned int /Motorsbit A = P10; /定义管脚sbit b = P11;sbit C = P12;sbit D = P13; /步进电机驱动uchar velocity=30;unsigned char MotorStep=0;unsigned int MotorTimer = 0;unsigned int MotorDelay,Speed=1,TIM,CT;bit flag=0;/#define speed 8 / 调整速度 数值不要设的太低 低了会引起震动。/* 初始化马达 */void InitMotor() A = 1; b = 1; C = 1; D = 1;void SetMotor1() / if(Speed = 0) return; /MotorDelay=Speed;/调整速度 switch(MotorStep) case 0: if(TIM) / A A = 0; /0xf1 b = 1;C = 1; D = 1; MotorStep = 1;TIM=0; break; case 1: / AB if(TIM) A = 0; /0xf3 b = 0; C = 1; D = 1; MotorStep = 2;TIM=0; break; case 2: /B if(TIM) A = 1; b = 0; /0xf2 C = 1; D = 1; MotorStep = 3;TIM=0; break; case 3:/BC if(TIM) A = 1; b = 0; /0xf6 C = 0; D = 1; MotorStep = 4;TIM=0; break; case 4: /C if(TIM) A = 1; b = 1; /0xf4 C = 0; D = 1; MotorStep = 5;TIM=0; break;case 5: /CD if(TIM) A = 1; b = 1; /0xfc C = 0; D = 0; MotorStep = 6;TIM=0; break;case 6: /D if(TIM) A = 1; b = 1; /0xf8 C = 1; D = 0; MotorStep = 7;TIM=0; break;case 7:/DA if(TIM) A = 0; b = 1; /0xf9 C = 1; D = 0; MotorStep = 0;TIM=0; break;void SetMotor2() switch(MotorStep) case 0: if(TIM) / A A = 0; /0xf1 b = 1;C = 1; D = 0; MotorStep = 1;TIM=0; break; case 1: / AB if(TIM) A = 1; /0xf3 b = 1; C = 1; D = 0; MotorStep = 2;TIM=0; break; case 2: /B if(TIM) A = 1; b = 1; /0xf2 C = 0; D = 0; MotorStep = 3;TIM=0; break; case 3:/BC if(TIM) A = 1; b = 1; /0xf6 C = 0; D = 1; MotorStep = 4;TIM=0; break; case 4: /C if(TIM) A = 1; b = 0; /0xf4 C = 0; D = 1; MotorStep = 5;TIM=0; break;case 5: /CD if(TIM) A = 1; b = 0; /0xfc C = 1; D = 1; MotorStep = 6;TIM=0; break;case 6: /D if(TIM) A = 0; b = 0; /0xf8 C = 1; D = 1; MotorStep = 7;TIM=0; break;case 7:/DA if(TIM) A = 0; b = 1; /0xf9 C = 1; D = 1; MotorStep = 0;TIM=0; break;void system_Ini() TMOD|= 0x11; TH0=0xDC; /11.0592M TL0=0x00;IE = 0x8A; TR0 = 1;main() uchar num; system_Ini(); InitMotor(); while(1) if(velocity!= 0) if(flag=0) SetMotor1(); else SetMotor2(); else InitMotor(); num=KeyScan(); /循环调用按键扫描 switch(num) case 0: CT=0; flag=flag; /SetMotor(); break; case 1: CT=0; velocity=10; /SetMotor(); break; case 2: CT=0; velocity=20; /SetMotor(); break; case 3: CT=0; velocity=0; /InitMotor(); break; default: break; /* 定时中断延时 */ void Tzd(void) interrupt 1 TH0 = 0xfe; /11.0592 TL0 = 0x33;if( CT+=velocity) TIM=1; CT=0; 5、 调试过程与结果本次调试过程及注意事项可分为三个步骤:1. 检查所有元件已被连接,电源线和接地线是否都连接完成,否则电路不能正常工作。2. 再将程序录入到单片机89C51中,并且保证5V电源提供给所有元件,使各模块可以正常工作;在调试过程中必须保证单片机可以正常工作,一旦不能正常工作,电路就不能运行;3.将步进电机与电路连接时,保证四相线连接时正确的,确保步进电机正常运转;六、总结与体会在做本次课程设计的过程中,感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做微特电机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。 其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论