步进电动机正反转控制系统设计

更新时间:2024-05-29 00:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

成绩

课程设计报告

题 目 步进电动机正反转控制系统设计

课 程 名 称 微机原理及应用 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 学 生 姓 名 学 号 课程设计地点 工科楼 C304 课程设计学时 20 指 导 教 师

金陵科技学院教务处制

摘 要

步进电机是工业生产过程控制及仪表中的主要控制元件之一。在数字控制系统中,由于它可以直接接受计算机输出的数字信号,而不需要进行数/模/转换,用起来非常方便。此次微机原理的课程设计,是对计算机系统和微处理器以及汇编语言、外围芯片的研究学习。本设计就是基于8086CPU的微机控制,利用汇编语言、74273、74LS244芯片、ULN2003A驱动等综合应用实例,连接上硬件驱动电机电路,通过对按键输入信号的检测实施对步进电动机正反转的控制。

关键词:8086CPU;正反转;步进电机

1

目 录

摘要???????????????????????????????? 一、概述?????????????????????????????? 1.1 课程设计的目的???????????????????????? 1.2 课程设计的要求???????????????????????? 二、总体设计方案及说明??????????????????????? 2.1 系统总体设计方案??????????????????????? 2.2 系统工作框图????????????????????????? 三、系统硬件电路设计???????????????????????? 3.1 8086微处理器的简介????????????????????? 3.2 74273和74LS244芯片的简介?????????????????? 3.3 ULN2003A的简介?????????????????????? 3.4 步进电机的工作原理?????????????????????? 3.5 微型处理器最小控制模块??????????????????? 3.6按键输入模块???????????????????????? 3.7驱动电动机模块?????????????????????? 3.8系统电路原理图?????????????????????? 四、系统软件部分设计 ???????????????????????? 4.1 系统流程图?????????????????????????? 4.2 系统软件源程序???????????????????????? 五、课程设计体会????????????????????????? 5.1 系统调试??????????????????????????? 5.2 问题分析与解决方案?????????????????????? 5.3 心得体会??????????????????????????? 六 、参考文献???????????????????????????? 附录:原理图?????????????????????????????

2

一、概述

1.1 课程设计的目的

通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。使学生进一步掌握微型计算机应用系统的硬、软件开发方法,输入/输出(I/O)接口技术,应用程序设计技术,并能结合专业设计简单实用的微型计算机应用系统。针对课堂重点讲授内容使学生加深对微型计算机硬件原理的理解及提高汇编语言程序设计的能力,为以后的毕业设计搭建了微机系统应用平台,提高学生的开发创新能力。

1.2 课程设计的要求

步进电动机正反转控制系统的设计

设计一个步进电动机正反转控制系统,要求:

1)系统功能:点动SW1按键控制步进电动机正转,点动SW2按键控制步进电动机反转,点动SW3按键控制步进电动机停止,在进行相应操作时,对应LED将被点亮。按下SW4按键使步进电机在所设定的一级速度下运转,按下SW5使步进电机在所设定的二级速度下运转,按下SW6使步进电机在设定的三级速度下运转,按下SW7使步进电机在满转速下运转;

2)给出系统设计方案,画出硬件连线图,并说明工作原理; 3)画出程序框图并编写程序; 4)软硬件联调,完成系统工作调试;

在以上工作基础上完成课程设计报告,包括设计任务与要求,总体方案说明,电路原理图与说明,软件流程图和源程序清单,问题分析与解决方案,结论与体会,参考资料等。

二、总体设计方案与说明 2.1 系统总体设计方案

本设计是用Proteus软件对步进电动机正反转电路的硬件电路进行设计,系统软件部分用汇编语言编好的源程序将其导入8086微处理器中,对整个电路进行运作控制。

本设计是基于8086形成的最小微处理器的控制系统,由它对按键的输入信

3

号进行检测,如果按的是停止键则电动机不转动,如果检测到正转或者反转,则给步进电动机一个循环有规律的脉冲,如果步进电机转动方向变化即控制电机输入的脉冲顺序即可改变转动方向。74273锁存器和ULN2003A驱动模块的控制,锁存器74273的进一步输出对74154译码器的输出进行控制。外接的按键模块输入的信息反馈到8086微处理器中,最终8086微处理器控制通过控制ULN2003A反向器电路的输入,进而控制电动机的正反转。该设计的驱动电路是由ULN2003A芯片驱动电动机实现正反转的,在驱动负载的时候,电流是由电源通过负载灌入ULN2003A的。

2.2 系统工作框图:

显示 电路 数据锁存器 片选信号2 8086CPU 地址锁存器 总线驱动器 片选信号1 按键 模块 地址 译码 电机驱动电路 步进 电机

三、系统硬件电路设计 3.1 8086微处理器的简介

Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元透过6字节预存的队列喂指令给执行单元,所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB

4

的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。

