微控课设 步进电机.docx

上传人:b****7 文档编号:8972370 上传时间:2023-02-02 格式:DOCX 页数:45 大小:300.58KB
下载 相关 举报
微控课设 步进电机.docx_第1页
第1页 / 共45页
微控课设 步进电机.docx_第2页
第2页 / 共45页
微控课设 步进电机.docx_第3页
第3页 / 共45页
微控课设 步进电机.docx_第4页
第4页 / 共45页
微控课设 步进电机.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

微控课设 步进电机.docx

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

微控课设 步进电机.docx

微控课设步进电机

计算机控制技术课程设计指导书

计算机控制技术

课程设计报告

 

设计题目:

步进电机控制系统设计

班级:

学号:

姓名:

时间:

目录

1系统概述-

2系统硬件设计-

2.1系统硬件原理图-

2.2各硬件单元功能说明及I/O口、功能键分配-

2.3硬件连接图-

3系统软件设计-

3.1工作方式下的控制模型-

3.2流程图-

4结束语-

系统概述

步进电动机是一种将电脉冲信号转换相应的角位移的特种电动机。

是工业过程控制及仪表中的主要控制元件之一。

步进电动机具有快速起动能力,而且精度高,在数字控制系统中可以直接接受来自计算机的数字信号,不需要进行数/模转换,所以步进电动机在定位场合得到了广泛应用。

本次课程设计通过键盘控制四相电动机的起动,单四拍、双四拍、四相八拍三种

工作方式及正反转的选择。

并通过七段数码管显示剩余工作步数。

从而达到手动控制与直观显示的结合。

本系统应用芯片8255,LED显示单元,键盘模拟控制键,四相步进电动机及其驱动电路,接线较为简单。

软件编程采用的是汇编语言,程序中包括主程序,显示子程序,延时子程序。

设计目的

计算机控制技术的课程设计是一个综合运用知识的过程,它不仅需要计算机控制理论、程序设计方面的基础知识,而且还需要具备一定的生产工艺知识。

设计包括确定控制任务、系统总体方案设计、硬件系统设计、控制软件的设计等,以便使学生掌握计算机控制系统设计的总体思路和方法。

 

系统硬件设计

1系统硬件原理图

线

 

图1系统硬件原理图

各硬件单元功能说明及I/O口、功能键分配

(1)8255芯片:

8255作为整个系统的主控单元,与系统总线连接,接受外部控制信息,并通过设定的I/O口将控制信息输出到数码管显示单元,LED显示单元及驱动电路。

系统设置8255工作方式0,A、B、C口均为输出,PA0—PA7与数码管相连显示剩余工作步数,PB0—PB3连接电动机的A、B、C、D四相控制电动机的运转,PC0—PC1分别与LED0—LED7连接,PB4—PB7不用。

(2)键盘模拟功能键:

“0”键控制起动,“1”键控制选择单四拍正转工作方式,“2”健控制选择单四拍反转工作方式,“3”键控制选择双四拍正转工作方式,“4”键控制选择双四拍反转工作方式,“5”键控制四相八拍正转工作方式,“6”键控制选择四相八拍反转工作方式,“7”键控制选择是否按要求转动,“8”

键控制选择是否按要求转动的正转或者反转。

“9”键控制选择停止退出程序。

(3)驱动电路:

驱动步进电机。

I/O及功能键分配表如表1所示

 

表1I/O及功能键分配表

I/O口及功能键

PA0—PA7

PB0—PB3

PC0

PC1

0键

1键

2键

分配

数码管控制接口

步进电机驱动接口

反转指示

正转指示

起动

单四拍正转

单四拍反转

I/O口及功能键

3键

4键

5键

6键

7键

8键

9jian

分配

双四拍正转

双四拍反转

四相八拍正转

四相八拍反转

按要求转动

按要求转动的正/反转

退出

硬件连接图

工作方式下的控制模型

单四拍正转、单四拍反转、双四拍正转、双四拍反转、四相八拍正转及四相八拍反转六种工作方式下的控制模型分别如表2、3、4、5、6、7所示。

 

表2单四拍正转控制数字模型

 

步序

D相

C相

B相

A相

