步进电机实验

一、实验目的:

  • 掌握步进电机的控制方法。
  • 巩固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这个内存单元的偏移地址赋值给BXoffset是一个操作符,由编译器处理,功能是取偏移地址。

七、实验现象

现象:驱动管处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

  • 10
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
英文字库生成工具 C51格式 A51格式 HZDotReader3.0: 新增从文本文件输入字符功能,可以为您所要显示的文件生成专用小字库,免除字符一个个输入的麻烦。 新增HEX文件输出功能,解决二进制输出时保留区域的填充所带来的问题。 把2.0版的重码自动删除功能改为该功能可选,以适应某些特殊应用。要允许重码输入请在设置菜单,文件输出设定中去除重码自动去除项。 新增中英文混合输出功能,该功能把二个半角字符作为一个汉字取模,如半角字符为单个,在其后自动插入一个空格。在混合输出状态下,不能去除重码。如从文本文件输入,则自动去除回车和换行控制符。需要混合输出请点击设置,取模字体菜单,在弹出的对话框中选中中英文混合输出项。该项功能使软件所取的字模文件用二进制输出后可直接用于大屏的显示。 新增对英文字模的常量定义,解决少量字符的大点阵专用字库字符定位问题,英文字符常量格式为:字头“CHAR_”加ASII十六进制内码,如字母“Z”为 “CHAR_5A”。 新增码表生成功能,可从菜单“输出设定”项中设定使用码表或使用汉字常量检索字符在点阵中的位置,在选中生成字符码表后,系统输出时生成字库的内码列表,应用时,先检索字符在码表中的位置,再根据字符的位置计算该字符在点阵中的位置,可解决在C51中汉字常量无法应用于字符串的问题(C51语法把汉字常量认定是西文字符串)。产生的内码列表在汉字取模状态下A51格式为标号:HZ_INDEX,C51格式为常量数组:hzIndex[];在英文取模状态下A51格式为标号:CHAR_INDEX,C51格式为常量数组:charIndex[]。在产生字符码表的同时A51模式下生产一个代表字符总数的常量HZ_NUM或CHAR_NUM,而在C51输出模式下相应的常量则为:hzNum或charNum。 更改菜单名,更好地体现菜单的功能,原“字体设定”改为“取模字体”,原“字符取点设定”改为“取模方式”,原“文件输出设定”改为“输出设置”。 更正2.0版在点阵不为8的倍数,且纵向点取字时,对点阵进行编辑产生错误,更改某些状态下生成的字库不能重新打开编辑的错误。 如发现新的错误,敬请与作者联系
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钻仰弥坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值