您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页微机原理课程设计-步进电机的正反转及调速控制

微机原理课程设计-步进电机的正反转及调速控制

来源:爱go旅游网


成绩

课程设计报告

目 步进电机正反转及调速

控制系统的设计

课 程 名 称 微机原理及应用 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 10电气1班 学 生 姓 名 管志成 学 号 ********** 课程设计地点 C304 课程设计学时 20 指 导 教 师 李国利

金陵科技学院教务处制

摘 要

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。

本设计基于Proteus 7.8设计环境,运用了8086 CPU芯片以及74273芯片、74244芯片和步进电机以及7位小功率驱动芯片ULN2003A、按钮、指示灯等辅助硬件电路,设计了步进电机正反转及调速系统。绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。该步进电机的正反转及调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速,不同的按钮对应不同的速度,并且在没有速度按钮按下的时候,步进电机自动切换到停止状态。

关键词:步进电机;正反转;调速控制;ULN2003A芯片;8086微机系统

目 录

一、概述

1.1 课程设计的目的·············································· 4 1.2课程设计的要求············································4 二、总体设计方案及说明

2.1 系统总体设计方案··········································5 2.2系统工作框图··············································5 三、系统硬件电路设计

3.1 Intel 8086 微处理器的简介···································6 3.2 步进电机的原理············································7 3.3 ULN2003A的简介··········································8 3.4 74154芯片简介·············································9 3.5 74LS273芯片简介·········································· 10 3.6 8086最小系统的设计········································11 3.7 步进电机及其驱动电路的设计································12 3.8 电机状态显示电路的设计····································12 3.9 输入采样电路的设计········································13 3.10系统总电路图··············································14 四、系统软件部分设计

4.1 系统流程图················································15 4.2 系统软件源程序············································16 4.2.1电机绕组通电顺序设定····································16 4.2.2 延时子程序设计·········································16 4.2.3 汇编源程序及说明········································16 五、总结

5.1 系统软硬件的联合调试·······································21 5.2 问题分析和解决方案·········································23 5.3 心得与体会·················································23 六、参考文献······················································23

附录:总电路图····················································25

一、概述

1.1 课程设计的目的

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

1.2 课程设计的要求

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

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

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

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

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

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

本设计是基于Windows环境下的Proteus7.8软件,在其中进行硬件电路的的设计,汇编语言源程序的编写以及以上两部分工作完成后的软硬件系统的联合调试。

本设计的处理控制系统由Intel 8086微处理器在最小模式下组成的单处理器系统构成,用来进行对外围硬件电路进行信息采集、数据处理和控制。由8086芯片来检测外围电路中正反转按键是否按下,若按下,则相应地改变对步进电机的施加的脉冲顺序,实现正转和反转的控制,没有键按下则电机处于停止状态;同样由8086处理器来检测外围电路中的调速按钮是否按下,若有键按下,则调用相应的时间的延时子程序,以对脉冲频率进行控制以实现对步进电机速度的调节。

显示电路采用LED指示灯来指示电机的运行状态

驱动电路采用ULN2003A芯片,该芯片的电流增益高,带负载能力强。 步进电机采用35BY48S03四相步进电机,电压为DC12V,额定转速为360RPM。

2.2系统工作框图

总线驱动器数据输入片选信号1正反转按键模块Intel 8086CPU数据/地址总线DB总线驱动器数据输入片选信号2调速控制按键模块数据锁存器数据输出片选信号3电机驱动电路步进电机显示电路地址锁存器地址输出 地址译码

图1 系统工作框图

三、系统硬件部分设计 3.1 Intel 8086 微处理器的简介

Intel 8086是Intel公司于1978年推出的16位微处理器。它采用HMOS工艺制造,片内有2.9万个晶体管,单一电源+5V供电,时钟频率4.77-10MHz,片内数据总线、寄存器和外部数据总线都为16位,最大可寻址的物理地址为1M。

要掌握一个CPU的工作性能及使用方法,首先应该了解它的编程结构。在8086

