一、实验目的:
- 掌握步进电机的控制方法。
- 巩固8255芯片的编程方法;
- 了解步进电机控制的基本原理;
- 掌握步进电机转动编程方法:
二、实验内容与要求:
编写实验程序,利用8255的B口来控制步进电机的运转。
8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。它有A、B、C三个八位端口寄存器通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。这24根端口线全部为双向三态。三个端口可分二组来使用,可分别工作于三种不同的工作方式。
三、实验环境:
PC机一台,TD-PITE实验装置一套。
四、实验步骤:
1、连线。
- 确保8255芯片安装在开发板或实验板上,并与系统正确连接。
- 为芯片提供电源和必要的控制信号。
- 配置8255的A、B、C三个I/O端口连接步进电机的驱动电路。步进电机通常需要通过驱动电路来进行控制。
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的数字即可,数字越大越慢。具体方法是将CX
设置为8000H
,然后通过LOOP
指令创建循环,以产生延迟。
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