8086微处理器结构包括总线接口单元(BIU)和执行单元 (EU)还有BIU和EU的管理。总线接口部件由下列各部分组成: ⑴4个段地址寄存器: CS——16位的代码段寄存器; DS——16位的数据段寄存器; ES——16位的扩展段寄存器; SS——16位的堆栈段寄存器; ⑵16位的指令指针寄存器IP; ⑶20位的地址加法器; ⑷6字节的指令队列缓冲器。执行部件由下列几个部分组成: ⑴8个通用寄存器:即AX、BX、CX、DX,BP,SP,SI,DI ; 其中,4个数据寄存器:AX、BX、CX、DX; 2个地址指针寄存器:BP,SP; 2个变址寄存器:SI,DI; ⑵标志寄存器FR; ⑶算术逻辑单元ALU。 8086的引脚:

8086有40个个引脚,采用双列直8086有40插式封装,引脚信号的分布如图3所示。8086引脚信号分为三类,即基本引脚信号、最小工作模式信号和最大工作模式信号。

①基本引脚信号

AD15 AD0:地址/数据分共用引脚。在总线周期T1状态传送地址,T2~T4 状态传送数据。8086与主存连接时低8位数据线接存储器偶地址单元,高8位数据线接奇地址单元,由AD0和BHE组合选择。

A19/S6~A16/S3:地址/状态分时共用引脚。总线周期T1时输出高4位地址A19~A16,T2~T4时作为状态标志。其中S6为0时,表示AD15 ~ AD0作为数据线。

BHE/S7:T1时为高8位数据允许 BHE;其余时间作为状态信号S7,但S7未定义。

5

RD:读命令,输出,T2开始低电平有效,启动一次读操作。 CLK:时钟信号,输入,占空比为1:3。

RESET:输入,高电平有效,需保持4个时钟周期。复位后CPU结束当前操作,IP、DS、SS、ES和指令队列清0,CS置为FFFFH。CPU从FFFF0H单元开始执行程序。

READY:准备好,输入,高电平有效,表示主存/外设准备就绪,即可读/写数据。若READY为低电平,需在T3之后插入TW。

②最小工作模式引脚信号

M/IO:存储器/I/O选择,输出,高电平,读/写存储器,低电平,读/写I/O设备。8088与之相反。

WR :写命令,输出,T2开始低电平有效,启动一次写操作。

3.2 74154和74LS244芯片介绍

74154译码器

这种单片4 线—16 线译码器非常适合用于 高性能存储器的译码器。当两个选通输入G1 和G2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。实现解调功能的办法是:用4 个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高。 74LS244缓冲器

74LS244为3态8位缓冲器,一般用作总线驱动器。74LS244没有锁存的功

6

能。地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。它主要用于三态输出,作为地址驱动器、时钟驱动器、总线驱动器和定向发送器等。 引脚图:

1A1~1A42A1~2A4 输入端;/1G /2G 三态允许端(低电平有效) 1Y1~1Y42Y1~2Y4 输出端

3.3 ULN2003A的简介

ULN2003A是一个7路反向器电路,它的输出结构是集电极开路的,所以要在输出端接一个上拉电阻,在输入低电平的时候输出才是高电平。在驱动负载的时候,电流是由电源通过负载灌入ULN2003A的。

ULN的引脚图:

7

特点:

高电压输出50V ; 输出钳位二极管;

输入兼容各种类型的逻辑电路; 应用继电器驱动器

3.4 步进电机

电动机(Motors)是把电能转换成机械能的一种设备。它是利用通电线圈(也就是定子绕组)产生旋转磁场并作用于转子鼠笼式式闭合铝框形成磁电动力旋转扭矩。电动机按使用电源不同分为直流电动机和交流电动机,电力系统中的电动机大部分是交流电机,可以是同步电机或者是异步电机(电机定子磁场转速与转子旋转转速不保持同步速)。电动机主要由定子与转子组成,通电导线在磁场中受力运动的方向跟电流方向和磁感线(磁场方向)方向有关。电动机工作原理是磁场对电流受力的作用,使电动机转动。

在本设计中,我们使用单双八拍运行方式的步进电机,即控制正转时,电机绕组的通电顺序为:AD→D→DC→C→CB→B→BA→A;反转时,电机绕组的通电顺序为:A→AB→B→BC→C→CD→D→DA。

其工作原理示意图如下:

开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。

当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

8

3.5微处理器最小控制模块

在本设计中该微处理器最小控制模块电路由8086微处理器、三个74273八D触发器、以及74154译码器等组成。8086有20位地址线,其中高4位A19-A16与状态线S6-S3分时复用,低16位AD15-AD0与数据线分时复用。该模块用74273对A0~A19和BHE对应的21个端口进行数据的锁存。与外部硬件电路的连接的I/O部分由4线-16线译码器74154组成,用来分配I/O硬件地址。

3.6按键输入模块

9

在本设计中该模块电路由按键SW1~SW3经过排阻与74LS244三态8位缓冲器连接,并由74LS244将信号通过地址/数据复用总线AD0-AD3四个端口输入给8086微处理器中。由8086对信号进行分析确定是正转、反转、停止的哪一种输入状态,最终确定电机的运动状态。

3.7驱动电动机控制模块

在本设计中该模块电路是由驱动芯片ULN2003A驱动电机转动的,步进电机

10