CPU的编程结构上,从功能上,分为两部分,即总线接口部件(BIU)和执行部件(EU)。8086的逻辑地址为20位,物理地址为16位,,对于编程员来说,只需要考虑逻辑地址即可。8086为40只引脚双列直插式封装。

Intel 8086 可以工作在最大和最小两种模式下,最小模式和最大模式的确定是通过一条MN/MN所接的逻辑电平是“1”还是“0”来完成。

在最小方式下,微处理器被用来构成一个小规模的单处理机系统,微处理器本身必须提供全部的的控制信号给外围电路。

在最大方式下,微处理器被用来构成一个较大规模的多机系统。 在最小模式下的信号如下:

(1)AD15~AD0(address data bus)地址/数据复用引脚(双向工作) 分时复用的地址/数据线。

(2)A19/S6~A16/S3(Address/Status)输出,是分时复用的地址/状态线。用作地址线时,A19~A16与A15~A0一起构成访问存储器的20位物理地址。 (3)BHE/ S7 (Bus High Enabale/Status)总线高字节有效信号。三态输出,低电平有效,用来表示当前高8 位数据线上的数据有效。

(4)NMI(Non Maskable Interrupt Request)不可屏蔽中断请求信号。由外部输入,上升沿触发,不受中断允许标志的限制。

(5)INTR(Interrupt Request)可屏蔽中断请求信号。由外部输入,电平触发,高电平有效。

(6)RD(Read)读信号。三态输出,低电平有效,表示当前CPU正在读存储器或IO端口。

(7) CLK(Clock)主时钟引脚(输入)。由8284时钟发生器输入。8286CPU可使用的最高时钟频率随芯片型号不同而异,8086为5MHz,8086-1为10MHz,8086-2 为8MHz。

(8) RESET(reset)复位信号。由外部输入,高电平有效。

(9) READY(ready)准备就绪信号。由外部输入,高电平有效,表示CPU 访问的存储器或IO端口已准备好传送数据。

(10) TEST 测试信号。由外部输入,低电平有效。CPU 执行WAIT 指令时,每隔5 个时钟周期对TEST 进行一次测试,若测试TEST 无效,则CPU 处于踏步等待状态,直到TEST有效,CPU才继续执行下一条指令。

(11) MN/MX 工作模式选择信号。由外部输入,MN/MX 为高电平时,CPU 工作在最小模式;MN/MX为低电平时,CPU工作在最大模式。

(12) GND/VCC电源地和电源。8086CPU只需要单一的+5V电源,由VCC引脚输入。

(13) INTA 中断响应信号。向外部输出,低电平有效。在中断响应周期,该信号表示CPU响应外部发来的INTR信号,用作读中断类型码的选通信号。 (14) ALE 地址锁存允许信号。向外部输出,高电平有效。在最小模式系统中用作地址锁存器的片选信号。

(15) DEN数据允许信号,三态输出,低电平有效。 (16) DT/R 数据发送/接收控制信号 (17) M/IO 存储器/IO 端口访问信号。

(18) WR写信号。三态输出,低电平有效,表示当前CPU正在写存储器或IO端口。

(19) HOLD总线请求信号。由外部输入、高电平有效。表示有其他共享总线的处理器/控制

器向CPU请求使用总线。

(20) HLDA 总线请求响应信号。向外部输出,高电平有效。CPU 一旦测试到有HOLD 请求,就在当前总线周期结束后,使HLDA有效,表示响应这一总线请求,并立即让出总线使用权。在不要求使用总线的情况下,CPU中指令执行部件可继续工作。HOLD变为无效后,CPU也将HLDA置成无效,并收回对总线的使用权,继续操作。

3.2 步进电机的原理

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

本设计采用35BY48S03四相八拍型步进电机,电压为DC12V,额定转速为

360RPM。

步进电机的工作原理示意图如下:

图2 四相步进电机步进示意图

开始时,开关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方向转动。

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

3.3 ULN2003A的简介

ULN2003A是一个7路反向器电路,即当输入端为高电平时ULN2003A输出端为低电平,当输入端为低电平时ULN2003A输出端为高电平。

图3 ULN2003A

