基于单片机的步进电机控制,有高手懂吗?本人的毕业论文.学哥学姐.懂的都说几句..谢谢啦..

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

摘 要:本文论述了以单片机AT89C51为控制器的步进电机的控制系统,内容主要包括该系统的硬件组成,步进电机运行过程的详细

分析,PC机与AT89C51单片机之间的串行通信以及AT89C51单片机对步进电机的控制程序流程图等。

关键字:单片机; 通信; 步进电动机

1 引言

平为TTL电平,为了取得一致的传输信号,因此需要采用电平转换

在电气时代的今天,电动机一直在现代化的生产和生活中起

芯片MAX485。根据实际需求选用AT89C51单片机,但由于其数

着十分重要的作用。无论是在工农业生产还是在日常生活中的家

据存储区只有256个单元,需要扩展片外数据存储器6264。此外

用电器,都大量地使用着各种各样的电动机。因此对电动机的控

采用脉冲分配器CH250实现单片机对步进电动机的通电换向即脉

制变得越来越重要了。电动机的控制技术的发展得力于微电子技

冲分配,通过光电耦合器4N25实现步进电动机与单片机的电气隔

术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、

离,由于单片机本身的驱动能力有限,因此需要采用专门的驱动电

微机应用技术的最新发展成就。正是这些技术的进步使电动机控

路单电压驱动来实现功率放大,从而为电动机提供足够大的电流。

制技术在近二十多年内发生了翻天覆地的变化。其中电动机的控

总体的硬件方框图如图1所示:

制部分已由模拟控制逐渐让位于以单片机为主的微处理器控制。

本文采用硬件和软件相结合的办法实现单片机对步进电动机的运

动控制。

2 硬件部分

[2]

PC机与AT89C51单片机 之间的串行通信在硬件上是由转

换器ATC-106和电平转换芯片MAX485来完成的。由于PC机

图1 总体的硬件框图

采用的是RS-232C接口标准,根据项目要求与生产中的实际情

况,需要采用传输距离较远的RS-485,因此需要采用RS-232C

3 软件部分

收稿日期:2007-05-18

通过软件实现PC机与单片机间的异步串行通信。PC机采用查询的方式发送和接收数据,单片机采用中断的方式接收PC机 T —— 步进电动机运行第 +1 步时所用的时间

N

1+N

1

1

传送的信息,从而确定步进电动机的旋转方向,走的总的脉冲数; 即匀速运行每一步所需要的时间

采用软件延时法控制脉冲的分配,从而控制步进电动机的整个运 由于采用软件延时的方法来控制单片机发出脉冲的时间间

行过程。 隔即通过改变脉冲的频率来改变步进电动机的运行速度。在步

进电动机匀加速运行阶段,只需按电动机每走一步所需要的时间

3.1 步进电动机运行的分析

[4]

来调用延时子程序即可。根据

步进电动机 的加减速要有严格的控制要求,那就是保证在

-VV

1-

ii

不失步和过冲的前提下,用最快的速度和最短的时间移动到指定

=a

(6)

+

TT

1-

ii

位置。本设计要求步进电动机的速度按图2所示运行。

—— 步进电动机匀加速运行阶段走第i步时的速度

V

i

—— 步进电动机匀加速运行阶段走第i步时所用的时间

T

i

由于步进电动机在匀加速运行阶段走最后一步时的速度

与匀速运行时的速度V相同

V

N

1

L

L

=V= 又因为 = 将其代入

V V

V

V

N

1+N

1

1

1-i

i

T

T

i

1-i

(2-6)

TLTL

-

1-ii

整理得到

a=

+TT

-

1ii

2

2

+ (7)

TaT

0=LT

TaTL

( )

-

1-ii

i

1-ii

图2 步进电动机的运行过程

通过软件调用一个开平方函数就可以求得

首先令i=

N

1

由图可知匀加速阶段与匀减速阶段的加速度和减速度大小

