(完整版)基于51单片机的步进电机的控制毕业设计论文 下载本文

正、反转。用单片机控制步进电机,可以用一个输出口发送脉冲:高电平->延时->低电平->延时……延时的长短控制脉冲的频率,电平的转换次数就是脉冲个数;另外用AT89C51的输出作为方向信号。 2.1建立相序表

实现步进电机运行方式、方向和速度以及启停的控制,是接口软件设计的

主要任务。为此,在编写程序之前,要建立一个相序表,相序表的建立应根据步进电机运行方式的要求。

表1:正转环形脉冲分配表

步数 P0.0 A P0.1 B 1 1 0 0 P0.2 A 0 1 1 0 P0.3 B 0 0 1 1 1 2 3 4 1 0 0 1 表2:反转环形脉冲分配表

步数 P0.0 A P0.1 B 1 0 P0.2 A 0 0 P0.3 B 0 1 1 2

1 1

3 4 2.2 硬件框图

0 0 0 1 1 1 1 0 单 片 机

按 键

驱 动

步 进 电 机

3、系统主程序

3.1运行方式与方向的控制——循环查表法

步进电机的运行方式是指各相绕组循环轮流通电的方式。为了实现对各绕组按一定方式轮流加电,需要一个脉冲循环分配器。循环分配器可用硬件电路来实

现,也可用软件来实现。采用软件来设计脉冲循环分配器,又有两种方法:控制字法和循环查表法。而本课程设计用到的是循环查表法。

循环查表法是将各相绕组加电顺序的控制代码制成一张表——步进电机相序表,存放在内存区,再设置一个地址指针。当地址指针依次加1(或减1)时,即可从表中取出加电的代码,然后输出到步进电机,产生按一定运行方式的走步操作。若改变相序表内的加电代码和地址指针的指向,则可改变步进电机的运行方式和方向。

步进电机的运行方向是采用设置相序表的指针进行控制的。如果把指针设在指向正相序表的第一个元素,依次加1,取出加电代码去控制步进电

机的运行方向叫做正方向,那么,再把指针改设在指向反相序表的第一个元素,依次加1的方向就是反方向。

3.2步进电机运行速度的控制——软件延时法

控制步进电机速度有两个途径:一是硬件改变输入脉冲的频率,通过对定时器定时常数的设定,使其升频、降频或恒频。二是软件延时,或调用子程序。采用软件延时方法来改变步进电机速度。本次课程设计用到的是软件延时法。 3.3 源程序流程图

开始 Y

sw1? 电机正转 端口初始化 N

Y

Y(有键按下) sw2? 电机反转

键扫描 N

Y

N sw3? 电机加速

N Y

调用延时程序 sw4? 电机减速