脉冲信号由8086芯片发出,由数据线AD0-AD7经过锁存器74273传送到步进电机的驱动芯片,再由驱动芯片输出的数据信号带动步进电机运转。反应电动机运动状态的三个LED显示灯是由74273锁存器的三个端口直接驱动的。

3.8系统电路原理图

四 、系统软件部分设计

11

4.1 系统流程图 电动机初始化 开始 读出开关的输入状态 是 否 正转键是否按 MOV SI,0 反转键是否按下 否 是 电动机正转 MOV SI,0 延时 电动机反转 延时 是 是 正转键是否按下 否 停止键是否按下 否 是 否 SI=SI+1 停止键是否按下 反转键是否按下 是 否 SI<8 12 SI=SI+1 SI<8

4.2系统软件源程序:

.MODEL SMALL .8086 .STACK .CODE .STARTUP

MOV DX,0200H MOV AL,0B3H

OUT DX,AL AGAIN: MOV DX,0400H

IN AL,DX TEST AL,01H JZ CLOCKWISE TEST AL,02H

JZ UNCLOCKWISE JMP AGAIN

CLOCKWISE: MOV SI,0 LOP0: MOV DX,0200H

MOV AL,FFW[SI] OUT DX,AL CALL DELAY MOV DX,0400H IN AL,DX

TEST AL,02H JZ UNCLOCKWISE

TEST AL,04H JZ STOP INC SI CMP SI,8

JB LOP0 JMP CLOCKWISE

UNCLOCKWISE:MOV SI,0

电动机停止,停转指示灯亮 读入开关状态

电动机正转 电动机反转 电动机正转开始 检测反转按键是否按下 检测停止按键是否按下 继续正转循环 电动机反转开始

13

LOP1: MOV DX,0200H

MOV AL,REV[SI] OUT DX,AL CALL DELAY MOV DX,0400H IN AL,DX

TEST AL,01H 检测正转按键是否按下 JZ CLOCKWISE

TEST AL,04H 检测停止按键是否按下 JZ STOP INC SI CMP SI,8

JB LOP1 继续反转循环 JMP UNCLOCKWISE

STOP: MOV DX,0200H MOV AL,0B3H

OUT DX,AL 电动机停止,停转指示灯亮

JMP AGAIN

DELAY PROC NEAR

PUSH BX PUSH CX MOV BX,25

DEL1: MOV CX,295 DEL2: LOOP DEL2

DEC BX JNZ DEL1 POP CX POP BX RET

DELAY ENDP .DATA

FFW DB 069H,068H,06CH,064H,066H,062H,063H,061H 单双八拍 正转 REV DB 051H,053H,052H,056H,054H,05CH,058H,059H 单双八拍 反转 END

五 、课程设计体会

5.1 系统的调试

按下停止按钮时,停转指示灯亮,步进电动机停止转动。运行结果如图所示

14

按下正转按钮时,正转指示灯亮,步进电动机开始正转。运行结果如图所示

15

按下反转按钮,反转指示灯亮,步进电动机开始反转,运行结果如图所示

5.2 问题分析与解决方案

该课程设计运用的是无条件传送控制方式,来实现数据传送,即CPU与外接口交换信息。在运行调试过程中8086处理器起到主控制作用,1、当把运行程序加载到8086微处理器模块中运行时,如果三个指示灯全部亮时,可能是输入运行程序的问题或者是Protues软件的版本问题升级一下就好了。2、从正转变换到反转时,如果正转指示灯跟反转指示灯两者交替闪亮时就说明正转按钮和反转按钮同时闭合,必须保证只有一个按键闭合。3、一开始步进电动机是不转的,因为它接收到的信号只有一个不是变化的,当它接受到单双八拍的循环变化的信号时,步进电机才开始连续转动。

16

5.3 心得体会

在编程的到了不少问题,最后都通过查阅课本及网络寻找解决方案,在这过程中我巩固了用汇编语言处理数据的能力,特别是对数据的灵活运动能力。在调试及运行的过程中一一解决了。

通过这次课程设计,我充分的认识到了对待学习必须严谨认真,绝对不能敷衍了事。课程设计绝不是编一遍程序那么简单的事,我们应从中努力挖掘更深层次的知识。微机原理的课程设计是一个系统的过程,在这过程中让我们体会到成功的设计某个东西,光学好专业知识是不够的,还必须要系统的知识,无论在哪方面都要有个明确的概念,只有这样才不至于在课程设计过程中找不到方向,才知道去哪里去查所需要的资料,借助参考资料,查每一条指令的作用于功能,这样不仅能使我们更完好的完成了课程设计,还使我们对汇编语言有了一定的了解。这使我深深体会到学习理论知识固然重要,但一定要去实践,通过课程设计我们能把“死板”的课本知识变得生动有趣,是我们更加容易理解课本上所学的知识,这样才能使我们对所学知识加深印象,并且灵活运用它。

六 、参考文献

[1]周佩玲.微机原理与接口技术.北京:电子工业出版社,2007 [2]陈够喜,张军.微机原理应用教程.北京:人民邮电出版社,2006

17

附录:原理图

18

本文来源:https://www.bwwdw.com/article/n0u7.html

Top