您的当前位置:首页正文

基于单片机步进电机控制系统设计报告

2022-04-10 来源:好走旅游网
 基于单片机步进电机控制系统的设计

1、设计目的与要求

1.1、设计目的

(1)了解步进电机的结构和工作原理。 (2)进一步掌握步进电机的控制方法。

(3)进一步掌握单片机硬件和软件的综合设计方法。 (4)能够使用电路仿真软件进行电路调试。

1.2、设计要求实现功能

(1)电机工作方式为四相八拍; (2)实现电机的启、停功能; (3)实现电机的正、反转功能; (4)实现电机的加、减速功能.

2、、整体设计方案

2.1 、 系统总体方案

此次系统设计是采用单片机实现对步进电机的手动控制。由单片机产生的脉冲信号通过单片机传送到驱动电路,脉冲信号经过放大后输出到步进电机,功率放大后驱动步进电机的转动。步进电机是纯粹的数字控制电机,能够将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度[4]。此次设计以单片机为核心,通过软件和硬件的结合实现步进电机的启停、正转、反转、加速、减速功能,并且步进电机所处的状态用相应的发光二极管来显示,可以显示速度以及方向。用数码管显示速度和驱动方式。电路主要通过三大块来设计,包括驱动模块设计、显示模块设计和按键控制模块设计。此次设计预期实现的功能简述如下几点:

(1)、用按键来控制步机电机的工作状态; (2)、能够切换三种工作模式;

1

基于单片机步进电机控制系统的设计

(3)、在不同的工作模式下能通过按键控制其正转、反转、加速、减速并且在工作过程中能够切换驱动模式;

(4)、显示器要实现在驱动选择时能显示电机在哪一种模式下工作,而且在速度加减时能显示其1-7个档位的速度,并在状态显示中可以见证速度的快慢; (5)、利用显示器显示电机的正反转情况。

具体操作方案:首先,先在查阅资料的基础上,进行总体的理论分析与设计;其次,根据预期达到期望功能的要求设计系统方框图;然后,结合系统框图设计画出一个硬件电路图,能实现工作模式选择、正反转、加减速等功能;最后,根据硬件电路设计,编写程序并运用KEIL软件编译调试,之后结合程序对所设计的控制电路在Proteus中选择好元器件连接好,检查无误之后进行仿真。根据仿真的情况,发现问题后进行相应的改正。

综合以上所述要求,此次系统设计框图主要共分为AT89C51单片机、显示电路模块、单片机最小系统(时钟电路和复位电路)、控制电路模块和驱动电路模块五个模块。具体框图如下图2-1所示。

图2-1 总设计方框图

2.2、主要元件的选择 2.2.1、单片机

AT89C51单片机

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只

2

基于单片机步进电机控制系统的设计

读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 ·与MCS-51 兼容 ·4K字节可编程FLASH存储器 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 片内振荡器和时钟电路 ·寿命:1000写/擦循环

本次课题设计所用的是AT89S52,与仿真图的AT89C51功能以及引脚相同。

2.2.2、步进电机

步进电机是能够将脉冲信号转化为角位移或者直线位移的机电元件,是机电控制中一种常用执行机构。当步进驱动器接收到一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度。我们可以通过控制脉冲的个数来控制步进电机的角位移量,进而实现其准确定位,并且步进电机转动的速度大小和加速度可通过控制脉冲的频率来控制,从而达到调速的目的[6]。本次课题所用的是28byj型号四相八拍步进电机。 (1)步进电机的特点

①步进电机的角位移与输入脉冲数严格成正比。因此,当转一圈后,没有累积误差,具有良好的跟随性[7]。

②步进电机与驱动系统两部分构成的开环数控系统,既简单廉价,又非常可靠。同时它与角度反馈环节也可构成高性能的闭环数控系统。

③步进电机的动态响应快,容易启动停止,转向与转速也容易控制。 ④速度在相当宽的范围内可以保持平稳调整,低速下仍然可以获得比较大的转矩,因此一般可以直接地驱动负载,不需要使用减速器。

3

基于单片机步进电机控制系统的设计

⑤步进电机要能运行仅仅只能使用脉冲电源来供电,是不可以拿交流电源和直流电源来使用。

⑥步进电机会有失步和震荡现象,必须对控制系统和机械负载采取相应的措施。

⑦步进电机自身的噪声和振动较大,带惯性负载的能力较差。

(2)常见的步进电机可以分为三种:反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)。

①反应式步进电动机采用高导磁材料构成齿状转子和定子,其结构简单,生产成本低,步距角可以做的相当小,但出力小,动态性能相对较差[6],当无电流供电时转子无自锁能力。一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。

