步进电机控制系统
设计一个开环步进电机控制系统。使得步进电机能够正常运转。并能实现启停、正反转、调速控制。以及显示速度。
2.设计要求如下:
①硬件测试通过。接线完成。三个芯片分别测试通过。步进电机能够正常运转。
②中断方式的转动。
③启停。按KK1+键控制步进电机的启动。按KK2+键控制步进电机的停止。
④正反转。开关K7控制步进电机的正反转。当K7向下拨时,电机正转(顺时针);向上拨时,电机反转(逆时针)。
⑤在LED数码管上显示速度编号。K0对应1挡、K1对应2挡,其余类推。
⑥调速。开关K6~K0分别控制电机的转速:K0向上拨时,得到最低转速,…… K6向上拨时,得到最高转速。步进电机转速分为7级,依次是30 、60、90、120、150、180、210 (r/min)。
1.步进电机工作原理
注意:步进电机不使用时请断开连接器,以免误操作使电机过热损坏。
2.硬件接线图
①8255与系统总线的接线图
②8254与系统总线的接线图
③8259的接线图
上述步骤完成后按以下步骤改线,完成步进电机控制系统的接线。
PA口接8个开关。
PB口接步进电机。
PC口接数码管。数码管的COM端接地。
OUT1接L0的连线,改到MIR6上。
3.端口地址说明
五、软件设计
1.R变量和M变量说明
定义SWITCH,通过判断k0-k7的输入调用相对应的功能
定义DELAY实现延迟
定义CLKWISE,REVROT实现正反转通过判断语句执行相应代码
2.程序说明
MIR6模块实现中断转动
MIR7模块实现步进电机启动
SIR1模块实现步进电机停止
六、源程序清单
1.参考程序
P8255A EQU 0600H
P8255B EQU 0602H
P8255C EQU 0604H
P8255M EQU 0606H
DATA SEGMENT
TABLE1 DB 01H,03H,02H,06H,04H,0CH,08H,09H
TABLE2 DB 01H,03H,02H,06H,04H,0CH,08H,09H
LEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0--7的显示代码
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8--F的显示代码
TIMEP DW 03E8H ;延时子程序时间参数
DCODE DB 3FH ;数码管显示代码
DATA ENDS
SSTACK SEGMENT STACK
DW 256 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MAIN: MOV AL, 90H ; 控制B口工作于方式0,输出
MOV DX, P8255M
OUT DX, AL
A1: MOV BX, OFFSET TABLE1
MOV CX, 0008H
A2: MOV AL,[BX]
MOV DX, P8255B ; 写B口
OUT DX, AL
CALL DALLY ; 控制步进电机的转速
INC BX
LOOP A2
JMP A1
DALLY: PUSH CX
MOV CX,8000H
A3: PUSH AX
POP AX
LOOP A3
POP CX
RET
CODE ENDS
END START
2.最终程序清单
TIMER0 EQU 06C0H ;IOY3
TIMER1 EQU 06C2H
TIMER2 EQU 06C4H
TIMERM EQU 06C6H
P8255A EQU 0600H ;IOY0
P8255B EQU 0602H
P8255C EQU 0604H
P8255M EQU 0606H
;---------------------------------------------------------------
DATA SEGMENT
DISCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0--7的显示代码
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8--F的显示代码
DECIMAL DB