由于集成电路集驱动和保护于一体,作为小功率步进电机的专用驱动芯片,ULN2003A是该高耐压、大电流达林顿陈列,由7个硅NPN达林顿管组成。该电路的特点如下:

ULN2003A的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下,它能与TTL、CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003A工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。

ULN2003A在各种控制电路中常常作为驱动继电器的芯片,其芯片内部做成一个消线圈反电动势二极管。ULN2003A的输出端允许通过IC电流200mA,饱和压降Vce约1V左右,耐压BVceo约为36V。输出电流大,故可以用来直接驱动步进电机。

图4 ULN2003A内部结构

3.4 74154芯片简介

74HC154是一款高速CMOS器件,74HC154引脚兼容低功74154这种单片4 线—16 线译码器非常适合用于 高性能

耗肖特基TTL(LSTTL)系列。

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

74154 的引脚图如右图所示:

TRUTH TABLE真值表: 图5 74154

INPUTS 输入 SELECTED OUTPUT 选定输出(L) G1 G2 D C B A L L L L L L Y0 L L L L L H Y1 L L L L L L L L L L L L L L L L L L L L L L L L L L L L X H H X L L L L L L H H H H H H H H X X L L H H H H L L L L H H H H X X H H L L H H L L H H L L H H X X L H L H L H L H L H L H L H X X Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15 NONE NONE 表1 74154真值表

3.5 74LS273芯片简介

74HC373是8位数据锁存器。主要用于数码管、按键等等的控制 其真值表如下: DN LE OE ON H H L H L H L L × L L Q0 × × H Z 表2 74HC373真值表 芯片管脚图如下:

图6 74LS273引脚图

U2的功能是实现AD[0..7]的锁存,由于8086 CPU的总线是地址/数据复用总线,因此需要在传送地址信号的时候,将数据信号锁存起来,即将数据信号锁存在74273触发器中,待地址传送完毕后再按需要将数据信号输出。

3.6 8086最小系统的设计

8086最小系统原理图如下所示:

图7 8086最小系统图

8086最小系统由Intel 8086微处理器、74273 TTL带公共时钟复位八D触发器、以及74154 TTL 4线—16线译码器等组成。

8086有20位地址线,其中高4位A19-A16与状态线S6-S3分时复用,低16位AD15-AD0与数据线分时复用。在总线周期的T1时将地址送出后,就必须用锁存器将它们锁存起来,以便在T2及以后搞死位地址线改为状态输出,低16位地址线该做数据线使用。另外,表明八位数据线是否起作用的数据总线允许信号是与状态线S7分时复用的,故也需要锁存。21条线需采用3片8位地址锁存器,这里采用74273。与外围硬件电路的连接的I/O部分由4线-16线译码器74154组成,用来分配I/O硬件地址。

3.7 步进电机及其驱动电路的设计

步进电机及其驱动电路图如下图所示:

AD[0..15]+12VU11AD0AD1AD2AD3AD4AD5AD6AD7347813141718111D0D1D2D3D4D5D6D7CLKMR74273Q0Q1Q2Q3Q4Q5Q6Q72569121516191234567U21B2B3B4B5B6B7BCOM1C2C3C4C5C6C7C916151413121110AD+88.8BCULN2003AU2:B65437427IO1A0WR 图8 步进电机及驱动电路 步进电机35BY48S03由驱动芯片ULN2003A驱动,步进电机脉冲信号由8086芯片发出,由数据线AD0-AD7经过锁存器74273传送到步进电机的驱动芯片,由驱动芯片带动步进电机运转。还有三只反应电机转动方向的LED由锁存器直接驱动。

3.8 电机状态显示电路的设计

电机状态显示电路的电路图如下:

AD[0..15]U11AD0AD1AD2AD3AD4AD5AD6AD7347813141718111D0D1D2D3D4D5D6D7CLKMR74273Q0Q1Q2Q3Q4Q5Q6Q7256912151619LED1LED2IO1A0WRR10270正转指示灯反转指示灯停转指示灯 U2:B65437427R1270LED3R2270 图9电机状态显示电路 电机状态显示电路由三只LED发光二极管串接限流电阻,接在数据锁存器的输出端组成,电机工作时的状态信号由CPU 8086给出,经过数据总线送到数据锁存器输入端,再由锁存器的输出端输出显示在LED发光二极管上。

