基于8086的直流电机速度控制设计说明书.doc
《基于8086的直流电机速度控制设计说明书.doc》由会员分享,可在线阅读,更多相关《基于8086的直流电机速度控制设计说明书.doc(38页珍藏版)》请在沃文网上搜索。
1、武汉理工大学计算机控制技术课程设计说明书摘 要直流电动机在生产和生活中都有着广泛的应用,从我们的日常出行,到工业生产,随处可见直流电机的身影,直流电机具有控制简单,运行稳定,造价低廉等特点,因此随处可见。在众多应用过程中,都涉及到对直流电动机进行调速的部分。本次课程设计的背景就是在直流电机技术快速发展的今天,直流电机调速的方法也多种多样,运用最广泛的还是PWM脉宽调制的方法,通过调节输出波形的占空比来调节输出的电压。本次课程设计就是基于8086 CPU 这一经典的控制芯片,通过简单的按键操作,即可达到操作电机转速的目的。这里需要运用到可编程接口芯片8255。8255具有3组控制口,可以同时控制
2、键盘,数码管和直流电机,可以实现课程设计的要求。同时运用L298驱动芯片来更加稳定地控制直流电机。8255的输出口输出循环变化的高低电平组合来模拟PWM波形,从而达到调速的目的。关键字:PWM脉宽调制,8086,8255,L298,直流电动机目 录1 系统原理分析与设计12 硬件电路设计33 主要硬件原理介绍43.1 8086CPU介绍43.2 8255芯片介绍83.3 74LS48芯片介绍113.4 L298芯片介绍133.5 74LS373芯片介绍144 系统软件设计165 系统仿真运行206 心得体会26参考文献27附录1:protues仿真电路图28附录2 系统程序2936直流电机速度
3、控制1 系统原理分析与设计根据题目的要求,电路应该实现以下几个功能:利用7段数码管可以显示电机每分钟的转数,系统连接有按键,通过按键来控制电机的运行和停止,通过按不同的键来设置不同的速度,并在数码管上显示出来,然后,每个按键都对应一个键值,按不同的键会在显示速度的同时显示出所对应的键值。通过已知的功能可以大致画出系统的流程图,如图1-1。8位键盘主控芯片直流电机驱动电路4位7段数码管驱动芯片4位7段数码管直流电动机图1-1 系统流程图通过系统流程图,可以看到这里需要的几个主要芯片,主控芯片,数码管驱动芯片和直流电机的驱动芯片,主控芯片需要具备的功能是有3个外设接口,可以分别连接键盘,数码管和直
4、流电机,其中键盘为输入口,数码管和直流电机是输出口,通过查阅教材和资料,发现8255芯片可以做到以上几点,因为它有3个外设接口,只要输入不同的控制字,就可以实现各个口的分别输入和输出。而数码管驱动芯片,这里选择了74LS48的驱动芯片,因为题目中只需要显示数字,那么74LS48可以输入BCD码,然后输出7个高低电平来控制数码管显示相应的数字,而我们知道8255的一个接口有8位,因此,余下的4位可以控制数码管的位选,这样就可以控制哪一位的数码管亮起了。而直流电机的驱动芯片选择了L298芯片,该芯片控制简单,输出电压稳定,还有一定的放大作用。这里需要说明的是,对于直流电机的调速,我选择的是PWM脉
5、宽调制的方法。通过调节输出不同占空比的矩形波来调节直流电机的速度。而要实现PWM脉宽调制,那么就要输出不同占空比的矩形波,这里通过8255的外设接口,输出不同比例组合的高低电平来模拟PWM波,具体原理是:我给定一个8为的高低电平组合,即为一个周期,而组合中高电平越多则占空比越大,直流电机转速越快,这样如果我让这个8位的高低电平组合循环执行左移或右移指令,那么在每一位的输出口上就会循环输出高低电平,而且这个占空比就是我给定的占空比,这样只需要一个输出接口就可以控制直流电机的转速了。2硬件电路设计根据前面的分析,绘制了电路图如图2-1:图2-1 硬件电路图如图所示,8086CPU工作在最小模式下,
6、16位地址线分时复用。而这里通过地址线构成了8255各个外设接口的地址,其中AD15,AD5为高电平,AD2和AD1来选择8255的外设端口因此有4种组合地址,这里为了保证8255的4个端口地址为偶地址。所以CPU的AD0与译码器的输出段Y4通过逻辑与的组合生成了8255的片选信号。因此最后8255的4个端口的值为8020H、8022H、8024H、8026H。而从图中可以看到我用了两个地址锁存器,因为8086工作在最小模式下,需要地址线和数据线分时复用,因此我通过锁存器将我设置好的地址锁存,来保证各个端口的地址的稳定性。8255芯片的A口连接的是键盘,因此A口是输入口,B口和C口分别连接了数
7、码管和直流电机,因此B口和C口是输出口,这样可以确定8255的控制字为10010000B,即90H。同时由于8255输出的高电平不足以驱动直流电机的正常运转。因此,这里加入了一个放大电路,放大输出信号后接到了L298的电压输入端。这就是大致的电路图的一个介绍和分析,后面会对每个芯片做一个简单的介绍。3主要硬件原理介绍3.1 8086CPU介绍Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085(它与8080有组合语言上的原始码兼容性)的设计为
8、基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queue)喂指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元都有一个惟一的地址与之对应,其地址范围用十进制表示为01048575,用十六进制表示为00000HFFFFFH。Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引
9、寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。 Intel 8086有四个 内存区段(segment) 寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完
10、全地控制分段,使在编程中使用指针 (如C 编程语言) 变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。在这个系统中,8086作为整个系统的主控芯片,用来控制协调整个系统的工作如图所示就是仿真中的8086芯片的模型,这里隐藏了8086的VCC和GND两个引脚。如图3-1图3-1 8086管脚图1.数据总线D0D15 16位(8088仅8位),双向传输, 可分别使用其低8位或高8位,该总线与地址总线A0A15共用CPU引脚形成复用总线AD0AD1
11、5, 地址、数据分时传送。2.地址总线A0A1920位,单向,地址由CPU产生,用于寻址访问存储器单元或IO端口。A0A15与D0D15复用,A16A19与状态信号S3S6复用(A16/S3 A19/S6)。其中AD15AD0地址数据复用信号(标号216、39),双向,三态。 在总线周期的T1状态(地址周期)AD15AD0上出现的 是低16位的地址信号A15A0;在T3状态(数据周期)AD15AD0上出 现的是数据信号D15D0。作为分时复用管脚,因为既做地址信号,又做数据信号,因此是双向信号。 在总线周期的T1状态AD15AD0输出CPU所要访问的存储器或者I/O端口的地址; 而在总线周期的
12、T3状态,AD15AD0上出现的是CPU和存储器或I/O端口交换的数据。T2状态对于读周期和写周期来说AD15AD0上的状态是不同的: 在是读周期, AD15AD0要从CPU驱动(地址周期)切换为存储器或I/O端口驱动(数据周期),AD15AD0管脚需要在一个状态周期内维持高阻状态,以便不同总线驱动源的切换。如果是写周期,地址和数据信号都是由CPU驱动,所以CPU从T2开始便输出数据。T2T3都是数据周期。A19/S6A16/S3 (Address/Status):地址状态复用信号(标号3538),输出。 在总线周期的T1状态(地址周期)A19/S6A16/S3上出现的是地址的高4位。在T2T
13、4状态,A19/S6A16/S3上输出状态信息。3.控制信号 与CPU工作模式无关的信号有:BHE#、NMI、INTR、RD#、CLK、RESET、READY#、TEST#、MN/MX#、GND最小模式下控制信号M/IO#(Memory/Input and Output): 存储器或者I/O控制信号,输出,三态。M/IO#输出为高电平,指示CPU正在执行存储器访问指令, 进行和存储器之间数据交互; 如果为低电平,表示CPU正在执行I/O指令, 进行和I/O接口之间数据传输。为1时,CPU作存储器访问;为0时,CPU作端口访问。DT/R#(Data Transmit/Receive):数据驱动器
14、数据流向控制信号,输出,三态。在8086系统中,通常采用8286或8287作为数据总线的驱动器, 用DT/R#信号来控制数据驱动器的数据传送方向。当DT/R#1时,数据驱动器进行数据发送;DT/R#0时,数据驱动器进行数据接收。用于控制双向数据总线收发器的驱动方向。BHE#/S7(O):为0时,总线高字节允许传送;为1时,总线高字节禁止传送。BHE#控制对存储器按双字节输出时,高字节总线允许打开传送。即只给一个字地址,输出两个字节。S7备用。RD#(Read):读信号,输出,三态。RD#信号有效,表示CPU执行一个对存储器或I/O端口的读操作,在一个读操作的总线周期中,RD#在T2T3状态中有
15、效,为低电平。为0时,CPU作读操作。WR#:写信号,输出,三态。WR#信号有效,表示CPU执行一个对存储器或I/O端口写操作,在写操作总线周期中,WR#在T2T3状态中有效,为低电平。为0时,CPU作写操作;M/IO#,RD#, WR#组合成系统的存储器和端口的读写信号: MEMR#,MEMW#,IOR#,IOW#。高电平有效时,将地址存入外部地址锁存器。通常用RD#以及WR#信号控制存储器或I/O的读出和写入端。RD#和 WR#指出CPU当前进行的是读还是写操作, 它和M/IO#信号一起,指出当前进行的是存储器读、I/O读、存储器写、I/O写四种操作中的哪一种。RD#和WR#信号除了在T2
16、T3状态中有效外,还在TW(等待)状态有效。表4.2.2为对存储器或I/O的读写操作选择。表3-1 RD#,WR#,M/IO#对应真值表RD#WR#M/IO#对应的操作010I/O写操作011存储器写操作100I/O读操作101存储器读操作DEN#(Data Enable)(O):数据使能信号,输出,三态,低电平有效。 用于数据总线驱动器的控制信号。为0时,数据输出有效,与DT/R#配合,用于控制双向数据总线收发器的开与关。CPU的信号线上,特别是地址、数据、控制线上, 通常连接多个器件,也就是说, CPU的每根信号线要带多个负载,为增强其负载能力,通常在CPU的地址、 数据、控制线上设计驱动
17、器。因地址信号采用8282地址锁存器锁存,其本身具有较强的负载能力,所以不再另加驱动器。数据线驱动一般采用双向数据驱动器8286。DEN#用作对数据驱动器的使能。DEN#在存储器或I/O访问周期或中断响应周期都为低电平, 即为有效电平。如果是读周期或者中断响应周期,DEN#从T2状态中开始有效,一直到T4状态中结束;如果是写周期,则从T2状态的开始就是有效电平。在DMA方式时,DEN#被置为高阻状态。 ALE(Address Latch Enable)(O):地址锁存使能信号,输出,高电平有效。是用来作为地址锁存器的锁存控制信号。8086的AD15AD0是地址数据复用信号,地址信息仅在T1状态
18、有效,为了使地址信号在整个读写周期都有效, 通常要用ALE把地址信号锁存在地址锁存器当中为1时, 地址锁存允许,高电平有效时,控制将地址存入外部地址锁存器。NMI(Non-Maskable Interrupt):非屏蔽中断请求,输入,上升沿有效。NMI不受中断允许标志的影响。 当CPU检测到NMI有一个正沿触发的信号以后, CPU执行完当前指令便响应中断类型号为2的非屏蔽中断请求。为1时,(上升沿)产生不可屏蔽中断请求。非屏蔽中断是不受中断允许标志IF的影响的,不能用软件进行屏蔽。RESET复位信号,输入,高电平有效。 复位信号有效时,CPU结束当前操作并对标志寄存器FLAG 、IP、DS、S
19、S、ES及指令队列清零,并将CS设置为FFFFH。 当复位信号撤除时,(即电平由高变低时)CPU从FFFF0H开始执行程序。 这也是8086系统程序的起始地址,即开机后程序的起始位置。一般的8086系统,将系统程序固化在ROM中,ROM的地址应包含FFFF0H。READY(Ready):准备好信号,输入,高电平有效。为了CPU能和不同速度的存储器或I/O接口进行连接, 设计了READY信号。CPU在每个总线周期的T3状态对READY进行采样。 当READY信号有效时表示存储器或I/O准备好发送或接收数据。CPU执行典型的总线周期,在4个T状态内完成总线操作。 如果存储器或I/O的速度较慢,不能
20、与CPU的速度相匹配,可令READY为低。CPU在T3采样到READY为低电平以后,便在T3之后插入Tw, 延长读写周期,使CPU能和较慢速度的存储器或I/O接口相匹配。 为1时,被访问部件准备就绪;为0时,被访问部件未准备就绪。MN/MX#(Minimum/Maximum Mode Control):最大最小模式控制信号,输入。决定8086工作在哪种工作模式。如果MN/MX#1(+5V),CPU工作在最小模式。MN/MX#0(接地), CPU则工作在最大模式。3.2 8255芯片介绍8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编
21、程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部 分、控制部分。1与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 8086 直流电机 速度 控制 设计 说明书