掌握步进电机的控制方法。
编写实验程序,利用8255的B口来控制步进电机的运转。
PC机一台,TD-PITE实验装置一套。
1、连线。
2、编写实验程序,经编译、连接无误之后装入系统。
3、运行程序,观察实验现象。

1.关于8255的工作字
- MOV AL, 90H ; 控制B口工作于方式0,输出
-
- MOV DX, MY8255_MODE

90H=1001 0000B;表示工作方式0,A口输入,B口输出
2.改变步进电机的转速
- DALLY: PUSH CX
-
- MOV CX,8000H
修改CX的数字即可,数字越大越慢。
3.改变步进电机的旋转方向
TABDT DB 01H,03H,02H,06H,04H,0CH,08H,09H
可以将DB的值全部反过来(也就是步序1到8改成步序8到1),可以实现逆时针。

也可以修改如下代码,
MOV BX, OFFSET TABDT
改成
MOV BX, OFFSET TABDT+8
TABDT则是将TABDT这个内存单元的偏移地址赋值给BX。offset是一个操作符,由编译器处理,功能是取偏移地址。
驱动管处A、B、C、D依次循环闪亮,步进电机指针开始旋转。


- ;=========================================================
- ; 文件名: BUJIN.ASM
- ; 功能描述: 步进电机控制实验
- ;=========================================================
-
- IOY0 EQU 0600H ;片选IOY0对应的端口始地址
- MY8255_A EQU IOY0+00H*2 ;8255的A口地址
- MY8255_B EQU IOY0+01H*2 ;8255的B口地址
- MY8255_C EQU IOY0+02H*2 ;8255的C口地址
- MY8255_MODE EQU IOY0+03H*2 ;8255的控制寄存器地址
-
- SSTACK SEGMENT STACK
- DW 256 DUP(?)
- SSTACK ENDS
- DATA SEGMENT
- TABDT DB 01H,03H,02H,06H,04H,0CH,08H,09H
- DATA ENDS
- CODE SEGMENT
- ASSUME CS:CODE, DS:DATA
- START: MOV AX, DATA
- MOV DS, AX
- MAIN: MOV AL, 90H ; 控制B口工作于方式0,输出
- MOV DX, MY8255_MODE
- OUT DX, AL
- A1: MOV BX, OFFSET TABDT+8
- MOV CX, 0008H
- A2: MOV AL,[BX]
- MOV DX, MY8255_B ; 写B口
- OUT DX, AL
- CALL DALLY ; 控制步进电机的转速
- DEC 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