实验五-步进电机控制(1).doc

上传人:b****1 文档编号:150387 上传时间:2022-10-04 格式:DOC 页数:18 大小:547KB
下载 相关 举报
实验五-步进电机控制(1).doc_第1页
第1页 / 共18页
实验五-步进电机控制(1).doc_第2页
第2页 / 共18页
实验五-步进电机控制(1).doc_第3页
第3页 / 共18页
实验五-步进电机控制(1).doc_第4页
第4页 / 共18页
实验五-步进电机控制(1).doc_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

实验五-步进电机控制(1).doc

《实验五-步进电机控制(1).doc》由会员分享,可在线阅读,更多相关《实验五-步进电机控制(1).doc(18页珍藏版)》请在冰豆网上搜索。

实验五-步进电机控制(1).doc

实验五步进电机控制

一、实验目的与要求

1、了解步进电机的基本原理,掌握步进电机的转动编程方法

2、了解影响电机转速的因素有那些

二、实验设备

STAR系列实验仪一套、PC机一台。

三、实验内容

编写程序:

使用G5区的键盘控制步进电机的正反转、调节转速,连续转动或转动指定步数;将相应的数据显示在G5区的数码管上。

四、控制原理

步进电机的驱动原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲来控制,所以调节脉冲的频率便可改变步进电机的转速,微控制器最适合控制步进电机。

另外,由于电机的转动惯量的存在,其转动速度还受驱动功率的影响,当脉冲的频率大于某一值(本实验为f.>100hz)时,电机便不再转动。

实验电机共有四个相位(A,B,C,D),按转动步骤可分单4拍(A->B->C->D->A),双4拍(AB->BC->CD->DA->AB)和单双8拍(A->AB->B->BC->C->CD->D->DA->A).

五、程序框图

N

Y

N

Y

N

N

N

N

0->需要刷新显示标志

1->步进电机未转动过标志

