书城工业技术智能仪器设计基础
19100400000019

第19章 输出及执行装置的接口技术(3)

系统软件由初始化程序、流程控制程序、时钟管理程序、命令处理程序和数据区组成。

程序采用定时中断和查询方式工作。

5.4步进电机控制接口技术

步进电机是一种将电脉冲信号转换成相应的角位移或线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件。

步进电机具有快速启动和停转,当负荷不超过步进电机所提供的动态转矩值时,它就可能在一瞬间实现启动和停转,它的步距角和转速不受电压波动和负载变化的影响,也不受环境条件如温度、气压、冲击和震动等影响,仅与脉冲频率有关。它每转一周都有固定的步数,在不丢步的情况下运行,其步距误差不会长期积累。正因为步进电机具有快速启停、精确步进以及能直接接收数字量的特点,所以在定位场合中得到了广泛的应用。随着微机的发展,步进电机的使用领域将更加广阔。

5.4.1步进电机的工作原理

电机的定子上有六个等分的磁极,相邻两个磁极间的夹角为60°。磁极上面装有控制绕组并联成A、B、C三相。转子上均匀分布40个齿,每个齿的齿距为9°。定子每段极弧上也有5个齿,定、转子的齿宽和齿距都相同。而每个定子磁极的极距为60°,所以每一个极距所占的齿数不是整数。从所给出的步进电机定、转子展开图可以看出,当A极下的定、转子齿对齐时,B极和C极下的齿就分别和转子齿相错1/3的转子齿距,即为3°。这时若给B相通电,电机中产生沿B极轴线方向的磁场,因磁通要按磁阻最小的路径闭合,所以使转子受到反应转距(磁阻转矩)的作用而转动,直到转子齿和B极上的齿对齐为止。此时,A极和C极下的齿又分别与转子齿相错三分之一的转子齿距。由此可见,错齿是促使步进电机旋转的根本原因。

若断开B相控制绕组,而接通C相控制绕组,这时电机中产生沿C极轴线方向的磁场。同理,在反应转矩(磁阻转矩)的作用下,转子按顺时针方向转过3°,使定于C极下的齿与转子齿对齐。依次类推,当控制绕组按A→B→C→A顺序循环通电时,转子就沿顺时针方向以每个脉冲转动3°的规律转动起来。若改变通电顺序,即按A→C→B→A顺序循环通电时,转子便按逆时针方向同样以每个脉冲转动3°的规律转动。这就是单三拍通电方式。

若采用三相单、双六拍通电方式运行,即按A→AB→B→BC→C→CA→A顺序循环通电,步距角将减小一半,即每个脉冲转过1.5°。

5.4.2步进电机控制系统

变频信号源是一个脉冲频率由几Hz到几十kHz可连续变化的信号发生器,它为脉冲分配器提供脉冲序列。脉冲分配器则根据方向控制信号把脉冲信号按一定的逻辑关系加到脉冲放大器上进行放大,以驱动步进电机的转动。在这种控制方案中,控制步进电机运转的时序脉冲完全由硬件产生,对于不同相数的步进电机及同一型号电机的不同控制方式需要不同的逻辑部件,所以通用性差,成本高。

如果用单片机来控制步进电机,则可以很方便地使不同相数的步进电机按任一种可行的通电方式进行控制。

在这个控制系统中,89C51的主要作用是提供控制步进电机的时序脉冲。每当步进电机从脉冲输入线上得到一个脉冲,便沿时序脉冲所确定的方向步进一步。

由图可知,EPROM2732的片选信号接地,处于常选通状态,所占地址空间为0000H~0FFFH。P1口只能驱动三个标准的LSTTL输入端,而被控制的步进电机要求高电压和大电流,所以在P1口之后加一级7406驱动器,以便驱动脉冲功率放大级的达林顿复合管,使电机绕组的静态电流达到2A。

5.4.2.1脉冲的形成

用软件产生脉冲的方法是先输出一个高电平,然后进行延时,再输出一个低电平进行延时。延时时间的长短由步进电机的工作频率决定。

(1)程序延时:根据延时时间的长短,可采用单字节延时和双重循环延时子程序。

根据流程图编写程序如下:

DELAY1:MOVA,#data;

LOOP:DECA;

JNZLOOP;

RET

上述程序的延时为:

t1=[3+(1+2)×data)×T

=[3+3data]×T式中:T为单片机的机器周期,当晶振频率为6MHz时,T=2μs,最大延时为1.54ms。

程序段为:

DELAY2:MOVR2,#M;

DELAY1:MOVA,#N;

LOOP:DEC

JNZLOOP;

DJNZR2,DELAY1;

RET

(2)利用定时器进行延时,利用T0方式1定时,设机器周期T=2μs,计数初值为X,延时时间为N,则:

