基于单片机步进电机控制系统设计报告.doc_第1页
基于单片机步进电机控制系统设计报告.doc_第2页
基于单片机步进电机控制系统设计报告.doc_第3页
基于单片机步进电机控制系统设计报告.doc_第4页
基于单片机步进电机控制系统设计报告.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机步进电机控制系统的设计1、设计目的与要求1.1、设计目的(1)了解步进电机的结构和工作原理。(2)进一步掌握步进电机的控制方法。(3)进一步掌握单片机硬件和软件的综合设计方法。(4)能够使用电路仿真软件进行电路调试。1.2、设计要求实现功能(1)电机工作方式为四相八拍;(2)实现电机的启、停功能;(3)实现电机的正、反转功能;(4)实现电机的加、减速功能.2、整体设计方案2.1 、 系统总体方案 此次系统设计是采用单片机实现对步进电机的手动控制。由单片机产生的脉冲信号通过单片机传送到驱动电路,脉冲信号经过放大后输出到步进电机,功率放大后驱动步进电机的转动。步进电机是纯粹的数字控制电机,能够将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度4。此次设计以单片机为核心,通过软件和硬件的结合实现步进电机的启停、正转、反转、加速、减速功能,并且步进电机所处的状态用相应的发光二极管来显示,可以显示速度以及方向。用数码管显示速度和驱动方式。电路主要通过三大块来设计,包括驱动模块设计、显示模块设计和按键控制模块设计。此次设计预期实现的功能简述如下几点:(1)、用按键来控制步机电机的工作状态;(2)、能够切换三种工作模式;(3)、在不同的工作模式下能通过按键控制其正转、反转、加速、减速并且在工作过程中能够切换驱动模式;(4)、显示器要实现在驱动选择时能显示电机在哪一种模式下工作,而且在速度加减时能显示其1-7个档位的速度,并在状态显示中可以见证速度的快慢;(5)、利用显示器显示电机的正反转情况。具体操作方案:首先,先在查阅资料的基础上,进行总体的理论分析与设计;其次,根据预期达到期望功能的要求设计系统方框图;然后,结合系统框图设计画出一个硬件电路图,能实现工作模式选择、正反转、加减速等功能;最后,根据硬件电路设计,编写程序并运用KEIL软件编译调试,之后结合程序对所设计的控制电路在Proteus中选择好元器件连接好,检查无误之后进行仿真。根据仿真的情况,发现问题后进行相应的改正。综合以上所述要求,此次系统设计框图主要共分为AT89C51单片机、显示电路模块、单片机最小系统(时钟电路和复位电路)、控制电路模块和驱动电路模块五个模块。具体框图如下图2-1所示。 图2-1 总设计方框图2.2、主要元件的选择 2.2.1、单片机 AT89C51单片机AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 与MCS-51 兼容 4K字节可编程FLASH存储器 数据保留时间:10年 全静态工作:0Hz-24MHz三级程序存储器锁定 1288位内部RAM32可编程I/O线 两个16位定时器/计数器5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 寿命:1000写/擦循环本次课题设计所用的是AT89S52,与仿真图的AT89C51功能以及引脚相同。2.2.2、步进电机 步进电机是能够将脉冲信号转化为角位移或者直线位移的机电元件,是机电控制中一种常用执行机构。当步进驱动器接收到一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度。我们可以通过控制脉冲的个数来控制步进电机的角位移量,进而实现其准确定位,并且步进电机转动的速度大小和加速度可通过控制脉冲的频率来控制,从而达到调速的目的6。本次课题所用的是28byj型号四相八拍步进电机。(1)步进电机的特点步进电机的角位移与输入脉冲数严格成正比。因此,当转一圈后,没有累积误差,具有良好的跟随性7。步进电机与驱动系统两部分构成的开环数控系统,既简单廉价,又非常可靠。同时它与角度反馈环节也可构成高性能的闭环数控系统。步进电机的动态响应快,容易启动停止,转向与转速也容易控制。速度在相当宽的范围内可以保持平稳调整,低速下仍然可以获得比较大的转矩,因此一般可以直接地驱动负载,不需要使用减速器。步进电机要能运行仅仅只能使用脉冲电源来供电,是不可以拿交流电源和直流电源来使用。步进电机会有失步和震荡现象,必须对控制系统和机械负载采取相应的措施。步进电机自身的噪声和振动较大,带惯性负载的能力较差。(2)常见的步进电机可以分为三种:反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)。反应式步进电动机采用高导磁材料构成齿状转子和定子,其结构简单,生产成本低,步距角可以做的相当小,但出力小,动态性能相对较差6,当无电流供电时转子无自锁能力。一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。永磁式步进电机转子采用多磁极的圆筒形的永磁铁,在其外侧配置齿状定子。用转子和定子之间的吸引和排斥力产生转动,出力比较大,动态性能好,但是其步距角一般相对较大。一般为两相,转矩和体积较小,步进角一般为7.5度 或15度6。在驱动电路方面,永磁式步进电机需要双极性的驱动电路,因为永磁式步进电机的绕组电流要求正、反向流动。混合式步进电机综合了永磁式和反应式两者的优点,避免了两者的弱点。步距角小,出力大,动态性能好,是性能较好的一类步进电动机。它分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,它是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定子则为齿状的突起结构。(3)工作原理步进电机的工作就是步进转动,其功用是将脉冲信号转换为相应的角位移或是直线位移,或者说是给一个脉冲信号,电动机转动一个角度或是步进一步。步进电机的位移速度与脉冲频率f成正比,其角位移量与脉冲数成正比。在非超载的情况下,步进电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,与负载变化无关,即给电机加一个脉冲信号,步进电机则转过一个步距角。如下图2-2所示的步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。 图2-2四相进电机的步进过程图以图2-2四相步进电机为例,当SA通电SB、SC、SD不通电时,SA对应的线圈通电后会产生磁场吸引磁极,并使其位置转动一定的角位对准,当SB通电而SA、SC、SD不通电时,SB对应的线圈通电后也会产生另一个磁场使电机转子转动一定的角位,使其磁极对准,同理,在上述不断的改变通电线圈就能使电机不停的转动,当然,通电要按照一定的次序才能是电机有序的转动。2.2.3 、 ULN2803ULN2803步进电机控制器ULN2803是一种大电流型高电压器件 ,步进电机控制器。内部电路如图2-3 图2-3ULN2803步进电机控制器2.2.4 、 7段数码管选择 7段LED数码管,则在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。 图2-4数码管封装 将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将B和C段接上正电源,其它端接地或悬空,那么B和C段发光,此时,数码管显示将显示数字“1”。而将A、B、D、E和G段都接上正电源,其它引脚悬空,此时数码管将显示“2”。在本次设计中选用一位7段共阳极数码管。3 、系统的硬件电路设计 本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。 3.1、控制电路 根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是 K1、K2、S2、S3,控制电路如图 3-1所示。通过 K1、K2 状态变化来实现电机的启动和换向功能。当 K1、K2 的状态变化时,内部程序检测P1.0 和 P1.1 的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。 根据步进电机的工作原理可以知道, 步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实的,该电路控制电机加速度主要是通过 S2、S3 的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。 图3-1控制电路原理图 3.2、单片机最小系统 单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对 51 系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。 复位电路:使用了独立式键盘,单片机的 P1 口键盘的接口。该设计要求只需4 个键对步进电机的状态进行控制。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,晶振电路用 33PF 的电容和一 12M 晶体振荡器组成整个电路提供时钟频率。如图3-2示。 晶振电路:8051 单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。在引脚 XTAL1 和 XTAL2 外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图3-2示。其电容值一般在 530pf,晶振频率的典型值为 12MHz,采用6MHz 的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。 图3-2复位及振荡电路3.3、驱动电路 通过 ULN2803 构成比较多的驱动电路,电路图如图 3-3 所示。通过单片机的P1.0P1.3 输出脉冲到 ULN2803 的 1B4B 口, 经信号放大后从 1C4C 口分别输出到电机的 A、B、C、D 相。 图3-3步进电机驱动电路 3.4、显示电路 在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的 P0 口和 P2 口。采用两个共阳数码管作显示。第一个数码管接的 a、b、c、d、e、f、g、h 分别接 P0.0P0.7 口,用于显示电机正反转状态,正转时显示“1” ,反转时显示“一” ,不转时显示“0” 。第二个数码管的 a、b、c、d、e、f、g、h 分别接 P2.0P2.7 口,用于显示电机的转速级别,共七级,即从 17 转速依次递增, “0”表示转速为零。电路如图3-4所示。 图3-4 显示电路3.5、具体的仿真 仿真的步骤:(1)在PROTEUS中按照设计原理以及设计框架搭图先选好元器件,再将各个元器件用直线连接好。原理图见图3-5。(2)熟悉运用KEIL软件,将编好的程序输入。进行程序调试,确保无误后生成.HEX文件;(3)各元器件确定连接无误之后,在PROTEUS图中双击AT89C51,在弹出的对话框中加载.HEX文件;(4)启动开始调试,观察现象。见图3-5所示。把各个部分的电路图组合成总电路图,如图 3-5所示。 图3-5具体的仿真电路图3.6、protel 2004设计的总电路图 图3-6 protel 2004设计的总电路图3.7、PCB版实物图 图3-7 PCB版图4 、软件设计 通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成 4 个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断 0 和外部中断 1 部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。下面分析主程序与定时器中断程序及外部中断程序。 4.1、主程序设计 主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对 P1 口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化 P1=11H、速度和方向初始值均设为 0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0” ,速度值显示“0” ,主程序流程图如图 4-1 所示。 图 4-1主程序流程图4.2、定时中断设计 步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。程序流程图如图 4-2 所示。 图 4-2 定时中断程序流程4.3、外部中断设计 外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数) ,这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。速度增加按钮 S2 为 INT0 中断,其程序流程为原数据,当值等于7 时,不改变原数值返回,小于 7 时,数据加 1 后返回;速度减少按钮 S3,当原数据不为 0,减 1 保存数据,原数据为 0 则保持不变。程序流程图如图 4-3 所示。 图 4-3外部中断程序流程图4.4、源程序(C语言) 汇编程序如下: SPEED EQU 10H ;SPEED 为转速等级标志,共 7 级,即 17 FX EQU 11H ;FX 为方向标志 COUNT EQU 12H ;COUNT 中断次数标志 ORG 0000H AJMP MAIN ORG 0003H ;外部中断 0 入口地址,加速子程序 AJMP UP ORG 0013H ;外部中断 1 入口地址,减速子程序 AJMP DOWN ORG 000BH ;定时器 0 中断入口地址,控制中断次数来达到控制转速 AJMP ZDT0 ORG 0030H MAIN: MOV SP,#60H MOV TMOD,#01H ;工作于定时、软件置位启动!模式 1(16 位计时器) MOV TH0,#0CFH MOV TL0,#2CH MOV COUNT,#01H SETB ET0 ;定时/计数器允许中断 CLR IT0 ;外部中断为电平触发方式,低电平有效 CLR IT1 SETB EX0 ;外部允许中断 SETB EX1 SETB EA ;开总中断 MOV R1,#11H ; 四相单四拍运行,共阳数码管方向显示 8,速度值显示 0 MOV SPEED,#00H MOV FX,#00H XIANS: MOV A,SPEED MOV DPTR,#LED MOVC A,A+DPTR ;查表获取等级对应数码管代码 MOV P2,A ;第二个数码管显示转速等级 MOV A,FX ;准备判断转向 CJNE A,#11H,ELS MOV P0, #0F9H ;第一个数码管显示 1,表示正转 AJMP QD ELS: CJNE A,#00H,ZHENG MOV P0,#0C0H ;第一个数码管显示 0,表示不转 AJMP QD ZHENG: MOV P0,#0BFH ;第一个数码管显示-,表示反转 QD: JB P3.4,DD ;P3.4 接启动开关 K1,P3.4=1 时启动 CLR TR0 ;停止定时/计数器 MOV P0,#0C0H ;第一个数码管显示 0,表示不转 MOV P2,#0C0H ;第二个数码管显示 0,表示转速为 0 MOV SPEED,#00H ;重新赋初值 MOV FX,#00H AJMP QD DD: MOV A,SPEED JNZ GO ;A 不等于 0,即初始速度不为零,则转移到 GO CLR TR0 ;停止定时/计数器 AJMP QD GO: SETB TR0 ;开启定时/计数器 ACALL DELAY AJMP XIANS DELAY: MOV R6,#10 ;延时子程序 DEL1: MOV R7,#250 HERE1: DJNZ R7, HERE1 DJNZ R6,DEL1 RET ;以下 ZDT0 为定时器中断程序 ZDT0: PUSH ACC PUSH DPH PUSH DPL MOV TH0,#0D8H MOV TL0,#0F0H DJNZ COUNT,EXIT JB P3.5,NIZHUAN ;查询方向标志,P3.5 接换向开关 K2 MOV FX,#11H NIZHUAN:MOV A,FX CJNE A,#11H,FZ ;若 A 不等于 11,即正转,则转移到 FZ MOV A,R1 ;R1 记录上一次电机脉冲状态 MOV P1,A RR A ;循环右一位 MOV R1,A MOV P1,A AJMP RE FZ: MOV A,R1 MOV P1,A RL A ;循环左移一位 MOV P1,A MOV R1,A RE: MOV A,SPEED MOV DPTR,#TAB MOVC A,A+DPTR MOV COUNT,A ;把转速级别赋给 COUNT JB P3.5 ,FFX ; P3.5 接换向开关 K2, 即换向位,若 P3.5=1,则跳到 FFX MOV FX,#11H AJMP EXIT FFX: MOV FX,#0FEH ;只要 FX 不等于 11H,就可以通过循环左移或右移进行换向 EXIT: POP DPL POP DPH POP ACC RETI ;以下 UP 为加速中断程序 UP: PUSH ACC ACALL DELAY ;延时防抖动 JB P3.2,UPEX ;P3.2 为外部中断 0 位,接增速开关 S2,低电平有效,若 P3.2=1,则退出 MOV A,SPEED CJNE A,#7,SZ ;最大等级为 7,若 A 不等于 7,则转移到 SZ AJMP UPEX ;若 A=7,则退出 SZ: INC SPEED ;SPEED= SPEED+1 UPEX: POP ACC HERE2: JNB P3.2,HERE2 ;本条指令为防止开关 S2 按下去后弹不起,导 致一直产生中断 RETI ;以下 DOWN 为减速中断程序 DOWN: PUSH ACC ACALL DELAY JB P3.3,DEX ; P3.3 为外部中断 1 位,接减速开关 S3,低电平有效,若 P3.3=1,则退出 MOV A,SPEED CJNE A,#0,SJ AJMP DEX SJ: DEC SPEED ;SPEED= SPEED-1 DEX: POP ACC HERE3: JNB P3.3,HERE3 RETI TAB: DB 0,60,40,35,30,28,25,21 ;经仿真,小于 21 时,由于脉冲太快,会出 现失步 ; 0 1 2 3 4 5 6 7 8 9 LED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H END5、设计过程中遇到的主要问题以及解决办法通过仿真,在制成PCB板后,发现理想与现实还是有差别,主要的问题是电路板出现断线,焊接好元器件后,出现了电机不不转的状况;通过检查电路,分析程序后,发现主要是脉冲频率较

温馨提示

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

评论

0/150

提交评论