《基于单片机的步进电机运行控制系统设计》.doc

《基于单片机的步进电机运行控制系统设计》.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《基于单片机的步进电机运行控制系统设计》.doc

基于单片机的步进电机运行控制系统设计作 者 :陈大林关键词: 步进电机???单片机???控制步进电机是一种将电脉冲信号转换成直 ?线位移或角位移的控制微电机,其机械角位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成比例.通过改变电脉冲频率,可在大范围内进行调速.同时,该电机还能快速起动、制动、反转和自锁.此外,步进电机易于实现与计算机或其他数字元件接口,适用于数字控制系统.步进电机只需采用最简单的开环控制就可取得非常高的控制精度,且这种系统不需要反馈信号,系统硬件实施比较简单。 本文介绍的步进电机驱动控制电路,采用低价的AT89C52, 可直接对步进电机进行控制,省去了昂贵的专用步进电机控制器,简化了硬件线路,降低了成本,提高了系统的可靠性。 系统的组成 系统的控制过程 在本系统中,主要控制三相步进电机带动丝杠的传动,从而使得液氮液面按照要求变化。三相步进电机的定子上有6个极,转子是4个均匀分布的齿,电机的转动是根据控制饶组与电源接通或开断的变化频率呈步进状态,其转向取决于通电相序.在本系统中,主要采用三相电机三相单双六拍:A-AB-B-BC-C-CA-A-……首先A相通电,而后再接通B相绕组(这时A相不断开)即AB两绕组同时通电;此后断开A相绕组,B相单独通电,依此规律循环往复.这种方式需经过6个切换才能完成一个循环.单相三拍方式的每一拍步进角为3°,三相六拍的步进角则为1.5°,因此,在三相六拍下,步进电机的运行反转平稳柔和,但在同样的运行角度与速度下,三相六拍驱动脉冲的频率需提高1倍,对驱动开关管的开关特性要求较高。系统的总体设计框图如图1所示: 图1 系统的整体流程图 当步进电机驱动系统工作时,控制器首先检测接收传感器信号,进行换算成需要的检测量,并将之与设定值进行比较,得出其差值 ,并根据程序的设定转化为步进电机的步进脉冲。从而通过单片机控制的驱动器来驱动步进电机,从而带动丝杠传动系统,进而控制液氮液面升降系统的运动,完成一个循环控制过程。 控制系统的硬件组成 步进电机的驱动电路如图2所示,采用单片机AT89C52来驱动,AT89C52具有8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,1个六向量两极中断结构,一个全双工串行通信接口,同时片内还有振荡器及时钟电路。可以很方便地使用不同相数的步进电机按一种可执行的通电方式来控制,在这个系统中,单片机的主要作用是接收键盘设定值,显示设定初值以及检测的当前值,同时还具有串行通信功能。检测传感器信号,接收传感器信号,并进行处理,计算出步进电机需要的步进量,通过P1.0,P1.1,和P1.2提供控制步进电机的时序脉冲,控制步进电机的运行,系统采用软件来完成脉冲分配,这样可根据应用系统的需要,方便灵活地改变步进电机的控制方式,步进一步的时间可由两个控制字的送出时间间隔决定。 图2 步进电机驱动电路组成 ?系统的软件设计 步进电机的驱动系统软件主要由主控程序、脉冲分配驱动程序、键处理程序、显示数据处理程序及显示驱动程序、串口通信监控程序等部分组成。系统的主程序流程图如图3所示,步进电机驱动中断子程序流程图如图4所示。 图3 系统的主程序流程图 图4 驱动子程序流程图 由驱动系统的硬件控制图可以看出,单片机只是根据需要轮流给P1.0,P1.1,P1.2端口发送步进脉冲来控制电机运行,则三相六拍的系统控制模型如附表所示;在程序中,只要将依次将6个控制字送到P1口,步进电机就会转动一个齿距角。每送一个控制字,就完成一拍,步进电机就转过一个步距角。 附表 三相六拍控制模型 设定有如下工作单元和工作位定义:R0为步进数寄存器;PSW中,F0为方向标志位, F0=0时正转, 否则反转。步进时间由两个控制字的送出时间间隔决定。 步进电机的中断子程序: START:??? ??PUSH??ACC ???PUSH??PSW ???PUSH??R0 ???JB??F0, LOOP2??;判正反转 LOOP1:??MOV? ??A, #01H ??;第1拍控制码 ???MOV??P1, A ???;执行第1拍 ???LCALL?DELAY??;步进时间间隔 ???DJNZ??R0, DONE??;判断是否步进量完成 ???MOV??A,#03H??;第2拍控制码??? ???MOV??P1,A ???;执行第2拍 ???LCALL?DELAY ???DJNZ??R0, DONE ???MOV??A,#02H??;第3拍控制码 ???MOV??P1,A???;执行第2拍 ???LCALLY?DELLAY ???DJNZ??R0, DONE ???MOV??A,#06H??;第4拍控制码 ???MOV??P1,A???;执行第2拍 ???LCA

您可能关注的文档

文档评论(0)

ycwf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档