步进电机调速系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步进电机调速系统
一.设计目的
1.掌握步进电机的工作原理及控制方法
2.了解控制步进电机转速的原理
3.进一步掌握微机接口中的相关知识
4.熟悉设计系统的方法
二.设计要求
1.以8086极其支持电路为基础,配必要的存储器、定时系统、控制接口、驱动电路、LED显示接口等构成微机
控制的电机调速系统。
2.对步进电机的工作原理进行分析,通过“启、停、转速”
等按键命令,实现对电机的平稳启动、停止和不同
速率上的匀速转动,并通过LED显示转速;
3.方案设计中要突出信号的变换、驱动电路的设计和步进电机控制程序的编制;
三.设计思路
(1)步进电机基本原理
所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,电机就回转动一次。使用键盘控制方式能对步进电机的转动方向、速度和角度进行调节。
(2)步进电机激励方式
步进电机有三相激励,也有四相激励的。现以两相四拍
为例说明。
2相激励。这种方式的工作波形如图所示。
它可看作是一种周期信号,每个周期可以为四个状态。显然,任何时刻步进电机都有两相绕组有电流。每一状态,步进电机走一步。
四.设计内容
1.程序流程图
2. 源程序
P8255_A EQU 9800H
P8255_B EQU 9801H
P8255_C EQU 9802H
P8255_MODE EQU 9803H
DELAY_SET EQU 07FH ;延时常数MY_STACK SEGMENT PARA 'STACK'
DB 100 DUP(?)
MY_STACK ENDS
MY_DATA SEGMENT PARA 'DATA'
BUF DB ?
KVL DB 2 DUP(?) ;击键次数备份,键值PT DB ? ;显示缓冲区指针DSBUF DB 4 DUP(?) ;显示缓冲区
KD DB ? ;数码管数据信号
KH DB ? ;键盘行信号
KL DB ? ;键盘列信号、数码管位选信号
KV A DB ? ;键值备份
KVB DB ? ;在闪烁子程序中保存显示器原有的数据
COUNT2 DB ? ;击键次数
COUNT4 DB ? ;连续击键次数
KTB DB 48H ;0 键码
DB 44H ;1
DB 34H ;2
DB 24H ;3
DB 42H ;4
DB 32H ;5
DB 22H ;6
DB 41H ;7
DB 31H ;8
DB 21H ;9
DB 11H ;A
DB 12H ;B
DB 14H ;C
DB 18H ;D
DB 28H ;E
DB 38H ;F
DB 00H ;10
SGTB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H
DB 0F8H,80H,90H,88H,83H,0C6H,0A1H
DB 86H,8EH,0FFH,8CH,89H,8EH,0BFH,0F7H
; CHAR DB '
MY_DATA ENDs
MY_CODE SEGMENT PARA 'CODE'
MY_PROC PROC FAR
ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK START: MOV AX,MY_DATA
MOV DS,AX
SSS: MOV DX,P8255_MODE
MOV AL,81H ;写8255控制字A、B输出,C输入
OUT DX,AL
START1: MOV BX,OFFSET DSBUF
MOV PT,BL
MOV DSBUF,15H ;_
MOV DSBUF+1,10H ;空格
MOV DSBUF+2,10H
MOV DSBUF+3,10H
;
START2: CALL BLINK3 ;键盘扫描、显示子程序、光标闪动
START3: CALL CHAG ;转数字键处理程序; CALL DELAY
JMP START2 ;转下一轮处理程序
MY_PROC ENDp
CHAG PROC NEAR
MOV BH,00H
MOV BL,PT
MOV AL,COUNT4
MOV [BX],AL ;键值送到显示缓冲区中
CMP BL,OFFSET [DSBUF+3]
JNZ CHAG2
mov BL,OFFSET DSBUF
MOV PT,BL
CHAG1: RET
CHAG ENDp
CHAG2: INC BL
MOV PT,BL
JMP CHAG1
BLINK PROC NEAR
MOV CX,100H ;熄灭显示器时间常数
MOV BH,00H
MOV BL,PT
MOV Al,[BX]
MOV KVB,AL
;保存原显示器数据
MOV AL,10H ;填入熄灭显示器的码
MOV [BX],AL
BLINK1: CALL DSKS ;键盘扫描
BLINK2: CMP COUNT4,10H
JNZ BLINK6 ;键按下返回
LOOP BLINK1 ;没键按下继续循环