3.9 输入采样电路的设计

输入采样电路的电路图如下:

RESPACK-8SW1SW2123456789AD[0..15]正转反转U4:AAD0AD1AD2AD318161412Y0Y1Y2Y3A0A1A2A3OE74LS24424681SW3停止U98NOTU2:C111097427IO2A0RD

图10 输入采样电路1(正反转)

123456789SW4SW5SW6SW7AD[0..15]AD0AD1AD2AD39753U4:BY0Y1Y2Y3A0A1A2A3OE74LS24411131517191级调速2级调速3级调速U14:ARDA0IO31213742712满转速U12NOT

图11 输入采样电路2 (调速)

输入采样电路是由按键SW1-SW7经过上拉电阻与74244 TTL 八同相三态缓冲器-线驱动器相连组成,当地址总线的地址信号经地址译码器译码后,输出地址片选信号,选中相应的总线驱动器,将按键数据读出,并将数据经过地址/数据复用总线AD0-AD3送到8086芯片,由处理器进行处理并做出相应的响应。

3.10 系统总电路图 系统总电路图如下图所示: AD[0..15]AD0AD1AD2AD3AD4AD5AD6AD7347813141718111U6D0D1D2D3D4D5D6D7CLKMR74273AD[16..19]25342726322928A131A142A1513Q0Q1Q2Q3Q4Q5Q6Q7256912151619A8A9A10A11A12A13A14A15Q0Q1Q2Q3Q4Q5Q6Q7256912151619A0A1A2A3A4A5A6A7A9A10A11A12ADR[0..19]23222120U5ABCDE1E2012345678910111213141512345678910111314151617IO0IO1IO2IO3IO4IO5IO6IO7IO8IO9IO10IO11IO12IO13IO14IO15U3M/IO1819NOTU121222418313023173319RESETAD[0..15]READYA[16..19]INTA/QS1INTRALE/QS0HOLD/GT1BHEHLDA/GT0DT/R/S1TESTDEN/S2NMIRDMN/MXWR/LOCKCLKM/IO/S08086LOAD_SEG=0x0800U2:A12U8AD83AD94AD107AD118AD1213AD1314AD1417AD1518111U7D0D1D2D3D4D5D6D7CLKMR74273742774154NOTRDWRM/IOAD[16..19]U10AD16AD17AD18AD19347813141718111D0D1D2D3D4D5D6D7CLKMR74273RESPACK-8Q0Q1Q2Q3Q4Q5Q6Q7256912151619A16A17A18A19BHE1SW1AD[0..15]U4:AAD0AD1AD2AD318161412Y0Y1Y2Y3A0A1A2A3OE74LS24424681SW2SW3U98NOTU2:C111097427IO2A0RD23456789正转反转停止123456789SW4SW5SW6SW7+12VAD[0..15]AD0AD1AD2AD39753U4:BY0Y1Y2Y3A0A1A2A3OE74LS24411131517191级调速2级调速3级调速AD[0..15]U11AD0AD1AD2AD3AD4AD5AD6AD7347813141718111D0D1D2D3D4D5D6D7CLKMR74273Q0Q1Q2Q3Q4Q5Q6Q72569121516191234567U21B2B3B4B5B6B7BCOM1C2C3C4C5C6C7C916151413121110AD+88.8BC满转速ULN2003ALED1LED2IO1A0WRR10270正转指示灯反转指示灯停转指示灯U14:ARDA0IO31213742712NOTU2:B65437427R1270U12LED3R2270 图12 系统总电路图 系统总电路图由上述的808 CPU组成的最小系统和外围的硬件电路如输入采样电路、电机驱动电路、显示电路、步进电机组成。系统运行时,线初始化电机,使其处于停止等待响应状态,由输入采样电路采集正反转和调速按钮开关状态,若有正反转按钮按下,且有调速按钮按下时,8086 CPU 相应地输出正转或反转的脉冲序列,并调用调速按钮对应的延时子程序,使得步进电机以某一设定的速度正转或反转运行起来,并且响应的正、反转指示灯被点亮,按停止按钮,电机停转。