等直到 、T ,这样就可以求出步进电动机匀

T

1

T

T

T

2

1-N

3-N

2-N

1

1

1

相同,方向相反,加减速的时间相同,因此只需算出加速段走的步

加速运行阶段从静止开始每走一步所用的时间。电动机在升速

数就可以知道减速时所走的步数,二者是一样的。计算过程如下:

过程中所走的总的步数即脉冲数为 ,从静止开始步进电动机

N

1

首先,恒速运行时的速度V是由用户设置的,因此是一个已

在匀加速阶段每走一步,升速阶段的总步数就减1,通过软件延时

知量。加速度a,一个脉冲走过的距离L,整个运行过程所走的步

的方法来控制走每一步所用的时间,加速阶段的延时时间是逐渐

数即总的脉冲数P也都是给定值。运行方向是根据用户的要求

,这样进行下

直到 、 、

变短的,依次为 、

T

T

T

T

T

T

1

3-N

2

2-N

1

N

1-N

1

1

1

由软件确定的。

去,直到 =0,加速过程结束,进入恒速运行阶段。步进电动机

N

1

接着计算步进电动机运行时间

N

在恒速过程中走的总步数为 ,从恒速运行开始,电动机每走一

3

—— 为步进电动机匀加速运行时所用

根据

t

atV =

1 1

步,恒速总步数就减1,因为恒速运行时走每一步用的时间都是相

的时间

同的,因此软件延时的时间均为 ,直到恒速总步数减为0,恒

T

V

1+N

1

可以求出t =

(1)

1

a

速过程结束,进入减速运行阶段。由于匀减速运行的过程是加速

由于匀加速阶段与匀减速阶段的加速度大小相同,因此匀

过程的逆过程,在匀加速运行阶段,步进电动机走的总的步数为

t

加速运行阶段所用的时间t 与匀减速运行时所用的时间 是相

2

1

,且 =N ,减速阶段电动机每走一步,减速总步数就减1,

N

N

1

1

2

2

2

at

。因为是匀加速运行,所以S=

同的,即t =

,由a和t

t

1

1

1

2

2

软件延时的时间是逐渐变常的,依次为 、

、 、 直

T

T

T T

N

1-N

2-N 3-N

1

1

1 1

求出步进电动机匀加速运行阶段走过的总的距离,通过

2

到 、 ,减速总步数减为0,减速过程结束,电动机停止运行。

T

S

T

at

21

2

1

1

N

(2)

1

L

L 3.2 通信软件的设计

可以求出匀加速运行阶段步进电动机走的总步数即脉冲

[5]

PC机与AT89C51的串行通信程序 由两部分组成:一部分

数。由于步进电动机匀减速运行阶段是匀加速运行阶段的逆过

是PC机的通信程序,另一部分是AT89C51的通信程序。PC机

程,因此匀减速运行阶段所走的步数

与匀加速运行阶段所走

N

2

发送时,AT89C51单片机一定接收;PC机接收时,AT89C51单片

的步数 是相同的,即 = ,由P、 和 可以求出步进电

N N N

N N

1

1

2

1 2

机肯定发送。而且对应发送和接收的字符要相同,否则不能达到

动机匀速运行阶段走的总步数即脉冲数为 ,即

N

3

正常通信的目的。此次设计PC机采用8086/8088汇编语言编

N

=P- - =P-2 (3)

N

N

N 1

3 1

2

写,AT89C51单片机端采用MCS-51语言编写。为了保证数据

步进电动机匀速运行时走每一步即每一个脉冲所需要的时

通信的可靠性,制定通信协议如下:

间是相同的,根据

① PC机与AT89C51单片机都可以发送和接收

L

(4)

V=

② PC机与AT89C51单片机的通信波特率为9600bps,采

T

1+N

1

L

(5)

因此

T

=

用的晶振频率为24MHZ,定时器T1工作在模式2,SMOD设置