题目:单片机控制步进电机系统摘要很多工业控制设备对位移和角度的控制精度要求较高,一般电机很难实现,而步进电机可精确实现所设定的角度和转数。本设计主要是运用51单片机控制六线4相步进电机系统,由单片机产生驱动脉冲信号,控制步进电机以一定的转速向某一方向产生一定的转动角度。同时能够利用单片机实现电机的正、反转及速度控制,并能在数码管上显示出相应的速度。本文中给出了该系统设计的硬件电路,软件设计,人机交互等。并对各个功能模块进行了详细的说明。主要内容包括以下几个方面:单片机控制步进电机的一般原理。电机驱动及控制的实现。控制系统整体设计以及模块划分说明。原理图。代码。关键词:单片机;步进电机;系统;驱动AbstractManyIndustrialcontrolequipmenthaveahighlyrequirementindisplacementandanglewithcontrolaccuracy,themostmotorcan'tcarryout.butthestepmotorcancarryoutthedisplacementandanglethatyouenactmentedinaccuracy.ThisdesignmainlyusedSCMtocontrolstepmotorsystem.Thestepmotorisformedsixlinesandfourphasic.ThroughSCMgeneratethedrivepulsesignal.Controlsteppermotorthroughacertainspeedinadirectiontogetacertaindegreeofrotationangle.Atthesametime,ItcanuseSCMtorealizationofthemotoris,reverseandspeedcontrol.andshowedthespeedinthedigitaltube.Inthispaper,giventhedesignofthesystemhardwarecircuit,softwaredesign,human-computerinteractionandsoon.anditgiventhedetailsdescriptionofeachfunctionalmodule.themaincontentsincludethefollowing:(1)Thegeneralprinciplesofsignal_chipcontrollingstepmotor.(2)Therealizationofmotordrivingandcontrolling(3)Controlsystemoveralldesignanddescriptionmoduledivision(4)SchematicDiagram(5)CodeKeyWords:SCM;steppermotor;system;drive目录引言41单片机控制步进电机的一般原理41.1步进电机41.1.1步进电机介绍41.1.2步进电机分类51.1.3技术指标51.1.4步进电机工作原理51.2单片机72步进电机驱动实现82.1简介82.2驱动选择83系统硬件设计93.1单片机控制电机93.2键盘93.3显示部分10程序流程图11总结12致谢13参考文献13附录13C代码13引言目前,在工业控制生产以及仪器上应用十分广泛。通常都要对一些机械部件平移和转动,对移动的位移和角度控制要求较高,一般的电机很难实现对位置和角度的精确控制,在一些智能化要求较高的场合,用模拟芯片控制器及信号发生器来控制有一定局限性。而用单片机控制步进电机可以改善性能,步进电机能实现精确的角度和转数,具有良好的步进特性,最适合数字控制。在工控设备中得到了广泛的应用。而单片机具有芯片体积小,兼容性强,低电压地,低功耗等特点,使单片机成为驱动步进电机的最佳空盒子单元。所以单片机控制步进电机系统控制精度高,运行稳定,得以广泛运用。1单片机控制步进电机的一般原理1.1步进电机1.1.1步进电机介绍步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机、交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。1.1.2步进电机分类永磁式(PM)。一般为二相,转矩和体积都很小,步距角一般为7.5或15°反应式(VR)。一般为三相,实现大转矩输出,步距角为1.5°。混合式(HB)。兼具永磁式和反应式的优点,分二相和五相,二相步距角为1.8°五相步距角为0.72°。1.1.3技术指标静态指标相数步距角拍数定位转矩保持转矩步进电机动态指标步距角精度失步失调角最大空载启动频率最大空载运行频率运行频距特性电机共振点1.1.4步进电机工作原理分析(步进电机展开图)以反应式步进电机为例,其典型结构图如图1所示。这是一个四相步进电机,当相控制绕组接通脉冲电流时,在磁拉力作用下使相的定、转子对齐,相邻的B相和D相的定、转子小齿错开。若换成B相通电,则磁拉力使B相定、转子小齿对齐(转过),而与B相相邻的C相和A相的定、转子小齿又错开,即步进电机转过一个步距角。若按A→B→C→D→A?规律循环顺序通电,则步进电机按一定方向转动。若改变通电顺序为A→D→C→B→A,则电机反向转动。这种控制方式称为四相单四拍。若按AB→BC→CD→DA→AB或A→AB→B→BC→C→CD→D→DA→A顺序通电则称为四相双拍或四相单、双八拍。无论采用哪种控制方式,在一个通电循环内,步进电机的转角恒为一个齿距角。所以,可以通过改步进电机通电循环次序来改变转动方向,可以通过改变通电频率来改变其角频率。运用单片机的输出功能,通过编程实现输出四个信号分别给步进电机的四相A、B、C、D,并通过输出时信号的循环次序,来设定步进电机的转动方向及输出信号的频率以便设定步进电机的转动频率。图1反应式步进电机结构图实现原理采用单片机产生A、B、C、D的四相信号,当采用单片机进行控制时,需要在单片机和步进电机中间设隔离电路以使强弱电分离。由于步进电机的驱动电流相对较大,可增设放大电路来提供步进电机的工作电流。系统电路由五部分组成,即单片机、隔离、放大、电源及步进电机。1.2单片机功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2步进电机驱动实现2.1简介步进电机在单单仅给予电压时,电机是不会动作的,必须由脉冲产生器提供位置(脉波数)、速度的脉冲信号指令,以及驱动器驱动电流流过电机内部线圈、依顺序切换激磁相序的方式才能够让电机运转。所以欲使步进电机动作的必要系统组成有:(1)脉冲产生器:给予角度(位置移动量)、动作速度及运转方向之脉冲信号的电机驱动指令。(2)步进驱动器:依控制器所投入的脉冲信号指令,提供电流来驱动步进电机动作。(3)步进电机:提供转矩动力输出来带动负载。所以步进电机系统构成简单,不需要速度感应器、位置传感器,即能依照脉冲产生器所输入的脉冲来做到速度及位置的控制。2.2驱动选择步进电机可以选用专用的电机驱动模块,也可以自己构建驱动电路。一般有以下几种选择:专用驱动模块,如L298,FT5754等,这类驱动接口简单,这类可以驱动步进电机,直流电机等。达林顿驱动器ULN2803,这个芯片可以一次驱动八线步进电机。自己构建,通过三极管,74als04,等系列元件构成。但这样系统可靠性会降低,会另外给系统带来误差。3系统硬件设计1单片机控制电机如图3说明:这个部分为单片机控制步进电机部分,80s52单片机通过达林顿驱动器ULN2803来驱动步进电机,80s52的P1.0-P1.4发送控制信号给驱动器,然后驱动器的四根线把信号传递给电机,使电机实现正反转等。电机部分接12V直流电源。3.2键盘如图4说明:本系统中采用了四个按键,分别与80s52的四个引脚相连,分别为LCDEN,RS,WR,RD;分别实现的功能是电机加速,减速,正反转。键盘一旦按下则表示向单片机发送了有效信号,单片机就相应的进行调节。对于键盘的键按下的时候分为几个步骤,当键盘按下的时候,接通电路,键盘扫描检测低电平,但检测到低电平之后不能够判断键是否被按下,因为抖动可能引起这个变化,所有大概延时5~10ms之后再进行检测。如果再次检测到低电平之后说明键被按下。这个过程就是所说的消除抖动。3.3显示部分如图5说明:对于显示部分,因为这个系统只是显示转速,所以采用了LED共阳极数码管。并且用了74HC573锁存器,74HC573锁存器输出电流大,接口电路简单。本系统采用了两个74HC573锁存器,分别为段选和位选。段选为数码管的显示数字,位选为选中相应的数码管。程序流程图总结通过本次的课程论文,让我真实的感受到一个完整的系统设计过程。这次的的论文从开始的整体布局,排版,到内容中的系统设计直到最后完成。每个流程下来,都带给了我很多的新东西,特别在设计完系统之后做硬件部分中,先是用protel99se画图,好多图在库中找不到,找不到就自己画,然后封装,封装的时候还要用游标卡纸对买来的元件进行精确的测量,然后才能在封装的过程中保证精度。最后做完图之后还要布线,布线完成后再发到厂家去做。事实上这个过程我用买好的空板做的,因为元件不多。所以就买了相应的元件直接再PCB板上焊接好的。在焊接的过程中也会感受到很多东西,因为很多需要注意的。不过这个过程多多尝试就会有进步的。焊接完后就是代码调试阶段。最后就完成了这个小型系统的设计。致谢在此,感谢我的老师以及周围的同学。本次的论文得益于同学们的帮助。最后还要感谢我的父母,是他们一直在背后支持着我。谨以此文献给他们!参考文献[1]张永枫,王静霞,杨宏利.单片机应用实训教程.西安电子科技大学出版社,2005.[2]郭天祥.51单片机C语言教程.电子工业出版社2008附录C代码单片机控制步进电机实现功能:定时器中断:定时时间设置为30秒,首先给的初值每次中断为5ms,经过20次中断为1秒,半分钟三十秒则要中断600次,所有到达六百次后就把计数n中的值读取到数码管中显示出来。键盘检测:进行速度控制的时候按下相应的键则会对应的进行速度调节。数码管显示:驱动部分:#includereg52.h#defineucharunsignedcharsbitdula=P2^6;sbitwela=P2^7;sbitjia_key=P3^6;sbitjian_key=P3^7;sbitzf_key=P3^5;sbitstop_key=P3^4;bitflag=0;ucharnum1,n;ucharnum=0,show_num=2,maichong=4