四、系统软件部分设计 4.1 系统流程图如下:

系统启动初始化电机电机停转读入正反转按钮开关状态是是否正转?否电机停止读入输出口地址是否反转?否是读入输出口地址电机停止是是否停止?否是否是否停止?是是否反转?否输出正脉冲序列中的值输出反脉冲序列中的值是是否正转?读入正反转按钮开关状态调用DELAY1读入调速按钮开关状态读入调速按钮开关状态读入正反转按钮开关状态是调用DELAY1是一级调速按钮是否按下否一级调速按钮是否按下否二级调速按钮是否按下否三级调速按钮是否按下否全转速按钮是否按下调用DELAY2是二级调速按钮是否按下否是调用DELAY2调用DELAY3是三级调速按钮是否按下否是调用DELAY3调用DELAY4是全转速按钮是否按下是调用DELAY4图13 软件流程图

4.2 系统软件源程序

4.2.1 电机绕组通电顺序设定:

A相接数据线AD0,B相接数据线AD1,C相接数据线AD2,D相接数据线AD3;首先要定义电机顺序运行时正反转的数据表: 正转:AD-D-DC-C-CB-B-BA-A

根据转动相序可知,若要步进电机正转,则要将正转步数设置为 069H, 068H, 06CH, 064H, 066H, 062H, 063H, 061H 反转:A-AB-B-BC-C-CD-D-DA

根据转动相序可知,若要步进电机反转,则要将反转步数设置为051H, 053H, 052H, 056H, 054H, 05CH, 058H, 059H 4.2.2 延时子程序设计:

延时子程序利用CPU执行指令时所需要耗费的始终周期,来实现延时功能 DELAY1 PROC NEAR 所用周期数 PUSH BX PUSH CX

MOV BX,200 4 DEL1:MOV CX,295 4 DEL2:LOOP DEL2 17/5 DEC BX 2 JNZ DEL11 16/4 POP CX POP BX RET

先将BX、CX入栈保护,给CX赋记数初值为295,在LOOP DEL2这条指令中,使得上述标注时钟周期的指令执行了295次,此时BX←BX-1,重新给CX赋记数初值为295,执行了295次后再BX←BX-1,以此类推,直到BX中的数值减至0,将BX、CX弹出栈,返回调用延时子程序处。

延时时间的计算:

8086 CPU时钟频率f=5MHz,时钟周期为0.2us DELAY1=(4+4+17/5+2+16/4)*0.2us*295*25=25ms 以此设计其他延时子程序的延时时间,详见汇编源程序。 4.2.3汇编源程序及说明: .MODEL SMALL .8086

.STACK .CODE .STARTUP MOV DX,0200H

MOV AL,00B3H ;电动机停止,指示灯点亮 OUT DX,AL

AGAIN:MOV DX,0400H ;244地址

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

JZ BACKWARD JMP AGAIN FOREWARD:MOV SI,0

LOP0:MOV DX,0200H MOV AL,FFW[SI] OUT DX,AL MOV DX,0600H IN AL,DX TEST AL,01H JZ SPEEDZ1

TEST AL,02H JZ SPEEDZ2

TEST AL,04H JZ SPEEDZ3

TEST AL,08H JZ SPEEDZ4 JMP STOP

FORE:MOV DX,0400H IN AL,DX TEST AL,02H JZ BACKWARD

TEST AL,04H JZ STOP

;反转 ;输出口地址

;读入开关状态

;一级调速按钮是否按下 ;二级调速按钮是否按下 ;三级调速按钮是否按下 ;满转速按钮是否按下 ;244地址 ;读开关状态 ;反转按钮是否按下 ;停止按钮是否按下 ;读入开关状态 ;正转 INC SI CMP SI,8 JB LOP0 JMP FOREWARD BACKWARD:MOV SI,0

LOP1:MOV DX,0200H ;输出口地址 MOV AL,REV[SI] OUT DX,AL