1->转动方向标志(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

0->需要刷新显示标志

调用步数调整子程序

关中断(终止步进电机转动)

数码管的1、2、3位->2、3、4位

键值送给数码管的第一位

调用改变转向子程序

键值>9

键值=0AH

调用增速子程序

调用减速子程序

调用启动步进电机子程序

Y

键值=0BH

键值=0CH

键值=0DH

开始

Y

Y

Y

改变方向子程序:

Y

Y

N

N

Y

开始

转动方向标志=0

91H->下次送给步进电机值

下次送给步进电机值循环右移二次

1->转动方向标志

0->送给数码管的第7位

步进电机未转动过标志

33H->下次送给步进电机值

下次送给步进电机值循环左移二次

0->转动方向标志

1->送给数码管的第7位

步进电机未转动过标志

返回

启动步进电机子程序:

Y

N

Y

开始

0->步进电机未转动过标志

取转动步数

取转速对应的延时值(转速延时)

初始转速延时1=初始转速延时

转速延时<50

初始转速延时=50

返回

开中断

初始转速延时=转速延时

增速子程序:

Y

N

开始

转速=11

转速+1

转速送给数码管第5位

返回

减速子程序:

N

Y

开始

转速=0

转速-1

转速送给数码管第5位

返回

定时中断程序:

N

N

Y

N

N

N

Y

Y

N

Y

初始转速延时1=转速延时

初始转速延时-1=0

初始转速延时1-1

初始转速延时=初始转速延时1

1-1

转动方向标志=0

下次送给步进电机值循环右移一次

1-1

转动步数=0

1->需要刷新显示标志转动步数减一

1-1

转动步数=0

关中断

清中断标志

开始

下次送给步进电机值循环左移一次

1-1

返回

下次送给步进电机值->8255的PC口(控制步进电机转动一步)

Y

六、实验原理图

七、实验步骤

1、主机连线说明:

E1区:

A、B、C、D

——

B4区:

PC0、PC1、PC2、PC3

E5区:

CLK

——

B2区:

2M

E5区:

CS、A0

——

A3区:

CS5、A0

E5区:

A、B、C、D

——

G5区:

A、B、C、D

B3区:

CS、A0

——

A3区:

CS1、A0

B3区:

INT、INTA

——

ES8688:

INTR、INTA

C5区:

CS(8253)、A0、A1

——

A3区:

CS2、A0、A1

C5区:

GATE0

——

C1区:

VCC

C5区:

CLK0

——

B2区:

1M

C5区:

OUT0

——

B3区:

IR0

B4区:

CS(8255)、A0、A1

——

A3区:

CS3、A0、A1

2、调试程序,查看运行结果是否正确

八、演示程序

.MODEL

TINY

EXTRN

Display8:

NEAR,SCAN_KEY:

NEAR

IO8259_0

EQU

0F000H

IO8259_1

EQU

0F001H

Con_8253

EQU

0E003H

T0_8253

EQU

0E000H

IO8255_Con

EQU

0D003H

;CS3

IO8255_PC

EQU

0D002H

.STACK

100

.DATA

StepControl

DB

0

;下一次送给步进电机的值

buffer

DB

8DUP(0)

;显示缓冲区,8个字节

buffer1

DB

8DUP(0)

;显示缓冲区,8个字节

SpeedNo

DB

0

;选择哪一级速度

StepDelay

DB

0

;转动一步后,延时常数

StartStepDelay

DB

0;若选择速度过快,延时由长到短,最终使用对应延时常数

StartStepDelay1

DB

0

;StartStepDelay

bFirst

DB

0

;有没有转动过步进电机

bClockwise

DB

0 ;=1顺时针方向=0逆时针方向转动

bNeedDisplay

DB

0

;已转动一步,需要显示新步数

StepCount

DW

0

;需要转动的步数

StepDelayTab:

DB

250,125,83,62,50,42,36,32,28,25,22,21

.CODE

START:

MOV

AX,@DATA

MOV

DS,AX

MOV

ES,AX

NOP

MOV

bFirst,1

;有没有转动过步进电机

MOV

bClockwise,1

;顺时针方向

MOV

StepControl,33H

;下一次送给步进电机的值

MOV

SpeedNo,5

;第五级速度

CALL

Init8255

CALL

Init8253

CALL

Init8259

CALL

WriIntver

MOV

buffer,0

;显示缓冲器初始化

MOV

buffer+1,0

MOV

buffer+2,0

MOV

buffer+3,0

MOV

buffer+4,10H

MOV

AL,SpeedNo

MOV

buffer+5,AL

MOV

buffer+6,10H

MOV

buffer+7,0

STAR2:

LEA

SI,buffer

LEA

DI,buffer1

MOV

CX,8

REP

MOVSB

LEA

SI,buffer1

CALL

Display8

STAR3:

CALL

Scan_Key

JB

STAR5

CMP

bNeedDisplay,0

JZ

STAR3

MOV

bNeedDisplay,0

CALL

Step_SUB_1

JMP

STAR2

STAR5:

CLI

;终止步进电机转动

CMP

AL,10

JNB

STAR1

MOV

AH,buffer+2

MOV

buffer+3,AH

MOV

AH,buffer+1

MOV

buffer+2,AH

MOV

AH,buffer

MOV

buffer+1,AH

MOV

buffer,AL

JMP

STAR2

STAR1:

CMP

AL,14

JNB

STAR3

LEA

SI,DriverTab

SUB

AL,10

SHL

AL,1

XOR

AH,AH

MOV

BX,AX

JMP

CS:

[SI+BX]

DriverTab:

DW

Direction

;转动方向

DW

Speed_up

;提高转速

DW

Speed_Down

;降低转速

DW

Exec

;步进电机根据方向、转速、步数开始转动

Direction:

CMP

bClockwise,0

JZ

Clockwise

MOV

bClockwise,0

MOV

buffer+7,1

AntiClockwise:

CMP

bFirst,0

JZ

AntiClockwise1

MOV

StepControl,91H

JMP

Direction1

AntiClockwise1:

MOV

AL,StepControl

ROR

AL,2

MOV

StepControl,AL

JMP

Direction1

Clockwise:

MOV

bClockwise,1

MOV

buffer+7,0

CMP

bFirst,0

JZ

Clockwise1

MOV

StepControl,33H

JMP

Direction1

Clockwise1:

MOV

AL,StepControl

ROL

AL,2

MOV

StepControl,AL

Direction1:

JMP

STAR2

Speed_up:

MOV

AL,SpeedNo

CMP

AL,11

JZ

Speed_up2

Speed_up1:

INC

AL

MOV

SpeedNo,AL

MOV

buffer+5,AL

Speed_up2:

JMP

STAR2

Speed_Down:

MOV

AL,SpeedNo

CMP

AL,0

JZ

Speed_Down1

DEC

AL

MOV

SpeedNo,AL

MOV

buffer+5,AL

Speed_Down1:

JMP

STAR2

Exec:

MOV

bFirst,0

CALL

TakeStepCount

LEA

BX,StepDelayTab

MOV

AL,SpeedNo

XLAT

MOV

StepDelay,AL

CMP

AL,50

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1