单片机控制步进电机

  • 格式:doc
  • 大小:176.00 KB
  • 文档页数:7

1 单片机控制步进电机

一、 功能

使用80C51单片机控制步进电机,控制步进电机实现正转,反转。

二、功能原理图:

三、电路原理图:

说明:当按下K1键时,电机正转。当按下K2键时,电机反转。 80C51产生脉冲信驱动芯片放大反相 驱动电机 2 四、实验说明:

实验中用P0口和P2.6和P2.7接LED数码管,P2.0和P2.1接按钮开关。P3.0~P3.3接驱动芯片。UL2003A的输出端分别接电机的A、B、C、D相。当电机正转是时显示CC,当电机反转是显示AA。

1.步进电机工作原理

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

实验中使用的是一个四相步进电机。

四相步进电机实物图

3 四相步进电机截面图

实验中步进电机运用了双四拍运行方式,当电机绕组通电时序为AD-BC-CD-DA时为正转。当电机绕组通点时序为DA-CD-BC-AB时为反转。

2.驱动芯片UL2003A

实验中步进电机的驱动芯片为UL2003A,它是集电极开路输出的功率反相器。

它的功能是放大和倒相80C51输出的脉冲信号,再将放大和倒相和的信号送给步进电机。

五、程序流程图

4

Y

N

Y

N

Y

N

Y

判断K1是否按下? 开始

延时,去抖动 确认K1按下? 初始化

延时,去抖动

电机正转,显示

判断K2是否按下?

确认K2按下?

电机反转,显示 5

六、实现程序

K1 EQU P2.0

K2 EQU P2.1

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV A,#33H

SETB P2.6

SETB P2.7

KEY1: SETB K1 ;

JB K1, KEY2 ;判断K1是否按下

KEY11: ACALL DELAY_A ;延时,去抖动

SETB K1

JB K1, KEY11 ;确认键按下

ACALL CLOCKWISE

KEY2: SETB K2

JB K2, KEY1 ;判断K2是否按下

KEY21: ACALL DELAY_A ;延时,去抖动

SETB K2

JB K2, KEY21 ;确认键按下

ACALL ANTI_CLOCKWISE 6 AJMP KEY1

CLOCKWISE: RL A

MOV P3,A ;驱动电机正转

MOV P0,#0C6H ;显示CC

ACALL DELAY

RET

ANTI_CLOCKWISE:

RR A

MOV P3 , A ;驱动电机反转

MOV P0,#88H ;显示AA

ACALL DELAY

RET

DELAY: MOV R6 , #20H

DELAY22: MOV R7 , #80H

DELAY11: DJNZ R7 , DELAY11

DJNZ R6 , DELAY22

RET

DELAY_A: MOV R7,#88H

DELAY1: DJNZ R7,DELAY1

RET

end 7

七、实验思考

单片机不仅可以控制步进电机的转向,还可以控制步进电机的速度。由于每给一个脉冲,步进电机就会转相应的一个角度。这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电的调速。系统可用两种办法实现步进电机的速度控制。一种是延时法,一种是定时器中端法。具体步骤如何实现?