步进电机调速系统.docx

上传人:b****8 文档编号:10623548 上传时间:2023-02-21 格式:DOCX 页数:14 大小:55.50KB
下载 相关 举报
步进电机调速系统.docx_第1页
第1页 / 共14页
步进电机调速系统.docx_第2页
第2页 / 共14页
步进电机调速系统.docx_第3页
第3页 / 共14页
步进电机调速系统.docx_第4页
第4页 / 共14页
步进电机调速系统.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

步进电机调速系统.docx

《步进电机调速系统.docx》由会员分享,可在线阅读,更多相关《步进电机调速系统.docx(14页珍藏版)》请在冰豆网上搜索。

步进电机调速系统.docx

步进电机调速系统

步进电机调速系统

一.设计目的

1.掌握步进电机的工作原理及控制方法

2.了解控制步进电机转速的原理

3.进一步掌握微机接口中的相关知识

4.熟悉设计系统的方法

二.设计要求

1.以8086极其支持电路为基础,配必要的存储器、定时系统、控制接口、驱动电路、LED显示接口等构成微机控制的电机调速系统。

2.对步进电机的工作原理进行分析,通过“启、停、转速”等按键命令,实现对电机的平稳启动、停止和不同速率上的匀速转动,并通过LED显示转速;

3.方案设计中要突出信号的变换、驱动电路的设计和步进电机控制程序的编制;

三.设计思路

(1)步进电机基本原理

所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,电机就回转动一次。

使用键盘控制方式能对步进电机的转动方向、速度和角度进行调节。

(2)步进电机激励方式

步进电机有三相激励,也有四相激励的。

现以两相四拍为例说明。

2相激励。

这种方式的工作波形如图所示。

它可看作是一种周期信号,每个周期可以为四个状态。

显然,任何时刻步进电机都有两相绕组有电流。

每一状态,步进电机走一步。

四.设计内容

1.程序流程图

2.源程序

P8255_AEQU9800H

P8255_BEQU9801H

P8255_CEQU9802H

P8255_MODEEQU9803H

DELAY_SETEQU07FH;延时常数

MY_STACKSEGMENTPARA'STACK'

