资源描述
单片机原理与应用课程设计说明书 题 目: 步进电动机控制系统设计 系 部: 专 业: 班 级: 2013级1班 学生姓名: 学 号: 指导教师: 2013年 6 月 22 日目 录1.项目设计任务与要求12项目设计方案12.1设计思路12.2器件选择方案12.2.1 单片机的选择12.2.2 AT80C51的主要性能12.2.3 AT80C51引脚图22.2.4 管脚作用:22.2.5 四相步进电动机工作原理33 .硬件电路设计53.1步进电动机介绍53.2 步进电动机控制系统电路设计53.3步进电动机驱动电路53.4按键与指示电路63.5晶振电路和复位电路84.项目软件设计95.项目仿真与调试125.1程序的调试125.2步进电动机控制系统仿真135.2.1步进电动机正转仿真135.2.2步进电动机反转仿真145.2.3步进电动机停止仿真146.结论157.附录16参考文献181.项目设计任务与要求使用80C51单片机对四相步进电动机进行控制,使其能够顺时针或逆时针旋转。 1)电动机运行平稳,正反转控制自如;2)根据要求改变运行圈数和运行速度;3)写出详细的电路工作原理、参数计算;4)画出仿真电路图;5)仿真测试并记录结果。2项目设计方案2.1设计思路步进电动机驱动原理如下:单片机发出脉冲信号,控制步进电动机定子的各相绕组以适当的时序通、断电,使其作步进式旋转。四相步进电动机各相绕组的通电顺勋可以单四拍(ABCD)、双四拍(ABBCCDDA)和单双八拍(AABBBCCCDDDA)的方式进行。按上述顺序切换,步进电动机转子按顺时针方向旋转。若通电顺序相反,则电动机转子按逆时针方向旋转。2.2器件选择方案2.2.1 单片机的选择本设计采用AT80C51单片机,80C51单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积小、价格便宜、耗电低、技术成熟和成本低等优点。许多功能部件集成在芯片内部,其信号通道受外接影响小,可靠性高,控制能力强,运行速度快等特点。2.2.2 AT80C51的主要性能 1与STC89C52 单片机产品系列兼容; 2片内有4KB可在线重复编程的快闪擦写存储器; 3.存储数据保存时间为10年; 4.宽工作电压范围:VCC可为2.7V到6V; 5.全静态工作:可从0Hz至16MHz ;6.程序存储器具有3级加密保护; 7.128*8位内部RAM; 8.32条可编程I/O线; 9.两个16位定时器/计数器; 10.中断结构具有5个中断源和2个优先级; 11.可编程全双工串行通道; 12.空闲状态维持低功耗和掉电状态保存存储内容。2.2.3 AT80C51引脚图 图1 80C51 PDIP封装引脚图2.2.4 管脚作用: VCC:电源电压,AT80C51电源的正极输入端,接+5V电压使AT80C51单片机正常工作。是单片机的电源提供端口。GND:接地。P0:P0口(P0.0P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。外部不扩展而单片应用时,则作一般双向IO口用P0口每一个引脚可以推动8个LSTTL负载。P1:P1口(P1.0P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。仅供用户作为输入输出用的端口。P2:P2口(P2.0P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。外部不扩展而单片应用时,则作一般双向IO口用。每一个引脚可以推动4个LSTL负载。P3:P3口(P3.0P3.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。其特殊功能引脚分配如下: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外部随机存储器的读选通,低电平有效。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。PSEN:外部程序存储器的选通信号。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。EA/VPP:片内片外程序储存器选择控制端。PSEN:片外程序储存器(ROM)选通线。2.2.5 四相步进电动机工作原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。如下所示的步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图2是该四相反应式步进电机工作原理示意图。 图2 四相步进电机步进示意图开始时,开关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方向转动。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图3所示: 图3 步进电机工作时序波形图 3 .硬件电路设计 3.1步进电动机介绍步进电动机是工业过程中一种能够快速启动、反转和制动的执行机构,其功能是将电脉冲转换为相应的角位移或直线位移。作为一种数字伺服执行机构,它具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。本次设计,通过软件和硬件的结合实现步进电机的启停、正转、反转、加速、减速功能,并且步进电机所处的状态用相应的发光二极管显示。主要通过三大块来设计,包括驱动电路的设计、状态显示部分和按键部分是设计。可以通过控制脉冲个数来控制角位移量,从而精确地控制转动角度;同时可以通过控制脉冲频率来控制电机转动的角度和加速度,从而达到调速的目的。3.2 步进电动机控制系统电路设计 步进电动机控制系统电路原理图如图4所示。 图4 步进电动机控制系统电路原理图图中除单片机、晶振电路、复位电路外,还包括步进电动机驱动电路,另外使用了3个按键S1S3与3个发光二极管D1D3,用来控制与指示电动机的正转、反转与停止,还使用了四个发光二极管D4D7,作为步进电动机转动步数的指示。3.3步进电动机驱动电路常用的小型步进电动机集成驱动电路为ULN2003。ULN2003是高压大电流达林顿晶体管阵列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,可用于采用单片机控制的各类小型电动机的驱动。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003采用DIP16或SOP16塑料封装。ULN2003内部结构即等效电路如图5所示。 图5 ULN2003的内部结构(a) 内部结构 (b)等效电路引脚17作为输入,引脚1610作为输出,8脚接地,9脚接+5V电源,如果1脚接高电平1,则16脚输出低电平0。ULN2003的驱动电流可达500mA。 图4中用P1.0P3.2作为步进电动机驱动信号输出口,输出信号经ULN2003达林顿管进行电流放大后,驱动步进电动机运行。3.4按键与指示电路P3.0P3.2作为按键K1K3的输入接口,K1K3分别是正转、反转和停止按键。如图6按键链接电路图。 图6 按键链接电路图P0.0P0.2接了三个LED发光二极管D1D3,用来指示当前步进电动机的正转、反转和停止运行情况,还使用了四个发光二极管D4D7,作为步进电机转动步数的指示。如图7和图8指示图。 图7 电动机工作指示链接电路图图8 步进电机转动步数的指示链接图3.5晶振电路和复位电路晶振电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度,本次设计采用的晶振为12MHz。如图9晶振电路和复位电路链接图。 图9 晶振电路和复位电路链接图4.项目软件设计本项目的关键在于步进电动机通电序列的控制,表1给出了四相步进电动机的单四拍、双四拍与单双八拍三种通电模式。表1 四相步进电动机的三种通电模式 系统主程序框图如图10所示。选择让四相步进电动机工作于单双八拍方式,按下正转键实现正传三圈,按下反转键实现反转三圈,按下停止键,立即停步。设步进电动机的步进角为9,C51语言程序设计如下:#include #define uint unsigned int#define uchar unsigned charuchar code FFW= 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09; /步进电动机正转八拍AABBBCCCDDDAuchar code REV= 0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01; /步进电动机反转八拍ADDDCCCBB-BAAsbit K1 = P30; /正转按键sbit K2 = P31; /反转按键sbit K3 = P32; /停止按键void DelayMS(uint ms) /延时程序 uchar i;while(ms-) for(i=0;i120;i+);void SETP_MOTOR_FFW(uchar n) /步进电动机正转 uchar i,j;for(i=0;i5*n;i+) /步进电动机的步距角为每拍9,八拍为72,转一圈需要五个八拍 for(j=0;j8;j+) if(K3 = 0)break; /按下停止按键则跳出循环P1 = FFWj;DelayMS(500);void SETP_MOTOR_REV(uchar n) /步进电动机反转 uchar i,j;for(i=0;i5*n;i+) /步进电动机的步距角为每排9,八拍为72,转一圈需要五个八拍 for(j=0;j8;j+) if(K3 = 0)break; /按下停止按键则跳出循环P1 = REVj;DelayMS(500);void main() uchar N = 3;while(1) if(K1 = 0) /当按键K1按下时,步进电动机开始正转三圈 P0 = 0xfe;SETP_MOTOR_FFW(N);if(K3 = 0) break;else if(K2 = 0) /当按键K2按下时,步进电动机开始反转三圈 P0 = 0xfd;SETP_MOTOR_REV(N);if(K3 = 0) break; /当按键K3按下时,步进电动机停转else P0 = 0xfb; /待机状态时,停止指示灯亮P1 = 0x03; /P1.0和P1.1口处于高电平 5.项目仿真与调试5.1程序的调试 把编好的程序(包括正反转程序、停止程序、显示程序等)合理安排好结合到一起用uVision3 IDE软件进行编译。由于编译只能检查是否存在语法错误,所以还要看是否存在逻辑错误。程序修改好以后,当显示编译0错误,0警告的时候,这说明已经没有语法错误了,是否有逻辑错误还要看接上电路板通过仿真以后,步进电机能否正常转动,显示是否正常。用uVision3 IDE软件编译调试程序,如图11所示 图11 uVision3 IDE软件编译调试程序5.2步进电动机控制系统仿真 用proteus软件对步进电动机控制系统进行仿真,如图12所示。 图12 步进电动机控制系统proteus仿真电路导入C51程序,进行正转、反转、停止测试。 5.2.1步进电动机正转仿真 按下k1键,电动机开始正转,如图13所示。 图13 步进电动机控制系统正转仿真图5.2.2步进电动机反转仿真按下k2键,步进电动机开始反转,如图14所示。 图14 步进电动机控制系统反转反转仿真图5.2.3步进电动机停止仿真按下k3,步进电动机停止运行,如图15所示。 图15 步进电动机控制系统仿真图6.结论为期两个星期的课程设计已经结束,在这两星期的学习、设计过程中我们感触颇深。使我们对抽象的理论有了具体的认识。通过对步进电动机控制系统设计,我们掌握了常用元件的识别和测试;熟悉了常用的仪器仪表;了解了电路的连接方法;以及如何提高电路的性能等等。通过这次设计,是我深刻认识到了“理论联系实际”的这句话的重要性与真实性。而且通过对此课程的设计,我们不但知道了以前不知道的理论知识,而且也巩固了以前知道的知识。最重要的是在实践中理解了书本上的知识,明白了学以致用的真谛。也明白老师为什么要求我们做好这个课程设计的原因。他是为了教会我们如何运用所学的知识去解决实际的问题,提高我们的动手能力。在做本次设计的过程中,我感触最深的当属查阅大量的设计了。我们是按照学号分组,2人一组,在我们软件编程的过程中,有很多问题我们都无法解释,只好去查书,为了让设计更加完善,查阅这方面的设计资料也是十分必要的。在这次课程设计中,我们运用到了以前所学的专业课知识,如:C语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学发现效率很高,这是做这次课程设计的又一收获。设计结束了,但是从中得到的知识会让我们受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于在以后的学习工作和生活中。此次设计更锻炼了我们的毅力和小组合作交流的能力,我觉得做任何事情要善始善终,不要中途放弃,只要自己认真的去对待,再难的问题也能找到办法解决。7.附录 步进电动机控制系统汇编语言程序参考.MODEL SMALL .8086 .STACK .CODE .STARTUP MOV DX,0200H MOV AL,0B3H OUT DX,AL / 电动机停止,停转指示灯亮 AGAIN: MOV DX,0400H IN AL,DX /读入开关状态 TEST AL,01H JZ CLOCKWISE /电动机正转 TEST AL,02H JZ UNCLOCKWISE /电动机反转 JMP AGAIN CLOCKWISE: MOV SI,0 /电动机正转开始 LOP0: MOV DX,0200H MOV AL,FFWSI OUT DX,AL CALL DELAY MOV DX,0400H IN AL,DX TEST AL,02H /检测反转按键是否按下 JZ UNCLOCKWISE TEST AL,04H /检测停止按键是否按下JZ STOP INC SI CMP SI,8 JB LOP0 /继续正转循环 JMP CLOCKWISE UNCLOCKWISE:MOV SI,0 /电动机反转开始LOP1: MOV DX,0200H MOV AL,REVSI OUT DX,AL CALL DELAY MOV DX,0400H IN AL,DX TEST AL,01H /检测正转按键是否按下 JZ CLOCKWISE TEST AL,04H /检测停止按键是否按下 JZ STOP INC SI CMP SI,8 JB LOP1 /继续反转循环 JMP UNCLOCKWISE STOP: MOV DX,0200H MOV AL,0B3H OUT DX,AL /电动机停止,停转指示灯亮 JMP AGAIN DELAY PROC NEAR PUSH BX PUSH CX MOV BX,25 DEL1: MOV CX,295 DEL2: LOOP DEL2 DEC BX JNZ DEL1 POP CX POPBX RET DELAY ENDP .DATA FFW DB 069H,068H,06CH,064H,066H,062H,063H,061H /单双八拍正转REV DB 051H,053H,052H,056H,054H,05CH,058H,059H /单双八拍反转END参考文献1邹华.张兰红.单片机原理及应用M.北京:机械工业出版社,2012:301-306.2史敬灼,步进电机伺服控制技术M,2007年3月第2版:23353赵建领,51单片机开发宝典,电子工业出版社,20084孙进平,张大鹏,丁金滨,51单片机系列单片机原理、开发与应用实例,中国电力输出板,20095 GB3100-3102 00011994,中华人民共和国国家标准S.潍坊学院信息与控制工程学院单片机课程设计成绩评定表专业班级: 姓名: 学号: 设计项目内容得分备注平时表现工作态度、遵守纪律、独立完成设计任务10分独立查阅文献、收集资料、制定课程设计方案和日程安排10分设计报告电路设计 、程序设计20分摘要、设计报告正文的结构、图表规范性20分仿真与实物制作按照设计任务要求的功能仿真20分设计任务工作量、难度15分设计亮点5分综合成绩指导教师签名指导老师签名: 年 月 日
展开阅读全文