实验五-步进电机控制(1)Word格式文档下载.doc
《实验五-步进电机控制(1)Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《实验五-步进电机控制(1)Word格式文档下载.doc(18页珍藏版)》请在冰豆网上搜索。
转动方向标志(1:
表示顺时针方向)
33H->
下次送给步进电机值
5->
步进电机转速
初始化8255(PC口输出)
初始化8253(计数器T0设置在模式2状态,BCD码计数,CLK0/210)
初始化8259(允许8253中断)
初始化8253中断向量
初始化显示缓冲区:
(数码管第8位:
0,顺时针方向;
5、7位消隐;
6位:
转速;
1、2、3、4位:
0,表示连续转动,其他值表示需要转动的步数)
调用显示子程序
有键按下
需要刷新显示标志=1
调用步数调整子程序
关中断(终止步进电机转动)
数码管的1、2、3位->
2、3、4位
键值送给数码管的第一位
调用改变转向子程序
键值>
9
键值=0AH
调用增速子程序
调用减速子程序
调用启动步进电机子程序
键值=0BH
键值=0CH
键值=0DH
开始
改变方向子程序:
转动方向标志=0
91H->
下次送给步进电机值循环右移二次
转动方向标志
送给数码管的第7位
下次送给步进电机值循环左移二次
返回
启动步进电机子程序:
取转动步数
取转速对应的延时值(转速延时)
初始转速延时1=初始转速延时
转速延时<
50
初始转速延时=50
开中断
初始转速延时=转速延时
增速子程序:
转速=11
转速+1
转速送给数码管第5位
减速子程序:
转速=0
转速-1
定时中断程序:
初始转速延时1=转速延时
初始转速延时-1=0
时
初始转速延时1-1
初始转速延时=初始转速延时1
1-1
下次送给步进电机值循环右移一次
转动步数=0
需要刷新显示标志转动步数减一
关中断
清中断标志
下次送给步进电机值循环左移一次
下次送给步进电机值->
8255的PC口(控制步进电机转动一步)
六、实验原理图
七、实验步骤
1、主机连线说明:
E1区:
A、B、C、D
——
B4区:
PC0、PC1、PC2、PC3
E5区:
CLK
B2区:
2M
CS、A0
A3区:
CS5、A0
G5区:
B3区:
CS1、A0
INT、INTA
ES8688:
INTR、INTA
C5区:
CS(8253)、A0、A1
CS2、A0、A1
GATE0
C1区:
VCC
CLK0
1M
OUT0
IR0
CS(8255)、A0、A1
CS3、A0、A1
2、调试程序,查看运行结果是否正确
八、演示程序
.MODEL
TINY
EXTRN
Display8:
NEAR,SCAN_KEY:
NEAR
IO8259_0
EQU
0F000H
IO8259_1
EQU
0F001H
Con_8253
0E003H
T0_8253
0E000H
IO8255_Con
0D003H
;
CS3
IO8255_PC
0D002H
.STACK
100
.DATA
StepControl
DB
下一次送给步进电机的值
buffer
8DUP(0)
显示缓冲区,8个字节
buffer1
SpeedNo
选择哪一级速度
StepDelay
0
转动一步后,延时常数
StartStepDelay
0;
若选择速度过快,延时由长到短,最终使用对应延时常数
StartStepDelay1
bFirst
有没有转动过步进电机
bClockwise
0 ;
=1顺时针方向=0逆时针方向转动
bNeedDisplay
已转动一步,需要显示新步数
StepCount
DW
需要转动的步数
StepDelayTab:
250,125,83,62,50,42,36,32,28,25,22,21
.CODE
START:
MOV
AX,@DATA
MOV
DS,AX
ES,AX
NOP
bFirst,1
bClockwise,1
顺时针方向
StepControl,33H
SpeedNo,5
第五级速度
CALL
Init8255
Init8253
Init8259
WriIntver
buffer,0
显示缓冲器初始化
buffer+1,0
buffer+2,0
buffer+3,0
buffer+4,10H
MOV
AL,SpeedNo
buffer+5,AL
buffer+6,10H
buffer+7,0
STAR2:
LEA
SI,buffer
LEA
DI,buffer1
CX,8
REP
MOVSB
SI,buffer1
Display8
STAR3:
Scan_Key
JB
STAR5
CMP
bNeedDisplay,0
JZ
STAR3
Step_SUB_1
JMP
STAR2
STAR5:
CLI
终止步进电机转动
AL,10
JNB
STAR1
AH,buffer+2
buffer+3,AH
AH,buffer+1
buffer+2,AH
AH,buffer
buffer+1,AH
buffer,AL
STAR1:
CMP
AL,14
SI,DriverTab
SUB
SHL
AL,1
XOR
AH,AH
BX,AX
JMP
CS:
[SI+BX]
DriverTab:
Direction
转动方向
Speed_up
提高转速
Speed_Down
降低转速
Exec
步进电机根据方向、转速、步数开始转动
Direction:
bClockwise,0
Clockwise
buffer+7,1
AntiClockwise:
bFirst,0
AntiClockwise1
StepControl,91H
Direction1
AntiClockwise1:
AL,StepControl
ROR
AL,2
StepControl,AL
Clockwise:
bClockwise,1
Clockwise1
Clockwise1:
ROL
Direction1:
Speed_up:
AL,11
JZ
Speed_up2
Speed_up1:
INC
AL
SpeedNo,AL
Speed_up2:
Speed_Down:
AL,0
Speed_Down1
DEC
Speed_Down1:
Exec:
TakeStepCount
BX,StepDelayTab
XLAT
StepDelay,AL
AL,50