②永磁式步进电机转子采用多磁极的圆筒形的永磁铁,在其外侧配置齿状定子。用转子和定子之间的吸引和排斥力产生转动,出力比较大,动态性能好,但是其步距角一般相对较大。一般为两相,转矩和体积较小,步进角一般为7.5度 或15度[6]。在驱动电路方面,永磁式步进电机需要双极性的驱动电路,因为永磁式步进电机的绕组电流要求正、反向流动。

③混合式步进电机综合了永磁式和反应式两者的优点,避免了两者的弱点。步距角小,出力大,动态性能好,是性能较好的一类步进电动机。它分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,它是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定子则为齿状的突起结构。

(3)工作原理

步进电机的工作就是步进转动,其功用是将脉冲信号转换为相应的角位移或是直线位移,或者说是给一个脉冲信号,电动机转动一个角度或是步进一步。步进电机的位移速度与脉冲频率f成正比,其角位移量与脉冲数成正比。在非超载的情况下,步进电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,与负载变化无关,即给电机加一个脉冲信号,步进电机则转过一个步距角。如下图

4

基于单片机步进电机控制系统的设计

2-2所示的步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。

图2-2四相进电机的步进过程图

以图2-2四相步进电机为例,当SA通电SB、SC、SD不通电时,SA对应的线圈通电后会产生磁场吸引磁极,并使其位置转动一定的角位对准,当SB通电而SA、SC、SD不通电时,SB对应的线圈通电后也会产生另一个磁场使电机转子转动一定的角位,使其磁极对准,同理,在上述不断的改变通电线圈就能使电机不停的转动,当然,通电要按照一定的次序才能是电机有序的转动。

2.2.3 、 ULN2803

ULN2803步进电机控制器

ULN2803是一种大电流型高电压器件 ,步进电机控制器。内部电路如图2-3

图2-3ULN2803步进电机控制器

5

基于单片机步进电机控制系统的设计

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 、系统的硬件电路设计

本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电

6

基于单片机步进电机控制系统的设计

机转动。

3.1、控制电路

根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是 K1、K2、S2、S3,控制电路如图 3-1所示。通过 K1、K2 状态变化来实现电机的启动和换向功能。当 K1、K2 的状态变化时,内部程序检测P1.0 和 P1.1 的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。

根据步进电机的工作原理可以知道, 步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实的,

该电路控制电机加速度主要是通过 S2、S3 的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。

图3-1控制电路原理图

7

基于单片机步进电机控制系统的设计

3.2、单片机最小系统

单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对 51 系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。

复位电路:使用了独立式键盘,单片机的 P1 口键盘的接口。该设计要求只需4 个键对步进电机的状态进行控制。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,晶振电路用 33PF 的电容和一 12M 晶体振荡器组成整个电路提供时钟频率。如图3-2示。

晶振电路:8051 单片机的时钟信号通常用两种电路形式电路得到:内部震荡 方式和外部中断方式。在引脚 XTAL1 和 XTAL2 外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图3-2示。其电容值一般在 5~30pf,晶振频率的典型值为 12MHz,采用6MHz 的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。

图3-2复位及振荡电路

8

基于单片机步进电机控制系统的设计

3.3、驱动电路

通过 ULN2803 构成比较多的驱动电路,电路图如图 3-3 所示。通过单片机的P1.0~P1.3 输出脉冲到 ULN2803 的 1B~4B 口, 经信号放大后从 1C~4C 口分别输出到电机的 A、B、C、D 相。

图3-3步进电机驱动电路

3.4、显示电路

在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的 P0 口和 P2 口。采用两个共阳数码管作显示。第一个数码管接的 a、b、c、d、e、f、g、h 分别接 P0.0~P0.7 口,用于显示电机正反转状态,正转时显示“1” ,反转时显示“一” ,不转时显示“0” 。第二个数码管的 a、b、c、d、e、f、g、h 分别接 P2.0~P2.7 口,用于显示电机的转速级别,共七级,即从 1~7 转速依次递增, “0”表示转速为零。电路如图3-4所示。

9

基于单片机步进电机控制系统的设计

图3-4 显示电路

3.5、具体的仿真 仿真的步骤:

(1)在PROTEUS中按照设计原理以及设计框架搭图先选好元器件,再将各个元

10

基于单片机步进电机控制系统的设计

器件用直线连接好。原理图见图3-5。

(2)熟悉运用KEIL软件,将编好的程序输入。进行程序调试,确保无误后生成.HEX文件;

