微控课设 步进电机Word下载.docx
《微控课设 步进电机Word下载.docx》由会员分享,可在线阅读,更多相关《微控课设 步进电机Word下载.docx(45页珍藏版)》请在冰豆网上搜索。
各硬件单元功能说明及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键
分配
数码管控制接口
步进电机驱动接口
反转指示
正转指示
起动
单四拍正转
单四拍反转
3键
4键
5键
6键
7键
8键
9jian
双四拍正转
双四拍反转
四相八拍正转
四相八拍反转
按要求转动
按要求转动的正/反转
退出
硬件连接图
工作方式下的控制模型
单四拍正转、单四拍反转、双四拍正转、双四拍反转、四相八拍正转及四相八拍反转六种工作方式下的控制模型分别如表2、3、4、5、6、7所示。
表2单四拍正转控制数字模型
步序
D相
C相
B相
A相
控制模型
PB3
PB2
PB1
PB0
1
01H
2
02H
3
04H
4
08H
表3单四拍反转控制数字模型
表4双四拍正转控制模型
03H
06H
0CH
09H
表5双四拍反转控制模型
表6四相八拍正转模型
5
6
7
8
表7四相八拍正转模型
流程图
图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
2ISDANSIPAIFANZHUAN'
3ISSHUANGSIPAIZHENGZHUAN'
4ISSHUANGSIPAIFANZHUAN'
5ISSIXIANGBAPAIZHENGZHUAN'
6ISSIXIANGBAPAIFANZHUAN'
7ISANYAOQIUZHUANDONG'
8ISANYAOQIZHUANDONGXIANZHENGZHUANORXIANFANZHUAN'
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
CMPAL,30H;
等待启动键“0”按下
JEA1
JMPWAIT1
A1:
PUSHAX;
PUSHDX
LEADX,HANG
POPDX
POPAX
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:
G1:
MOVAL,85H
OUTDX,AL
CALLXIAN1;
调用显示1子程序
CALLXIAN3;
调用显示3子程序
J1:
MOVBX,OFFSETCW_TABLE1;
MOVCX,0004H
A2:
MOVAL,[BX]
MOVDX,MY8255_B
CALLDELAY;
调用延时子程序
INCBX;
判断是否工作完所有拍数,有则退出等待重选工作方式,否则继续循环
CALLXIAN1;
PUSHAX;
判断是否切换其他工作方式
MOVAH,0BH
INCAL
JNZT1
MOVCNT,K
JMPA1
POPAX
T1:
LOOPA2
DECBP
CALLXIAN3;
JNZJ1
PUSHAX;
JMPA1;
跳回A1等待下次运行
G2:
MOVAL,86H
CALLXIAN1
CALLXIAN3
J2:
MOVBX,OFFSETCW_TABLE2;
A3:
CALLDELAY
INCBX
CALLXIAN1
PUSHAX
JNZT2
T2:
LOOPA3
CALLXIAN3
JNZJ2
JMPA1
G3:
MOVAL,89H
J3:
MOVBX,OFFSETCW_TABLE3;
A4:
INCBX
JNZT3
T3:
LOOPA4
JNZJ3
G4:
MOVAL,8AH
J4:
MOVBX,OFFSETCW_TABLE4;
A5:
INCBX
PUSHAX
JNZT4
T4:
LOOPA5
JNZJ4
G5:
MOVAL,91H
CALLXIAN2
J5:
MOVBX,OFFSETCW_TABLE5;
MOVCX,0008H
A6:
CALLXIAN2;
调用显示2子程序
JNZT5
T5:
LOOPA6
JNZJ5
G6:
MOVAL,92H
J6:
MOVBX,OFFSETCW_TABLE6;
A7:
JNZT6
T6:
LOOPA7
JNZJ6
G7:
MOVAL,0A0H
B1:
MOVAH,08H
CMPAL,38H;
判断按要求转动是先正传还是反转
JEB2;
先正传
JMPB3;
先反转
B2:
CALLXIAN4;
调用显示4子程序
MOVAL,08H;
判断用哪种方式转动
CMPAL,31H
JEG8;
单四拍
JNEY7
JMPG9;
双四拍
Y7:
JNEY8
JMPG10;
四相八拍
Y8:
JMPA1;
返回A1,等待下次运行
B3:
CALLXIAN5;
调用显示5子程序
MOVAH,08H
INT21H;
JNEY9
JMPG11;
Y9:
JNEY10
JMPG12;
Y10:
CMPAL,34H
JNEY11
JMPG13;
Y11:
JMPA1
G8:
MOVAL,0E5H
AA:
MOVBP,CNT1;
先正转的步数
AA1:
MOVBX,OFFSETCW_TABLE1;
AA2:
MOVAL,[BX]
JNZT7
MOVCNT1,K
T7:
LOOPAA2
CALLXIAN4
JNZAA1
MOVBP,CNT2;
后反转的步数
CALLXIAN5
MOVAL,0E6H
AA3:
MOVBX,OFFSETCW_TABLE2;
AA4:
CALLXIAN1
JNZT8
MOVC