控制模型

PB3

PB2

PB1

PB0

1

0

0

0

1

01H

2

0

0

1

0

02H

3

0

1

0

0

04H

4

1

0

0

0

08H

表3单四拍反转控制数字模型

步序

D相

C相

B相

A相

控制模型

PB3

PB2

PB1

PB0

1

1

0

0

0

08H

2

0

1

0

0

04H

3

0

0

1

0

02H

4

0

0

0

1

01H

表4双四拍正转控制模型

步序

D相

C相

B相

A相

控制模型

PB3

PB2

PB1

PB0

1

0

0

1

1

03H

2

0

1

1

0

06H

3

1

1

0

0

0CH

4

1

0

0

1

09H

表5双四拍反转控制模型

步序

D相

C相

B相

A相

控制模型

PB3

PB2

PB1

PB0

1

1

0

0

1

09H

2

1

1

0

0

0CH

3

0

1

1

0

06H

4

0

0

1

1

03H

表6四相八拍正转模型

步序

D相

C相

B相

A相

控制模型

PB3

PB2

PB1

PB0

1

0

0

0

1

01H

2

0

0

1

1

03H

3

0

0

1

0

02H

4

0

1

1

0

06H

5

0

1

0

0

04H

6

1

1

0

0

0CH

7

1

0

0

0

08H

8

1

0

0

1

09H

 

表7四相八拍正转模型

步序

D相

C相

B相

A相

控制模型

PB3

PB2

PB1

PB0

1

1

0

0

1

09H

2

1

0

0

0

08H

3

1

1

0

0

0CH

4

0

1

0

0

04H

5

0

1

1

0

06H

6

0

0

1

0

02H

7

0

0

1

1

03H

8

0

0

0

1

01H

 

流程图

图3程序流程图

 

结束语

计算机控制技术的课程设计是一个综合运用知识的过程,它不仅需要计算机控制理论、程序设计方面的基础知识,而且还需要具备一定的生产工艺知识。

设计包括确定控制任务、系统总体方案设计、硬件系统设计、控制软件的设计等,以便使学生掌握计算机控制系统设计的总体思路和方法。

此次课程设计选作的是步进电机控制系统设计,设计要求1.通电方式选择键三个,分别为单四拍、双四拍和四相八拍;2.启动键和方向控制键;3.正反转指示灯;4.剩余工作步数LED显示。

令加入可以按照需要转动的方式选择键和可中途改变转动方式。

此次课程设计经过前期查找资料,设计硬件电路,自编初步程序,设计期间在实验室调试程序,最终实现了以上基本功能,并且还实现了在不同工作方式之间的切换,屏幕显示剩余拍数两项功能,对步进电机的控制有了初步了解,同时也对芯片8255,数码管显示部分加强了运用。

通过此次设计,将所学的专业理论知识与实际开发实际结合起来,理论联系实际,提高了专业技能。

在设计过程中得到了同学的帮助,老师的指导,在此一并感谢!

 

;源程序如下:

;***************根据CHECK配置信息修改下列符号值*******************

IOY0EQU0D200H

;*****************************************************************

MY8255_AEQUIOY0+00H*4;8255的A口地址

MY8255_BEQUIOY0+01H*4;8255的B口地址

MY8255_CEQUIOY0+02H*4;8255的C口地址

MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DATASEGMENT

CHUDB'0ISQIDONG'

DB0AH,0DH

DB'1ISDANSIPAIZHENGZHUAN'

DB0AH,0DH

DB'2ISDANSIPAIFANZHUAN'

DB0AH,0DH

DB'3ISSHUANGSIPAIZHENGZHUAN'

DB0AH,0DH

DB'4ISSHUANGSIPAIFANZHUAN'

DB0AH,0DH

DB'5ISSIXIANGBAPAIZHENGZHUAN'

DB0AH,0DH

DB'6ISSIXIANGBAPAIFANZHUAN'

DB0AH,0DH

DB'7ISANYAOQIUZHUANDONG'

DB0AH,0DH

DB'8ISANYAOQIZHUANDONGXIANZHENGZHUANORXIANFANZHUAN'

DB0AH,0DH

DB'9ISTUICHU'

