步进电机角度控制1.docx

上传人:b****1 文档编号:2393083 上传时间:2022-10-29 格式:DOCX 页数:16 大小:76.66KB
下载 相关 举报
步进电机角度控制1.docx_第1页
第1页 / 共16页
步进电机角度控制1.docx_第2页
第2页 / 共16页
步进电机角度控制1.docx_第3页
第3页 / 共16页
步进电机角度控制1.docx_第4页
第4页 / 共16页
步进电机角度控制1.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

步进电机角度控制1.docx

《步进电机角度控制1.docx》由会员分享,可在线阅读,更多相关《步进电机角度控制1.docx(16页珍藏版)》请在冰豆网上搜索。

步进电机角度控制1.docx

步进电机角度控制1

考试序列号19

论文题目:

步进电机角度控制

(1)

课程名称:

计算机控制技术

学院自动化学院

专业班级

学号

姓名

指导教师

 

2013年06月25日

一、系统设计说明

1.硬件设计

本次设计要求通过键盘按键实现对步进电机的转动次数和每次转动的角度的控制,并通过数码管显示出来。

本方案中通过按键对步进电机的转动角度进行设定,给各个按键设置不同的键值。

按下按键时,给8255A一个信号设定步进电机下一步的动作。

8086通过8255A的数据总线读取该信号,并作出反应,通过给8255A一系列的指令驱动其工作,从而驱动步进电机和LED显示器。

 

2.软件设计

显示模块设计说明:

为使显示程序具有通用性和灵活性,在8086内设置一个显示缓冲区,显示缓冲区的每个单元与LED的各位一一对应。

当主程序需要显示,只需将要显示的字符送入显示缓冲区,然后调用显示子程序。

显示子程序的任务则是逐一取出显示缓冲区中的字符、查字形表转换成相应字型码,然后通过字段口输出显示。

显示模块是用四位七段数码管来显示转动次数和每次转动的角度。

给八个按键设置不同的子程序,当按下按键时,根据事先设定好的各个按键对应的转动角度的值输出到数码管进行显示。

步进电机模块设计说明:

在此设计中,采用的是八拍步进电机。

步进电机控制程序就是完成环形分配器的任务,从而控制电动机的转动,以达到控制转动角度和位移的目的。

控制模型可以以立即数的形式一一给出。

对于步进电机模块的程序设计采用循环程序设计方法。

先把转动的次数和角度的控制模型存放在内存单元中,然后再逐一从单元中取出控制模块并输出。

首先启动,按下按键选择步进电机的角度,然后读入转动的控制模型驱动步进电机转动。

二、系统原理图(见任务书)

 

三、设计流程图、

开始

8255初始化

检测是否有N

按键按下

Y

检测是否有转动电位

SET键按下Y器调角度

N

检测STARTY根据保存的N检测C键

键是否按下数据依次转是否按下

动步进电机

NY

检测CLRN保存所调的

键是否按下角度数据

Y

根据保存的

数据依次反

转步进电机

 

四、源程序

STACKSEGMENT

