基于单片机步进电机控制系统的设计-毕业论文_第1页
基于单片机步进电机控制系统的设计-毕业论文_第2页
基于单片机步进电机控制系统的设计-毕业论文_第3页
基于单片机步进电机控制系统的设计-毕业论文_第4页
基于单片机步进电机控制系统的设计-毕业论文_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机步进电机控制系统的设计毕业论文1、设计目的与要求11、设计目的(1)了解步进电机的结构和工作原理。(2)进一步掌握步进电机的控制方法。(3)进一步掌握单片机硬件和软件的综合设计方法。(4)能够使用电路仿真软件进行电路调试。12、设计要求实现功能(1)电机工作方式为四相八拍;(2)实现电机的启、停功能;(3)实现电机的正、反转功能;(4)实现电机的加、减速功能2、整体设计方案21、系统总体方案此次系统4。此次设计以单片机为核心,通过软件和硬件的结合实现步进电机的启停、正转、反转、加速、减速功能,并且步进电机所处的状态用相应的发光二极管来显示,可以显示速度以及方向。用数码管显示速度和驱动方式。电路主要通过三大块来设计,包括驱动模块设计、显示模块设计和按键控制模块设计。此次设计预期实现的功能简述如下几点(1)、用按键来控制步机电机的工作状态;(2)、能够切换三种工作模式;(3)、在不同的工作模式下能通过按键控制其正转、反转、加速、减速并且在工作过程中能够切换驱动模式;(4)、显示器要实现在驱动选择时能显示电机在哪一种模式下工作,而且在速度加减时能显示其17个档位的速度,并在状态显示中可以见证速度的快慢;(5)、利用显示器显示电机的正反转情况。具体操作方案首先,先在查阅资料的基础上,进行总体的理论分析与设计;其次,根据预期达到期望功能的要求设计系统方框图;然后,结合设计一个KEIL软件编译调试,之后结合程序对所设计的控制电路在PROTEUS中选择好元器件连接好,检查无误之后进行仿真。根据仿真的情况,发现问题后进行相应的改正。综合以上所述要求,此次系统设计框图主要共分为AT89C51单片机、显示电路模块、单片机最小系统(时钟电路和复位电路)、控制电路模块和驱动电路模块五个模块。具体框图如下图21所示。图21总设计方框图22、主要元件的选择221、单片机AT89C51单片机AT89C51是一种带4K字节FLASH存储器(FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。与MCS51兼容4K字节可编程FLASH存储器数据保留时间10年全静态工作0HZ24MHZ三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路寿命1000写/擦循环步进电机的角位移与输入脉冲数严格成正比。因此,当转一圈后,没有累积误差,具有良好的跟随性7。步进电机与驱动系统两部分构成的开环数控系统,既简单廉价,又非常可靠。同时它与角度反馈环节也可构成高性能的闭环数控系统。步进电机的动态响应快,容易启动停止,转向与转速也容易控制。速度在相当宽的范围内可以保持平稳调整,低速下仍然可以获得比较大的转矩,因此一般可以直接地驱动负载,不需要使用减速器。步进电机要能运行仅仅只能使用脉冲电源来供电,是不可以拿交流电源和直流电源来使用。步进电机会有失步和震荡现象,必须对控制系统和机械负载采取相应的措施。步进电机自身的噪声和振动较大,带惯性负载的能力较差。(2)常见的步进电机可以分为三种反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)。反应式步进电动机采用高导磁材料构成齿状转子和定子,其结构简单,生产成本低,步距角可以做的相当小,但出力小,动态性能相对较差6,当无电流供电时转子无自锁能力。一般为三相,可实现大转矩输出,步进角一般为15度,但噪声和振动都很大。反应式步进电机的转子由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。永磁式步进电机转子采用多磁极的圆筒形的永磁铁,在其外侧配置齿状定子。用转子和定子之间的吸引和排斥力产生转动,出力比较大,动态性能好,但是其步距角一般相对较大。一般为两相,转矩和体积较小,步进角一般为75度或15度6。在驱动电路方面,永磁式步进电机需要双极性的驱动电路,因为永磁式步进电机的绕组电流要求正、反向流动。混合式步进电机综合了永磁式和反应式两者的优点,避免了两者的弱点。步距角小,出力大,动态性能好,是性能较好的一类步进电动机。步进电机的工作就是步进转动,其功用是将脉冲信号为相应的角位移或是直线电流型,步进控制器7段LED数码管,则在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出09的数字。LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。图24数码管封装将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将“B“和“C“段接上正电源,其它端接地或悬空,那么“B“和“C“段发光,此时,数码管显示将显示数字“1”。而将“A“、“B“、“D“、“E“和“G“段都接上正电源,其它引脚悬空,此时数码管将显示“2”。在本次设计中选用一位7段共阳极数码管。3、系统的硬件电路设计本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。31、控制电路根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是K1、K2、S2、S3,控制电路如图31所示。通过K1、K2状态变化来实现电机的启动和换向功能。当K1、K2的状态变化时,内部程序检测P10和P11的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实的,该电路控制电机加速度主要是通过S2、S3的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。图31控制电路原理图32、单片机最小系统单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括单片机、复位电路、晶振电路。复位电路使用了独立式键盘,单片机的P1口键盘的接口。该设计要求只需4个键对步进电机的状态进行控制。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,晶振电路用33PF的电容和一12M晶体振荡器组成整个电路提供时钟频率。如图32示。晶振电路8051单片机的时钟信号通常用两种电路形式电路得到内部震荡方式和外部中断方式。在引脚XTAL1和XTAL2外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图32示。其电容值一般在530PF,晶振频率的典型值为12MHZ,采用6MHZ的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。图32复位及振荡电路33、驱动电路通过ULN2803构成比较多的驱动电路,电路图如图33所示。通过单片机的P10P13输出脉冲到ULN2803的1B4B口,经信号放大后从1C4C口分别输出到电机的A、B、C、D相。图33步进电机驱动电路34、显示电路在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的P0口和P2口。采用两个共阳数码管作显示。第一个数码管接的A、B、C、D、E、F、G、H分别接P00P07口,用于显示电机正反转状态,正转时显示“1”,反转时显示“一”,不转时显示“0”。第二个数码管的A、B、C、D、E、F、G、H分别接P20P27口,用于显示电机的转速级别,共七级,即从17转速依次递增,“0”表示转速为零。电路如图34所示。图34显示电路35、具体的仿真仿真的步骤(1)在PROTEUS中按照设计原理以及设计框架搭图先选好元器件,再将各个元器件用直线连接好。原理图见图35。(2)熟悉运用KEIL软件,将编好的程序输入。进行程序调试,确保无误后生成HEX文件;(3)各元器件确定连接无误之后,在PROTEUS图中双击AT89C51,在弹出的对话框中加载HEX文件;(4)启动开始调试,观察现象。见图35所示。把各个部分的电路图组合成总电路图,如图35所示。图35具体的仿真电路图36、PROTEL2004设计的总电路图图36PROTEL2004设计的总电路图37、PCB版实物图图37PCB版图4、软件设计通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。下面分析主程序与定时器中断程序及外部中断程序。41、主程序设计主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化P111H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图41所示。图41主程序流程图42、定时中断设计步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。程序流程图如图42所示。图42定时中断程序流程43、外部中断设计外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。程序流程图如图43所示。图43外部中断程序流程图44、源程序(C语言)汇编程序如下SPEEDEQU10HSPEED为转速等级标志,共7级,即17FXEQU11HFX为方向标志COUNTEQU12HCOUNT中断次数标志ORG0000HAJMPMAINORG0003H外部中断0入口地址,加速子程序AJMPUPORG0013H外部中断1入口地址,减速子程序AJMPDOWNORG000BH定时器0中断入口地址,控制中断次数来达到控制转速AJMPZDT0ORG0030HMAINMOVSP,60HMOVTMOD,01H工作于定时、软件置位启动模式1(16位计时器)MOVTH0,0CFHMOVTL0,2CHMOVCOUNT,01HSETBET0定时/计数器允许中断CLRIT0外部中断为电平触发方式,低电平有效CLRIT1SETBEX0外部允许中断SETBEX1SETBEA开总中断MOVR1,11H四相单四拍运行,共阳数码管方向显示8,速度值显示0MOVSPEED,00HMOVFX,00HXIANSMOVA,SPEEDMOVDPTR,LEDMOVCA,ADPTR查表获取等级对应数码管代码MOVP2,A第二个数码管显示转速等级MOVA,FX准备判断转向CJNEA,11H,ELSMOVP0,0F9H第一个数码管显示1,表示正转AJMPQDELSCJNEA,00H,ZHENGMOVP0,0C0H第一个数码管显示0,表示不转AJMPQDZHENGMOVP0,0BFH第一个数码管显示,表示反转QDJBP34,DDP34接启动开关K1,P341时启动CLRTR0停止定时/计数器MOVP0,0C0H第一个数码管显示0,表示不转MOVP2,0C0H第二个数码管显示0,表示转速为0MOVSPEED,00H重新赋初值MOVFX,00HAJMPQDDDMOVA,SPEEDJNZGOA不等于0,即初始速度不为零,则转移到GOCLRTR0停止定时/计数器AJMPQDGOSETBTR0开启定时/计数器ACALLDELAYAJMPXIANSDELAYMOVR6,10延时子程序DEL1MOVR7,250HERE1DJNZR7,HERE1DJNZR6,DEL1RET以下ZDT0为定时器中断程序ZDT0PUSHACCPUSHDPHPUSHDPLMOVTH0,0D8HMOVTL0,0F0HDJNZCOUNT,EXITJBP35,NIZHUAN查询方向标志,P35接换向开关K2MOVFX,11HNIZHUANMOVA,FXCJNEA,11H,FZ若A不等于11,即正转,则转移到FZMOVA,R1R1记录上一次电机脉冲状态MOVP1,ARRA循环右一位MOVR1,AMOVP1,AAJMPREFZMOVA,R1MOVP1,ARLA循环左移一位MOVP1,AMOVR1,AREMOVA,SPEEDMOVDPTR,TABMOVCA,ADPTRMOVCOUNT,A把转速级别赋给COUNTJBP35,FFXP35接换向开关K2,即换向位,若P351,则跳到FFXMOVFX,11HAJMPEXITFFXMOVFX,0FEH只要FX不等于11H,就可以通过循环左移或右移进行换向EXITPOPDPLPOPDPHPOPACCRETI以下UP为加速中断程序UPPUSHACCACALLDELAY延时防抖动JBP32,UPEXP32为外部中断0位,接增速开关S2,低电平有效,若P321,则退出MOVA,SPEEDCJNEA,7,SZ最大等级为7,若A不等于7,则转移到SZAJMPUPEX若A7,则退出SZINCSPEEDSPEEDSPEED1UPEXPOPACCHERE2JNBP32,HERE2本条指令为防止开关S2按下去后弹不起,导致一直产生中断RETI以下DOWN为减速中断程序DOWNPUSHACCACALLDELAYJBP33,DEXP33为外部中断1位,接减速开关S3,低电平有效,若P331,则退出MOVA,SPEEDCJNEA,0,SJAJMPDEXSJDECSPEEDSPEEDSPEED1DEXPOPACCHERE3JNBP33,HERE3RETITABDB0,60,40,35,30,28,25,21经仿真,小于21时,由于脉冲太快,会出现失步0123456789LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98HEND5、设计过程中遇到的主要问题以及解决办法通过仿真,在制成PCB板后,发现理想与现实还是有差别,主要的问题是电路板出现断线,焊接好元器件后,出现了电机不不转的状况;通过检查电路,分析程序后,发现主要是脉冲频率较低、细分数较低,修改程序便可以解决。6、总结与体会本次设计运用了单片机的知识,通过查阅大量相关的资料,包括查阅相关书籍和网上的资料。在方案设计方面,本系统采用了软件方法,即用单片机产生控制脉冲来控制步进电机的运行状态,这种方比采用硬件方法,即采用脉冲分配器芯片进行通用换相控制,电路更加简单,成本更低

温馨提示

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

最新文档

评论

0/150

提交评论