DB0AH,0DH;屏幕显示功能按键

HANGDB'',0DH,0AH,'$';换行

CW_TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H;七段数码管字模

CW_TABLE1DB01H,02H,04H,08H;单四拍正转模型

CW_TABLE2DB01H,08H,04H,02H;单四拍反转模型

CW_TABLE3DB03H,06H,0CH,09H;双四拍正转模型

CW_TABLE4DB03H,09H,0CH,06H;双四拍反转模型

CW_TABLE5DB01H,03H,02H,06H,04H,0CH,08H,09H;四相八拍正转模型

CW_TABLE6DB01H,09H,08H,0CH,04H,06H,02H,03H;四相八拍反转模型

SAMP1DB04H;单四拍,双四拍步序数

SAMP2DB08H;四相八拍步序数

KEQU09H;工作步数

MEQU0AH;按要求反转的步数

CNTDB09H;工作步数

CNT1DW09H;按要求正转的步数

CNT2DW0AH;按要求反转的步数

CNT3DB09H;工作步数

CNT4DW09H;按要求正转的步数

CNT5DW0AH;按要求反转的步数

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,CHU;屏幕显示数字功能按键

MOVAH,09H

INT21H

CALLDELAY

MOVAL,80H

MOVDX,MY8255_MODE

OUTDX,AL;;初始化8255,工作方式0,A,、B、C口均为输出

MOVAL,CNT

MOVAH,00H

MOVBP,AX

WAIT1:

MOVAH,08H

INT21H

CMPAL,30H;等待启动键“0”按下

JEA1

JMPWAIT1

A1:

PUSHAX;换行

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

MOVAL,80H

MOVDX,MY8255_C

OUTDX,AL;LED7亮

MOVAH,08H;判断工作方式控制键是否按下

INT21H;若键按下转到相应的程序,否则循环等待.

CMPAL,31H

JEG1;转单四拍正转

CMPAL,32H

JEG2;转单四拍反转

CMPAL,33H

JNEY1

JMPG3;转双四拍正转

Y1:

CMPAL,34H

JNEY2

JMPG4;转双四拍反转

Y2:

CMPAL,35H

JNEY3

JMPG5;转四相八拍正转

Y3:

CMPAL,36H

JNEY4

JMPG6;转四相八拍反转

Y4:

CMPAL,37H

JNEY5

JMPG7;转按要求转动

Y5:

CMPAL,39H

JNEY6

JMPA8;转结束

Y6:

JMPWAIT1

G1:

MOVAL,85H

MOVDX,MY8255_C

OUTDX,AL

CALLXIAN1;调用显示1子程序

CALLXIAN3;调用显示3子程序

J1:

MOVBX,OFFSETCW_TABLE1;单四拍正转

MOVCX,0004H

A2:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY;调用延时子程序

INCBX;判断是否工作完所有拍数,有则退出等待重选工作方式,否则继续循环

CALLXIAN1;调用显示1子程序

PUSHAX;判断是否切换其他工作方式

MOVAH,0BH

INT21H

INCAL

JNZT1

MOVCNT,K

JMPA1

POPAX

T1:

LOOPA2

DECBP

CALLXIAN3;调用显示3子程序

JNZJ1

PUSHAX;换行

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

JMPA1;跳回A1等待下次运行

G2:

MOVAL,86H

MOVDX,MY8255_C

OUTDX,AL

CALLXIAN1

CALLXIAN3

J2:

MOVBX,OFFSETCW_TABLE2;单四拍反转

MOVCX,0004H

A3:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY

INCBX

CALLXIAN1

PUSHAX

MOVAH,0BH

INT21H

INCAL

JNZT2

MOVCNT,K

JMPA1

POPAX

T2:

LOOPA3

DECBP

CALLXIAN3

JNZJ2

PUSHAX

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

JMPA1

G3:

MOVAL,89H

MOVDX,MY8255_C

OUTDX,AL

CALLXIAN1

CALLXIAN3

J3:

MOVBX,OFFSETCW_TABLE3;双四拍正转

MOVCX,0004H

A4:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY

INCBX

CALLXIAN1

PUSHAX

MOVAH,0BH