DB100DUP(?

MY_STACKENDS

MY_DATASEGMENTPARA'DATA'

BUFDB?

KVLDB2DUP(?

);击键次数备份,键值

PTDB?

;显示缓冲区指针

DSBUFDB4DUP(?

);显示缓冲区

KDDB?

;数码管数据信号

KHDB?

;键盘行信号

KLDB?

;键盘列信号、数码管位选信号

KVADB?

;键值备份

KVBDB?

;在闪烁子程序中保存显示器原有的数据

COUNT2DB?

;击键次数

COUNT4DB?

;连续击键次数

KTBDB48H;0键码

DB44H;1

DB34H;2

DB24H;3

DB42H;4

DB32H;5

DB22H;6

DB41H;7

DB31H;8

DB21H;9

DB11H;A

DB12H;B

DB14H;C

DB18H;D

DB28H;E

DB38H;F

DB00H;10

SGTBDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H

DB0F8H,80H,90H,88H,83H,0C6H,0A1H

DB86H,8EH,0FFH,8CH,89H,8EH,0BFH,0F7H

;CHARDB'

MY_DATAENDs

MY_CODESEGMENTPARA'CODE'

MY_PROCPROCFAR

ASSUMECS:

MY_CODE,DS:

MY_DATA,SS:

MY_STACK

START:

MOVAX,MY_DATA

MOVDS,AX

SSS:

MOVDX,P8255_MODE

MOVAL,81H;写8255控制字A、B输出,C输入

OUTDX,AL

START1:

MOVBX,OFFSETDSBUF

MOVPT,BL

MOVDSBUF,15H;_

MOVDSBUF+1,10H;空格

MOVDSBUF+2,10H

MOVDSBUF+3,10H

;

START2:

CALLBLINK3;键盘扫描、显示子程序、光标闪动

START3:

CALLCHAG;转数字键处理程序

;CALLDELAY

JMPSTART2;转下一轮处理程序

MY_PROCENDp

CHAGPROCNEAR

MOVBH,00H

MOVBL,PT

MOVAL,COUNT4

MOV[BX],AL;键值送到显示缓冲区中

CMPBL,OFFSET[DSBUF+3]

JNZCHAG2

movBL,OFFSETDSBUF

MOVPT,BL

CHAG1:

RET

CHAGENDp

CHAG2:

INCBL

MOVPT,BL

JMPCHAG1

BLINKPROCNEAR

MOVCX,100H;熄灭显示器时间常数

MOVBH,00H

MOVBL,PT

MOVAl,[BX]

MOVKVB,AL

;保存原显示器数据

MOVAL,10H;填入熄灭显示器的码

MOV[BX],AL

BLINK1:

CALLDSKS;键盘扫描

BLINK2:

CMPCOUNT4,10H

JNZBLINK6;键按下返回

LOOPBLINK1;没键按下继续循环

MOVAL,KVB

MOVBL,PT

MOV[BX],AL

BLINK3:

MOVCX,150H;点亮显示器时间常数

BLINK4:

CALLDSKS

BLINK5:

CMPCOUNT4,10H

JNZBLINK7;键按下返回

LOOPBLINK4;没键按下继续循环

JMPBLINK

BLINK6:

MOVAL,KVB;恢复原显示器中的数据

MOVBL,PT

MOV[BX],AL

BLINK7:

RET

BLINKENDp

DSKSPROCNEAR;键盘扫描处理程序

PUSHCX

CALLDSUP;显示

CALLKBS;键盘扫描

MOVAL,KVL+1;取上次按键键值

CMPKVA,AL;与本次键值相比

MOVAL,KVL;按键次数

MOVCOUNT2,AL

MOVAL,KVL

MOVCOUNT4,AL

JZDSKS1

MOVCOUNT2,0FFH;不相等,重新赋值

MOVCOUNT4,0FFH

DSKS1:

DECCOUNT4

CMPCOUNT4,0F8H;为E0?

JZDSKS3

CMPCOUNT4,0EH;为0E?

JZDSKS3

CMPCOUNT4,00H;为00?

JZDSKS2

MOVCOUNT4,10H;赋值

DECCOUNT2

JMPDSKS4

DSKS2:

MOVCOUNT4,0fH;按下键时间足够长则为连续击键

DSKS3:

MOVAL,COUNT4

MOVCOUNT2,AL

MOVAL,KVA

MOVCOUNT4,AL

DSKS4:

MOVAL,COUNT2

MOVKVL,AL

MOVAL,KVA

MOVKVL+1,AL;备份键值

MOVAL,COUNT4

POPCX

RET

DSKSENDp

DSUPPROCNEAR

PUSHCX

MOVCX,04H;显示器个数

MOVKL,01H;选中的显示器

MOVBX,OFFSETDSBUF

DSUP2:

MOVAL,00H

MOVDX,P8255_B;关闭显示器

OUTDX,AL

MOVAL,[BX];取显示缓冲区中的数据

PUSHBX

MOVAH,00H

MOVDI,AX

MOVBX,OFFSETSGTB;编码

MOVAX,[BX+DI]

MOVAH,00H

POPBX

MOVDX,P8255_A;送显示器显示

OUTDX,AL

INCBX

MOVAL,KL

MOVDX,P8255_B;送位选信号

OUTDX,AL

ROLAL,1

MOVKL,AL

CALLDELAY;下一位

PUSHCX

MOVCX,-1

LOOP$

POPCX

LOOPDSUP2

POPCX

MOVAL,00H

MOVDX,P8255_B;关闭显示器

OUTDX,AL

RET

DSUPENDp

KBSPROCNEAR;键盘扫描程序

MOVDX,P8255_A;清显示器

MOVAL,0FFH

OUTDX,AL

MOVCX,04H;送列数

MOVKL,0FEH;扫描列初始值

KBS1:

MOVAL,KL

MOVDX,P8255_B;逐列清零

OUTDX,AL

SALAL,1

MOVKL,AL

MOVDX,P8255_C;读行信号

INAL,DX

NOTAL

ANDAL,0FH

CMPAL,00H;是否有键按下

JNZKBS2

LOOPKBS1;没键扫描下一列

KBS2:

CMPAL,0C0H

JMPK0

CMPAL,0F9H

JMPK1

CMPAL,0A4H

JMPK2

CMPAL,0B0H

JMPDSUP2

K0:

MOVBL,18H

CALLDELAY

MOVAL,BUF

RORAL,1

MOVBUF,AL

JMPDSUP2

K1:

MOVBL,20H

CALLDELAY

MOVAL,BUF

ROLAL,1

MOVBUF,AL

JMPDSUP2

K2:

MOVBL,30H

CALLDELAY

MOVAL,BUF

RORAL,1

MOVBUF,AL

JMPDSUP2

MOVBX,CX

MOVCX,04H;拼装键号

SALBX,CL

MOVCX,BX

ORAL,CL

MOVKVA,AL

MOVDI,10H;键盘个数

MOVBX,OFFSETKTB

KBS3:

MOVAL,[BX+DI]

CMPAL,KVA;计算键值,无键按下返回00H

JNZKBS5

KBS4:

MOVAX,DI

MOVKVA,AL;保存键值

CALLBREAK

RET

KBS5:

DECDI

MOVAX,DI

CMPAL,00H

JNZKBS3

JMPKBS4

KBSENDp

 

DELAYPROCNEAR;延时程序

PUSHF

PUSHDX

PUSHCX

MOVDX,DELAY_SET

D1:

MOVCX,-1

 

D2:

DECBL

DECCX

JNZD2

DECDX

JNZD1

POPCX

POPDX

POPF

RET

DELAYENDp

BREAKPROCNEAR;按任意键退出

PUSHF

PUSHAX

PUSHDX

MOVAH,06H

MOVDL,0FFH

INT21H

JERETURN

MOVAX,4C00H

INT21H

RETURN:

POPDX

POPAX

POPF

RET

BREAKENDP

MY_CODEENDS

ENDSTART

五.运行结果

当按下键盘上的0键时,电机开始转动,当按下键盘上的1键时,电机开始正向转动,当按下键盘上的2键时,电机开始反向转动,当按下键盘上的3键时,电机停止转动。

当键盘上有键按下时,对应的数值轮流显示在四个数码管上。

 

六.心得体会

通过这两周的硬件实习,我从中学到了很多东西。

在刚开始实习时,我首先学会了怎样使用PROTEL9E这个软件工具。

从查找芯片到联线,我现在已经很熟悉了;其次,我对计算机组成与接口技术这门可又进行了进一步的学习,掌握了8255的各种工作方式及其应用知道怎样在系统接口实验单元上构造实验电路。

从一开始的调试到最终运行成功,这中间遇到了不少困难,在老师的指点下解决了问题,从而我学到了很多。

但是由于时间等一些问题,最终并没有达到老师的要求。

总的来说,实验中我还是有很多收获的。

为今后打下了牢固的基础。

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

当前位置:首页 > 总结汇报 > 工作总结汇报

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

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