资源描述
综合实践报告之第二次大作业
题目:步进电机控制设计
说明:在工业电气自动化工程中,步进电机是一种常用的控制设备,它以脉冲信号控制电机的转速,在数控机床、仪器仪表、计算机外围设备以及其它自动设备中有广泛的应用。
步进电机是指一步步走的电动机,所谓“步”指转动角度,每步都会使电机转过一个固定的角度。步进电机有不同的种类,但其控制方法均相同,均以脉冲信号进行驱动,很适合使用单片机来进行控制。
本次大作业要求设计一个步进电机的控制部分。
已知:
1. 采用2相制5线步进电机,其结构如下图所示,线圈中心抽头X1与X2连接在一起;
2. 步进电机采用1相激磁法,即在每一个瞬间只有一个线圈导通,其它线圈休息;
3. 单片机与步进电机之间可采用ULN2003类的驱动IC;
要求:
1. 查找资料,设计出步进电机的硬件连接电路图;
2. 给出控制软件流程图;
3. 用汇编语言写出控制软件的代码。
提示:本作业对电机的转动方向不做要求,在实际应用中,改变线圈激磁的顺序可以改变步进电机的转动方向,每送一次激磁信号后应经过一小段时间延时,让步进电机有足够的时间建立激励磁场及转动。可以使用单片机的P0.0~P0.3端口输出控制信号,经驱动IC传至步进电机。
一. 电路图设计说明
此控制电路选用AT89S51型单片机作为驱动时序的输出控制器,其P0.1-P0.3输出作为两相四线步进电机的时序信号,经过驱动芯片ULN2003放大后输入到两相四线步进电机的输入端口;单片机P1.0-P1.2作为控制指令的输入按键K1-K3的输入端口,K1为电机正转按键,K2为电机正转按键,K3为电机停止按键,这三个按键均为高电平输入有效,按一下K1电机正转,按一下K2电机反转转,按一下K3电机停止。其硬件电路如图一:
二. 控制程序流程图
由于ULN2003是非们输出电路所以P0.0-P0.3端口输出低电平才是有效驱动电平,其控制程序流程图如图二:
三. 控制程序
K1 BIT P1.0
K2 BIT P1.1
K3 BIT P1.2
K_OLD EQU 30H
K_NEW EQU 31H
;---------------------------------------------------------
ORG 0000H
JMP MAIN
ORG 0030H
;---------------------------------------------------------
MAIN:
MOV SP,#60H
MOV P1,#00H
MOV P0,#0FFH
MOV K_OLD,#04H
MAIN1:
MOV R2,#4 ;给R2赋值4循环移位次数
CALL K_SCAN ;键扫描
MOV A,K_NEW
CJNE A,#00H,MAIN2 ;是否有按键按下
MOV A, K_OLD ;
JMP MAIN4
MAIN2:
CALL DELAY ;延时示去抖动
CALL K_SCAN ;再次判断键是否按下
MOV A,K_NEW
CJNE A,#00H,MAIN3 ; 再次判断键是否按下
MOV A, K_OLD
JMP MAIN4
MAIN3:
MOV K_OLD ,A
MAIN4:
JB ACC.0,LOOP1 ;K1按下既P1.2-P1.0输入为001电机正转指令
JB ACC.1,LOOP2 ;K2按下既P1.2-P1.0输入为010电机反转指令
JB ACC.2,LOOP3 ;K3按下既P1.2-P1.0输入为110电机停止指令
JMP MAIN1
;电机正转控制时序
LOOP1:
MOV A,#0FEH
LOPP1A:
MOV P0,A
CALL DELAY ;延时
RLC A ;左移1位
DJNZ R2,LOPP1A
JMP MAIN1
;电机反转控制时序
LOOP2:
MOV A,#0F7H
LOPP2A:
MOV P0,A
CALL DELAY ;延时
RRC A ;右移1位
DJNZ R2,LOOP1A
JMP MAIN1
;电机停止控制时序
LOOP3:
MOV A,#0FFH
MOV P0,A ;P0.0-P0.3输出1111电机停止
JMP MAIN1
;---------------------------------------------------------
;K_SCAN:
; MOV K_NEW,#00H
; MOV A,P1 ;将P1端口的输入状态读入
; ANL A,#07H ;保留P1端口状态的低三位
; MOV K_NEW,A ;将K1,K2,K3的输入状态存入K_NEW,
; RET
;---------------------------------------------------------
;---------------------------------------------------------
;延时子程序
DELAY:
MOV R6,#200
DEL:
MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,DEL
RET
;---------------------------------------------------------
展开阅读全文