(3)各元器件确定连接无误之后,在PROTEUS图中双击AT89C51,在弹出的对话框中加载.HEX文件;

(4)启动开始调试,观察现象。见图3-5所示。

把各个部分的电路图组合成总电路图,如图 3-5所示。

图3-5具体的仿真电路图

11

基于单片机步进电机控制系统的设计

3.6、protel 2004设计的总电路图

图3-6 protel 2004设计的总电路图

3.7、PCB版实物图

图3-7 PCB版图

12

基于单片机步进电机控制系统的设计

4 、软件设计

通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成 4 个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断 0 和外部中断 1 部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。下面分析主程序与定时器中断程序及外部中断程序。

4.1、主程序设计

主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对 P1 口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化 P1=11H、速度和方向初始值均设为 0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0” ,速度值显示“0” ,主程序流程图如图 4-1 所示。

图 4-1主程序流程图

13

基于单片机步进电机控制系统的设计

4.2、定时中断设计

步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。程序流程图如图 4-2 所示。

图 4-2 定时中断程序流程

4.3、外部中断设计

外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数) ,这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。速度增加按钮 S2 为 INT0 中断,其程序流程为原数据,当值等于7 时,不改变原数值返回,小于 7 时,数据加 1 后返回;速度减少按钮 S3,当原数据不为 0,减 1 保存数据,原数据为 0 则保持不变。 程序流程图如图 4-3 所示。

14

基于单片机步进电机控制系统的设计

图 4-3外部中断程序流程图

4.4、源程序(C语言) 汇编程序如下:

SPEED EQU 10H ;SPEED 为转速等级标志,共 7 级,即 1~7

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 中断入口地址,控制中断次数来达到控制转速

15

基于单片机步进电机控制系统的设计

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

16

基于单片机步进电机控制系统的设计

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

17

基于单片机步进电机控制系统的设计

;以下 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

18

基于单片机步进电机控制系统的设计

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

19

基于单片机步进电机控制系统的设计

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 END

5、设计过程中遇到的主要问题以及解决办法

通过仿真,在制成PCB板后,发现理想与现实还是有差别,主要的问题是电路板出现断线,焊接好元器件后,出现了电机不不转的状况;通过检查电路,分析程序后,发现主要是脉冲频率较低、细分数较低,修改程序便可以解决。

6、总结与体会

本次设计运用了单片机的知识,通过查阅大量相关的资料,包括查阅相关书籍和网上的资料。在方案设计方面,本系统采用了软件方法,即用单片机产生控制脉冲来控制步进电机的运行状态,这种方比采用硬件方法,即采用脉冲分配器芯片进行通用换相控制,电路更加简单,成本更低。同时我选出最优的设计方案,

20

基于单片机步进电机控制系统的设计

比如在驱动电路设计时,我直接利用集成块驱动步进电机,而不是分离元件来实现。

通过这次设计,我不但掌握52单片机的原理,了解步进电机的工作原理,还提高了自己的创新的能力。掌握了PROTUES、Protel、KEIL软件的使用方法,熟悉了程序编写及调试的一般步骤,更让我深刻地体会到了实践是理论联系实际的重要性,提高自己的思考能力,巩固课堂的理论知识,建立单片机理论和运用实践的结合,了解步进电机控制系统中电路之间的关系及相互影响,从而能正确设计各个单元电路。设计结束了,但是从中得到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。此次设计更锻炼了我的毅力,我觉得做任何事情要善始善终,只要自己认真的去对待,再难的问题也能找到办法解决。

7、结束语

本人深知自己做的工作还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。由于时间的原因,设备的原因,实验做的不好不够,相关验证性的数据、信息不够丰富。可以肯定,随着技术的不断发展,步进电机的控制应用前景将越来越宽阔,而其控制系统也将向着智能化和网络化的方向发展。本论文的研究和探讨还远远不够,我们要在现在的基础上,不断吸取新的技术和方法,并将它们应用于本课题的研究上来,进一步深化我们的研究深度,争取有更多的收获。

8、参考文献

(1)付家才,单片机控制工程实践技术。北京:化学工业出版社 2003.3 (2)李光才,单片机课程设计实例指导。北京:北京航天航空大学出版社 2004 (3)程龙泉,电机与拖动,北京:北京理工大学出版社 2008.8. (4)江力,单片机原理与用技术,北京:清华大学出版社2009.8 (5)周华,数字电子技术,成都:西南交通大学出版社 2009.7

(6)温希东,计算机控制技术,陕西西:西安电子科技大学出版社 2010.1

21

因篇幅问题不能全部显示,请点此查看更多更全内容