DB64DUP(?

STACKENDS

DATASEGMENT

DATA6DB3FH,06H,5BH,4FH,66H,6DH,07H,7FH,6FH,77H

DATA1DB01H,03H,02H,06H

DATA3DB04H,0CH,08H,09H;正转

DATA11DB00H

DATA2DB00H

ORG0080H

DATA4DB00H,00H,00H,00H;保存所要转的数据

ORG0100H

DUSHUDB3FH,3FH,3FH,3FH;数码管显示的值

DATA44DB02H,03H,01H,09H

DATA55DB08H,0CH,04H,06H;反转

DATA444DB00H;走过4拍的总次数

CISHUDB00H;步进电机所要转的次数

SETSHUDB00H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,88H

MOVDX,0606H

OUTDX,AL;初始化

STT:

MOVAL,00H

MOVDX,0600H

OUTDX,AL

NEXT:

MOVDX,0604H

INAL,DX

ANDAL,30H

CMPAL,30H

JNZKEY

CALLXIANSHI

JMPSTT;检测是否有按键按下

KEY:

MOVAL,0F7H

MOVDX,0600H

OUTDX,AL

MOVDX,0604H

INAL,DX

TESTAL,10H;检测SET键是否按下

JNZKEY1

CALLKEY_SET

KEY1:

MOVAL,0BFH

MOVDX,0600H

OUTDX,AL

MOVDX,0604H

INAL,DX

TESTAL,10H;检测START是否按下

JNZKEY2

CALLKEY_START

KEY2:

MOVAL,0EFH

MOVDX,0600H

OUTDX,AL

MOVDX,0604H

INAL,DX

TESTAL,20H;检测CLR键是否按下

JNZSTT

CALLKEY_CLR

JMPSTT

KEY_START:

LEABX,CISHU

MOVAL,[BX]

CMPAL,00H;检测是否有数据保存

JZSTT

LEASI,DATA4

MOVAL,[SI]

MOVAH,00H

A0:

MOVBX,0018H

MULBX

MOVBX,0011H

DIVBX

MOVBL,0FH

DIVBL;计算转多少次4拍

MOVAH,AL

LEADI,DATA444

ADDAL,[DI]

MOV[DI],AL;保存走过4拍的总次数

A1:

LEABX,DATA1

MOVCX,0004H

A2:

MOVAL,[BX]

MOVDX,0604H

OUTDX,AL

CALLXIANSHI

INCBX

LOOPA2

DECAH

JZA000

A3:

LEABX,DATA3

MOVCX,0004H

A4:

MOVAL,[BX]

MOVDX,0604H

OUTDX,AL

CALLXIANSHI

INCBX

LOOPA4;电机正转

DECAH

JZA000

JMPA1

RET

A000:

CALLTIME2

LEABX,CISHU

MOVAL,[BX]

DECAL

MOV[BX],AL

JZB3;判断步进电机是否还要继续转

INCSI

MOVAL,[SI]

MOVAH,00H

JMPA0

B3:

JMPSTT

KEY_CLR:

LEABX,DATA444

MOVAL,[BX]

TESTAL,01H

JZB10;计算反转的第一位置

JMPB20

B10:

MOVAX,0000H

LEASI,DATA55

MOVCX,0004H

A20:

MOVAL,[SI]

MOVDX,0604H

OUTDX,AL

CALLXIANSHI

INCBX

LOOPA20

DECAH

JNZA00

JMPSTT

A00:

LEABX,DATA44

MOVCX,0004H

A30:

MOVAL,[BX]

MOVDX,0604H

OUTDX,AL

CALLXIANSHI

INCBX

LOOPA30;电机反转

DECAH

JNZB10

JMPSTT

B20:

MOVAX,0000H

LEASI,DATA44

MOVCX,0004H

A200:

MOVAL,[SI]

MOVDX,0604H

OUTDX,AL

CALLXIANSHI

INCBX

LOOPA200

DECAH

JNZA900

JMPSTT

A900:

LEABX,DATA55

MOVCX,0004H

A300:

MOVAL,[BX]

MOVDX,0604H

OUTDX,AL

CALLXIANSHI

INCBX

LOOPA300

DECAH

JNZB20

JMPSTT

KEY_SET:

MOVDX,0640H

OUTDX,AL;启动AD转换

CALLXIANSHI

INAL,DX

LEASI,DATA2

MOV[SI],AL

MOVAH,00H

MOVBX,18H

MULBX

MOVBX,11H

DIVBX

MOVBL,64H

DIVBL

LEABX,DATA6

XLATDATA6

LEASI,DUSHU

MOV[SI+1],AL;保存数码管要显示的数

MOVAL,AH

MOVAH,00H

MOVBL,0AH

DIVBL

LEABX,DATA6

XLATDATA6

LEASI,DUSHU

MOV[SI+2],AL

MOVAL,AH

LEABX,DATA6

XLATDATA6

LEASI,DUSHU

MOV[SI+3],AL

CALLXIANSHI

MOVAL,0F7H

MOVDX,0600H

OUTDX,AL

MOVDX,0604H

INAL,DX

TESTAL,20H

JNZKEY_SET

JMPB0

RET

B0:

CALLB1

JMPSTT

B1:

PUSHBX

PUSHSI

PUSHDI

LEABX,CISHU

MOVAL,[BX]

INCAL

MOV[BX],AL

LEABX,DATA11

MOV[BX],AL

MOVAH,00H

MOVCX,AX

LEASI,DATA4

B2:

INCSI

LOOPB2

DECSI

LEADI,DATA2

MOVAL,[DI]

MOV[SI],AL

POPDI

POPSI

POPBX

RET

XIANSHI:

PUSHBX;显示子程序

PUSHDX

PUSHAX

LEABX,DUSHU

MOVAL,[BX]

MOVDX,0602H

OUTDX,AL

MOVAL,0BFH

MOVDX,0600H

OUTDX,AL

CALLTIME

INCBX

MOVAL,[BX]

MOVDX,0602H

OUTDX,AL

MOVAL,0DFH

MOVDX,0600H

OUTDX,AL

CALLTIME

INCBX

MOVAL,[BX]

MOVDX,0602H

OUTDX,AL

MOVAL,0EFH

MOVDX,0600H

OUTDX,AL

CALLTIME

INCBX

MOVAL,[BX]

MOVDX,0602H

OUTDX,AL

MOVAL,0F7H

MOVDX,0600H

OUTDX,AL

CALLTIME

POPAX

POPDX

POPBX

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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