基于51单片机的两相四线步进电机控制系统(汇编版)
关于步进电机的工作原理大家可以在网上查查,这里主要介绍的是两相四线的步进电机控制,采用的是四拍方式。
要求如下:
1、有开机停止键。按第奇数次时为开机,第偶数次为停止。此例选择P3.3口。
2、有加速键。加速范围为1~9档。
3、有减速键。减速范围为1~9档。
源程序如下:
ENA EQU P1.0
ENB EQU P1.1
IN1 EQU P1.2
IN2 EQU P1.3
IN3 EQU P1.4
IN4 EQU P1.5
SWITCH EQU P3.3
FAST EQU P3.6
SLOW EQU P3.5
CYCLENUM EQU 50H ;存放对应定时循环次数
TEMP EQU 53H ;存放按键次数。初值为5,每按加速叠加1,按减速递减
MARK EQU 56H ;启动停止标识
LEDBUF EQU 57H
ORG 0
AJMP START
;*****************检测是否开启启动电机键***************************
START:
MOV P0,#0 ;清显示
SETB MARK ;预启动电机工作,标识为1
MOV TEMP,#5 ;开始工作于5Hz
MOV CYCLENUM,#01H ;循环1次
JNB SWITCH,NEXT ;按键按下?
SJMP START ;没有返回继续检测
NEXT:
CALL DELAY ;消抖确认
JNB SWITCH,MAIN ;再次确认按键,不为1说明按键按下
SJMP START ;没有按下,继续检测
;*****************开始运行电机***************************************
MAIN:
MOV A,TEMP
MOV DPTR,#TAB4
MOVC A,@A+DPTR
MOV LEDBUF,A ;送显示
CALL DISPLAY
LOOP:
JB MARK,WORK ;检测运行标识是否为1,为1则继续运行,为0则停止运行
NOTWORK:
CLR ENA
CLR ENB
SJMP START
WORK: