汇编及接口技术课程设计.docx
《汇编及接口技术课程设计.docx》由会员分享,可在线阅读,更多相关《汇编及接口技术课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
汇编及接口技术课程设计
汇编及接口技术课程设计
题目:
步进电机控制系统
班级:
学号:
姓名:
时间:
步进电机控制系统
一.设计目的
1.了解步进电机控制的基本原理。
2.掌握控制步进电机转动的编程方法。
3.进一步熟练8255的使用。
二.设计内容
编程控制步进电机,使其能够正常运转,要求:
1.开关K8控制电机的启动与停止。
当K8向上拨时,电机启动,向下拨时电机停止。
2.开关K7控制电机的正反转。
当K7向上拨时,电机正反转;向下拨时,电机反转。
3.开关K0~K5控制电机的转速:
K5向上拨时,得到最低转速,……K0向上拨时,得到最高转速。
4.在数码管上显示速度编号。
三.步进电机工作原理
注:
当实验结束要立即关闭电源,否则一直停留在某一相上会使电机发热。
四.8255工作原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图4.31所示,8255工作方式控制字和C口按位臵位/复位控制字格式如图所示。
8255控制字
8255实验单元电路图如图所示:
五.设计过程
设计步骤:
1)给出系统设计方案,画出硬件连线图;
2)编写程序;
3)软硬件联调,完成系统工作调试
1.实验连线
(1)8255模块的RD、WR连到ISA总线接口模块的IOR#、IOW#,8255选通信号CS连到ISA总线接口模块的IOY0。
(2)8255模块的数据线D7~D0、连到ISA总线接口模块的XD7~XD0。
(3)地址线A1~A0连到XA2~XA1。
(4)8255的PA口(PA0---PA7)和开关K0-K7相连。
(5)8255的PB口(PB0---PB7)和LED数码管的A-G即Dp相连
(6)8255的PC口(PC0---PC3)和驱动电路的D-A相连,PC7与红灯相连,PC6与绿灯相连
(7)驱动电路的D’-A’,+12V分别与步进电机的1-4,5相连,LED数码管的X1与GND相连(接地)
实验连线图
2.实验代码:
MY_DATASEGMENT
P8255ADW0600H
P8255BDW0602H
P8255CDW0604H
P8255MDW0606H
SHUNDB01H,03H,02H,06H,04H,0CH,08H,09H;顺时针旋转
SGTBDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
TIMEPDW1H
MY_DATAENDS
MY_CODESEGMENT
MY_PROCPROCFAR
ASSUMECS:
MY_CODE,DS:
MY_DATA
START:
MOVAX,MY_DATA
MOVDS,AX
;-------------------------------------------------------------
MOVDX,P8255M
MOVAL,90H;
OUTDX,AL
MOVBX,0H
NEW:
MOVDX,P8255A
INAL,DX
PP:
TESTAL,80H;K8=PA7
JNZNEXT
;-------------------------------------------------------------
MOVDX,P8255C
MOVAL,00H;停止步进电机
OUTDX,AL
JMPNEW
;-------------------------------------------------------------
NEXT:
AGAIN:
MOVDX,P8255M
MOVAL,0FH
OUTDX,AL
;-------------------------------------------------------------
ZHFAN:
MOVDX,P8255A
INAL,DX
TESTAL,40H;K7=PA6
JZSECOND
FIRST:
MOVDX,P8255M
MOVAL,0DH
OUTDX,AL
INCBX
CMPBX,8
JZLOP
JMPLOP2
LOP:
MOVBX,0
JMPLOP2;
;-------------------------------------------------------------
SECOND:
MOVDX,P8255M
MOVAL,0CH
OUTDX,AL
DECBX
CMPBX,0
JLLOP3
JMPLOP2
LOP3:
MOVBX,7
;
LOP2:
CALLDELAY
CALLVEL
MOVDX,P8255C
MOVAL,SHUN[BX]
OUTDX,AL
JMPNEW
EXIT:
MOVAX,4C00H
INT21H
MY_PROCENDP
;-------------------------------------------------------------
DELAYPROCNEAR;延时程序
PUSHCX
PUSHSI
;-------------------------------------------------------------
DELY1:
MOVSI,TIMEP
DY1:
MOVCX,0FFFH
DY2:
LOOPDY2
DECSI
JNZDY1
POPSI
POPCX
RET
DELAYENDP
VELPROCNEAR;速度子程序
PUSHAX
PUSHDX
VELC1:
MOVDX,P8255A
INAL,DX
TESTAL,01H;K1=
JNZK0
TESTAL,02H
JNZK1
TESTAL,04H
JNZK2
TESTAL,08H
JNZK3
TESTAL,10H
JNZK4
TESTAL,20H
JNZK5
MOVAX,7H
MOVCL,SGTB+6
JMPVELC2
K0:
MOVAX,1H
MOVCL,SGTB;实验得出具体值
JMPVELC2
K1:
MOVAX,2H
MOVCL,SGTB+1;实验得出具体值
JMPVELC2
K2:
MOVAX,3H
MOVCL,SGTB+2;实验得出具体值
JMPVELC2
K3:
MOVAX,4H
MOVCL,SGTB+3
JMPVELC2
K4:
MOVAX,5H
MOVCL,SGTB+4
JMPVELC2
K5:
MOVAX,6H
MOVCL,SGTB+5
JMPVELC2
VELC2:
MOVTIMEP,AX
MOVDX,P8255B
MOVAL,CL
OUTDX,AL
POPDX
POPAX
RET
VELENDP
MY_CODEENDS
ENDSTART
六.设计效果
将k7拨上,红灯亮,启动步进电机,将k6拨上步进电机将顺时针进行旋转,将k6放下,步进电机将进行逆时针旋转,期间可利用k0-k5进行速度控制,其中K0档最快,k1次之,默认无档最慢。
在调速期间,右侧数码管将显示档位
K0-k5分别对应着0-5档,默认无档为6档。
7.心得体会
本次课程设计认识到了步进电机的工作原理和了解了8255的功能,在实验中的需要注意的是在向步进电机传入低四位的数据时,会将PC7,PC6的灯控制信号进行覆盖,所以应调节延迟的顺序使其可以正常显示控制信号灯的亮灭,也可以在给C口写入数据时加上其高四位的值。
在连接数码管时,也应注意是共阴极还是共阳极。
此次实验主要以8255并行接口为核心,向外围设备传输数据和对外围设备进行控制。
本次实验的不足之处在于代码的编写不够简练,还应进行优化。