(216-x)×2×10-6=N×10-6

(216-x)=0.5N

x=216-0.5N

子程序如下:

MOVTMOD,#01H;T0方式1定时

MOVTL0,#XL;赋初值

MOVTH0,#XH;

SETBTR0;启动T0

LOOP:JBCTF0,REP;查询计数溢出

AJMPLOOP;

REP

当改变初值x时,就能改变延时时间。

编写程序如下:

MOVR3,#N;计数器赋初值

LOOM:PUSHA;保存A

MOVP1,#0FH;送高电平

ACALLDELAY1;延时

MOVP1,#00H;送低电平

ACALLDELAY1;延时

DJNZR3,LOOP0;R3不为零转移

POPA;恢复A

RET

DELAY1:MOVA,#data;

LOOP:DECA;

JNZLOOP;

RET

清单如下:

MOVR3,#N;计数器赋初值

MOVTMOD,#01;定时器T0方式l

MOVTL0,#XL;赋初值

MOVTH0,#XH;

SETBTR0;启动T0

SETBP1.0;送高电平

LOOP1:JBCTF0,REP;查T0溢出

5.4.2.2时序脉冲的形成

步进电机的旋转方向与内部绕组的通电顺序和通电方式有关。以常用的三相步进电机为例,通常有三种通电方式:

(1)三相单三拍:A→B→C→A

(2)三相双三拍:AB→BC→CA→AB

(3)三相六拍:A→AB→B→BC→C→CA→A

按以上顺序通电,步进电机正转,按相反方向通电,步进电机反转。

产生时序脉冲的方法是:

(1)利用单片机的P1.0、P1.1和P1.2分别控制三相步进电机的A、B、C相绕组。

(2)根据控制方式找出控制模型。

(3)按控制模型的顺序向步进电机输入控制脉冲:由三相三拍通电方式的二进制数可以看出,步进电机每步进一步,高电平就左移或右移一位。故在累加器A中放一个时序字节,在每个采样时刻累加器左移或右移一位,经输出口输出。8031为8位字长,8不能被3整除。若把进位标志CY考虑在内,可以看成是第9位,就能实现三相单三拍和三相双三拍通电方式。

编写程序如下:

MOVR3,#N;设置步数计数器

CLRC;0→(C)

PUSHA;保存A

MOVA,#49H(或BBH);时序字节→(A)

MOVP1,A;输出时序字节

PUSHA;保存时序字节

ACALLDELAY;延时

POPA;恢复时序字节

LOOP:RLCA(或RRCA);循环移位

MOVP1,A;输出时序脉冲

PUSHA;保存时序字节

ACALLDELAY;延时

POPA;恢复时序字节

DJNZR3,LOOP;计数器不为零转

POPA;恢复A

RET;返回

DELAY:MOVR2,#M;

DELAY1:MOVA,#Ml;

LOOP1:DECA;

JNZLOOP1;

DJNZR2,DELAY1;

编写程序如下:

MOVR3,#N;设步数计数器

CLRC;清进位位

MOVA,#49H;时序字节→A

MOVTMOD,#01H;T0方式1定时

MOVTL0,#XL;赋初值

MOVTH0,#XH;

SETBTR0;启动T0

MOVP1,A;输出时序脉冲

LOOP:JBCTF0,REP;查T0溢出

AJMPLOOP;

REP:MOVTL0,#XL;重赋初值

MOVTH0,#XH;

RLCA(或RRCA);循环移位

MOVP1,A;时序脉冲输出

DJNZR3,LOOP;计数器不为零转移

RET;返回

5.4.3步进电机控制程序的设计

上述分析可知,步进电机各相绕组通电顺序不同,转动方向就不同。步进电机控制程序的主要任务是判断旋转方向。按顺序送出控制脉冲,判断所要送的脉冲是否送完。下面以三相六拍运转方式为例,说明这种程序的设计。

设步进电机所要走的步数放在R4中,转向标志存放在程序状态寄存器用户标志位F1中,当F1为0时,步进电机正转,当F1为1时步进电机反转。正转模型01H、03H、02H、06H、04H、05H存放在89C51片内数据存储器20H~25H中,26H中存放结束标志00H。

在27H开始的存储区内存放反转控制模型01H,05H,04H,06H,02H,03H,在2DH单元内存放结束标志00H。

思考与练习题5

1.智能仪器模拟量输出有什么特点?说明输出系统的构成及应解决的问题。

2.D/A转换器的主要技术指标有哪些?

3.编写正弦波输出的程序清单及流程图。

4.用传送带送料,已知原料从进料口到料位的时间为20ms,卸料时间为10ms。试编写程序,使传送带不间断供料。

使用89C51设计一个控制器,编写程序,每隔10ms将阴影部分和无阴影部分交替点亮。