MOV DX,0600H IN AL,DX TEST AL,01H JZ SPEEDF1

TEST AL,02H JZ SPEEDF2

TEST AL,04H JZ SPEEDF3

TEST AL,08H JZ SPEEDF4 JMP STOP

BACK:MOV DX,0400H IN AL,DX TEST AL,01H JZ FOREWARD

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

JMP BACKWARD STOP:MOV DX,0200H

MOV AL,00B3H OUT DX,AL JMP AGAIN

SPEEDZ1:CALL DELAY1

;一级调速按钮是否按下 ;二级调速按钮是否按下 ;三级调速按钮是否按下 ;全转速按钮是否按下 ;244地址 ;读入开关状态 ;正转按钮是否按下 ;停止按钮是否按下 ;电动机停止,指示灯点亮 ;正转一级转速

;读入开关状态 JMP FORE

SPEEDZ2:CALL DELAY2 ;正转二级转速 JMP FORE

SPEEDZ3:CALL DELAY3 ;正转三级转速 JMP FORE

SPEEDZ4:CALL DELAY4 ;正转满转速 JMP FORE

SPEEDF1:CALL DELAY1 JMP BACK

SPEEDF2:CALL DELAY2 JMP BACK

SPEEDF3:CALL DELAY3 JMP BACK

SPEEDF4:CALL DELAY4 JMP BACK

DELAY4 PROC NEAR PUSH BX PUSH CX MOV BX,25 DEL41:MOV CX,295 DEL42:LOOP DEL42 DEC BX JNZ DEL41 POP CX POP BX RET DELAY4 ENDP

DELAY3 PROC NEAR PUSH BX PUSH CX MOV BX,50 DEL31:MOV CX,295 DEL32:LOOP DEL32 DEC BX

;满转速延时子程序;三级速延时子程序 ;反转一级转速 ;反转二级转速 ;反转三级转速 ;反转满转速 JNZ DEL31 POP CX POP BX RET DELAY3 ENDP

DELAY2 PROC NEAR ;二级转速延时子程序 PUSH BX PUSH CX MOV BX,100 DEL21:MOV CX,295 DEL22:LOOP DEL22 DEC BX JNZ DEL21 POP CX POP BX RET DELAY2 ENDP

DELAY1 PROC NEAR ;满转速延时子程序 PUSH BX PUSH CX MOV BX,200 DEL11:MOV CX,295 DEL12:LOOP DEL12 DEC BX JNZ DEL11 POP CX POP BX RET DELAY1 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 系统软硬件的联合调试

将编写好的汇编语言源程序在MASM32软件中进行汇编、连接生成可执行文件,并将其载入到8086芯片进行仿真。仿真的效果图如下:

例如:按下反转按钮,按下满转速按钮,此时反转指示灯亮,电机满转速运行;

图13 源文件的汇编、连接

图14 仿真效果图-反转

按下正转按钮,电机按调速按钮设定的速度运行;

图15 仿真效果图-正转

按下停止按钮,电机停止运转。

图16 仿真效果图-停止

通过以上的调试过程和仿真调试结果可知,所设计的电路和所编写的程序满足实验要求。

5.2 问题分析和解决方案

问题分析:

在调试的时候,发现了一些没有完善的问题,在系统运行的时候,如果调速按钮都没有按下的时候,步进电机依然会以一个速度很微小的速度转动,研究了程序后发现,当调速按钮都没有按下时,虽然没有调用延时子程序,但是由于程序以很快的速度一遍一遍地运行,所以每次执行的时候仍然在把脉冲输给步进电机,导致了这样的情况。 解决方案:

即在系统检测到调速按钮没有键按下的时候,自动转跳到停止子程序,可以有效地解决以上产生的问题。

5.3 心得与体会