INT21H

INCAL

JNZT3

MOVCNT,K

JMPA1

POPAX

T3:

LOOPA4

DECBP

CALLXIAN3

JNZJ3

PUSHAX

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

JMPA1

G4:

MOVAL,8AH

MOVDX,MY8255_C

OUTDX,AL

CALLXIAN1

CALLXIAN3

J4:

MOVBX,OFFSETCW_TABLE4;双四拍反转

MOVCX,0004H

A5:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY

INCBX

CALLXIAN1

PUSHAX

MOVAH,0BH

INT21H

INCAL

JNZT4

MOVCNT,K

JMPA1

POPAX

T4:

LOOPA5

DECBP

CALLXIAN3

JNZJ4

PUSHAX

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

JMPA1

G5:

MOVAL,91H

MOVDX,MY8255_C

OUTDX,AL

CALLXIAN2

CALLXIAN3

J5:

MOVBX,OFFSETCW_TABLE5;四相八拍反转

MOVCX,0008H

A6:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY

INCBX

CALLXIAN2;调用显示2子程序

PUSHAX

MOVAH,0BH

INT21H

INCAL

JNZT5

MOVCNT,K

JMPA1

POPAX

T5:

LOOPA6

DECBP

CALLXIAN3

JNZJ5

PUSHAX

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

JMPA1

G6:

MOVAL,92H

MOVDX,MY8255_C

OUTDX,AL

CALLXIAN2

CALLXIAN3

J6:

MOVBX,OFFSETCW_TABLE6;四相八拍反转

MOVCX,0008H

A7:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY

INCBX

CALLXIAN2

PUSHAX

MOVAH,0BH

INT21H

INCAL

JNZT6

MOVCNT,K

JMPA1

POPAX

T6:

LOOPA7

DECBP

CALLXIAN3

JNZJ6

PUSHAX

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

JMPA1

G7:

PUSHAX

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

MOVAL,0A0H

MOVDX,MY8255_C

OUTDX,AL

B1:

MOVAH,08H

INT21H

CMPAL,38H;判断按要求转动是先正传还是反转

JEB2;先正传

JMPB3;先反转

B2:

CALLXIAN4;调用显示4子程序

MOVAL,08H;判断用哪种方式转动

INT21H

CMPAL,31H

JEG8;单四拍

CMPAL,33H

JNEY7

JMPG9;双四拍

Y7:

CMPAL,35H

JNEY8

JMPG10;四相八拍

Y8:

JMPA1;返回A1,等待下次运行

B3:

CALLXIAN5;调用显示5子程序

MOVAH,08H

INT21H;判断用哪种方式转动

CMPAL,31H

JNEY9

JMPG11;单四拍

Y9:

CMPAL,33H

JNEY10

JMPG12;双四拍

Y10:

CMPAL,34H

JNEY11

JMPG13;四相八拍

Y11:

JMPA1

G8:

MOVAL,0E5H

MOVDX,MY8255_C

OUTDX,AL

CALLXIAN1

AA:

MOVBP,CNT1;先正转的步数

AA1:

MOVBX,OFFSETCW_TABLE1;单四拍正转

MOVCX,0004H

AA2:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY

INCBX

CALLXIAN1

PUSHAX

MOVAH,0BH

INT21H

INCAL

JNZT7

MOVCNT1,K

JMPA1

POPAX

T7:

LOOPAA2

DECBP

CALLXIAN4

JNZAA1

MOVBP,CNT2;后反转的步数

PUSHAX

PUSHDX

LEADX,HANG

MOVAH,09H

INT21H

POPDX

POPAX

CALLXIAN5

CALLXIAN1

MOVAL,0E6H

MOVDX,MY8255_C

OUTDX,AL

AA3:

MOVBX,OFFSETCW_TABLE2;单四拍反转

MOVCX,0004H

AA4:

MOVAL,[BX]

MOVDX,MY8255_B

OUTDX,AL

CALLDELAY

INCBX

CALLXIAN1

PUSHAX

MOVAH,0BH

INT21H

INCAL

JNZT8

MOVC

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

当前位置:首页 > 解决方案 > 学习计划

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

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