通过这次课程设计,我了解了步进电机的工作原理及接口电路原理,学会了用汇编实现步进电机正反转及速度控制的方法。通过汇编实现让8086控制步进电机正反转、变速,使我更加了解了了对步进电机的编程的李丽娜基础,并从中获得了初步的应用经验。在编程的过程中,我巩固了用汇编语言处理数据的能力,特表示对表数据的灵活运用能力。在调试和运行的过程中也遇到不少问题,最后都通过努力的思考和查阅书籍得到了相应的解决。在这个过程中,让我既提升了对实际步进电动机编程应用的能力,又巩固了8086的接口扩展技术编程技术,正确书写课程设计报告等。这次使我的知识层面不仅仅停留在书面的基础上,同时更进一步提高实践动手能力。觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。

经过这次设计,我知道了学习的重要,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作夯实了坚实的基础,我更明白了作为一名在校的大学生,我应该在大学里面学到的卟仅仅是书本上的知识,我们应该学会的是“再学习”的能力,只有具备了这种再学习的能力,才能在没有老师指导的情况下自己查阅书籍做出以前没有学过的东西。这次课程设计更让我明白了做任何事都应该仔仔细细、一丝不苟,在把自己编写的程序输入电脑的时候,由于自己一点小小的疏忽,打错了一个字符,导致程序运行有错误,做学问需要严谨的态度。这次课程设计真的让我学到很多,这也会是求学路途中的一次重要的进步。

六、参考文献

[1]许立梓.微型计算机原理及应用[M].北京:机械工业出版社,2003. [2]江正战.三级偏硬考试教程[M].江苏:东南大学出版社,2012. [3]杨邦华.微机原理与接口技术实用教程.北京:清华大学出版社,2008. [4]本书编辑委员会.《微型计算机及外部设备常用芯片手册》[M].北京:清华大学出版社,1999.

[5]顾滨.80X86微型计算机组成、原理和[M].北京:电子工业出版社,2001.

可以跟我要仿真源文件,QQ 021731935

附录:总电路图

AD[0..15]AD0AD1AD2AD3AD4AD5AD6AD7347813141718111U6D0D1D2D3D4D5D6D7CLKMR74273AD[16..19]25342726322928A131A142A1513Q0Q1Q2Q3Q4Q5Q6Q7256912151619A8A9A10A11A12A13A14A15Q0Q1Q2Q3Q4Q5Q6Q7256912151619A0A1A2A3A4A5A6A7A9A10A11A12ADR[0..19]23222120U5ABCDE1E2012345678910111213141512345678910111314151617IO0IO1IO2IO3IO4IO5IO6IO7IO8IO9IO10IO11IO12IO13IO14IO15U3M/IO1819NOTU121222418313023173319RESETAD[0..15]READYA[16..19]INTA/QS1INTRALE/QS0HOLD/GT1BHEHLDA/GT0DT/R/S1TESTDEN/S2NMIRDMN/MXWR/LOCKCLKM/IO/S08086LOAD_SEG=0x0800U2:A12U8AD83AD94AD107AD118AD1213AD1314AD1417AD1518111U7D0D1D2D3D4D5D6D7CLKMR74273742774154NOTRDWRM/IOAD[16..19]U10AD16AD17AD18AD19347813141718111RESPACK-8D0D1D2D3D4D5D6D7CLKMR74273Q0Q1Q2Q3Q4Q5Q6Q7256912151619A16A17A18A19BHE1SW1AD[0..15]U4:AAD0AD1AD2AD318161412Y0Y1Y2Y3A0A1A2A3OE74LS24424681SW2SW3U98NOTU2:C111097427+12VIO2A0RD12345678923456789正转反转停止SW4SW5SW6SW7AD[0..15]AD0AD1AD2AD39753U4:BY0Y1Y2Y3A0A1A2A3OE74LS24411131517191级调速2级调速3级调速AD[0..15]U11AD0AD1AD2AD3AD4AD5AD6AD7347813141718111D0D1D2D3D4D5D6D7CLKMR74273Q0Q1Q2Q3Q4Q5Q6Q72569121516191234567U21B2B3B4B5B6B7BCOM1C2C3C4C5C6C7C916151413121110AD+88.8BC满转速ULN2003ALED1LED2IO1A0WRR10270正转指示灯反转指示灯停转指示灯U14:ARDA0IO31213742712NOTU2:B65437427R1270U12LED3R2270

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务