单片机 第9章-1资料_第1页
单片机 第9章-1资料_第2页
单片机 第9章-1资料_第3页
单片机 第9章-1资料_第4页
单片机 第9章-1资料_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九章 单片微机的系统扩展(kuzhn)原理及接口技术共一百零八页 系统扩展是指单片微机内部各功能部件不能满足应用系统要求时,在片外连接(linji)相应的外围芯片以满足应用系统要求。 主要有程序存储器的扩展、数据存储器的扩展、I/O口的扩展、中断系统扩展以及其它特殊功能接口的扩展等。9.1 系统(xtng)扩展原理共一百零八页 对于单片微机系统扩展的方法有并行扩展法和串行扩展法两种。并行扩展法:利用单片微机本身具备的三组总线(AB、DB、CB)进行(jnxng)的系统扩展。串行扩展法:利用SPI三线总线和I2C双线总线等进行串行系统扩展。 有的单片微机应用系统同时采用并行扩展法和串行扩展法。

2、共一百零八页 单片微机是通过芯片(xn pin)的引脚进行系统扩展的。 80C51系列带总线的芯片引脚可以构成图91所示的三总线结构。 具有同样并行总线的外部芯片通过这三组总线与单片微机连接。 9.1.1 外部(wib)并行扩展原理共一百零八页图91 80C51系列(xli)单片微机的三总线结构共一百零八页(1)地址总线(AB)由P0口提供低8位地址A0A7,P2口提供高8位地址A8A15。P0口是地址总线低8位和8位数据总线复用口,只能分时用作地址线。P0口输出的低8位地址A0A7必须用锁存器锁存。锁存器的锁存控制信号来自单片微机ALE引脚输出的控制信号。在ALE的下降沿将P0口输出的地址A

3、0A7锁存。P0、P2口在系统(xtng)扩展中用作地址线后便不能作为一般I/O口使用。地址总线宽度为16位,可寻址范围为64 KB。共一百零八页7 图9-2 AT89C51单片机扩展(kuzhn)的片外三总线共一百零八页(2)数据总线(DB) 由P0口提供,用D0D7表示。P0口为三态双向口,是应用系统中使用最为频繁的通道。单片微机与外部交换的所有数据、指令、信息,除少数可直接通过P1口外(Kuwi),全部通过P0口传送。数据总线是并连到多个连接的外围芯片的数据线上,而在同一时间里只能够有一个是有效的数据传送通道。哪个芯片的数据通道有效,则由地址线控制各个芯片的片选线来选择。共一百零八页(3

4、)控制总线(CB) 包括片外系统扩展(kuzhn)用控制线和片外信号对单片微机的控制线。ALE:输出P0口上地址与数据隔离信号,用于锁存P0口输出的低8位地址的控制线。ALE信号的下降沿控制锁存器锁存地址数据,通常选择下降沿选通的锁存器作低8位地址锁存器。 PSEN :读片外程序存储器中的数据。“读”片外程序存储器中数据(指令)时,不能用“ ”信号,而只能用 PSEN信号。EA:选择片内或片外程序存储器。 当 0时,只访问外部程序存储器。 当 1时,先访问内部程序存储器,内部程序存储器全部访问完之后,再访问外部程序存储器。 共一百零八页 、 :片外数据存储器和I/O端口的写、读控制。当执行片外

5、数据存储器操作指令MOVX时,自动生成 、 控制信号(xnho)常用地址锁存器如图所示。 共一百零八页74LS373是有输出三态门的电平允许8D锁存器。当G(使能端)为高电平时,锁存器的数据输出端Q的状态与数据输入端D相同(透明的)。当G端从高电平返回(fnhu)到低电平时(下降沿后),输入端的数据就被锁存在锁存器中,数据输入端D的变化不再影响Q端输出。 共一百零八页74LS273是带公共时钟复位八D触发器(1)1脚是复位CLR,低电平有效(yuxio),当1脚是低电平时,输出全部输出0,即全部复位;(2)当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升

6、沿,立即锁存输入脚的电平状态,并且立即呈现在在输出脚上.所以,如果分别用273和373来作为单片机的地址存器的话,对273来说,1(CLR)脚必须接高电平,ALE信号经过反相后接11脚(因为单片机的ALE信号是以下降沿方式出现);对373来说,1脚接低电平,保证使能,11脚直接接单片机的ALE信号.共一百零八页1.并行扩展方式的编址技术在单片微机应用系统中,为了唯一地选择片外某一存储单元或I/O端口,需要进行两种选择。必须先找到该存储单元或I/O端口所在的芯片,称为“片选” 通过(tnggu)对芯片本身所具有的地址线进行译码,然后确定唯一的存储单元或I/O端口,称为“字选”。地址空间(kngj

7、in)分配注意,“片选”和“字选”都是单片机通过地址线一次发出的地址信号来完成选择。共一百零八页“片选” 保证每次读或写时,只选中某一片存储器芯片或I/O接口芯片。常用的方法有4种:“线选法” 、“地址译码法” 、应用 “可编程器件PAL/GAL” 或“I/O口线” 。(1) 线选法:一般是利用单片微机的最高几位空余的地址线中一根(如P2.7) 作为(zuwi)某一片存储器芯片或I/O接口芯片的“片选” 控制线。用于应用系统中扩展芯片较少的场合。共一百零八页低位地址线A0A10实现片内寻址(字选)。高位地址线A11A13实现片选(A11A13中只允许有一根为低电平,另二根必须为高电平,否则出错

8、(ch cu))。无关位A14、A15可任取,一般取“1”。高位地址(dzh)线直接连到存储器芯片的片选端。线选法共一百零八页二进制表示 16进制表示 无关位片外地址线片内地址线A15 A14A13 A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0芯片1 11 1 00 0 0 0 0 0 0 0 0 0 0F000H. . . . . . . . . . . . . .1 11 1 01 1 1 1 1 1 1 1 1 1 1F7FFH芯片1 11 0 10 0 0 0 0 0 0 0 0 0 0E800H. . . . . . . . . . . . . .

9、 .1 11 0 11 1 1 1 1 1 1 1 1 1 1EFFFH 芯片1 10 1 10 0 0 0 0 0 0 0 0 0 0D800H. . . . . . . . . . . . . . .1 10 1 11 1 1 1 1 1 1 1 1 1 1DFFFH线选法三片存储器芯片地址(dzh)分配表共一百零八页线选法优点:连接简单(jindn); 缺点:芯片地址空间不连续; 适用于扩展存储容量较小的场合。共一百零八页(2) 译码法:用译码器对空余的高位地址(dzh)线进行译码,而译码器的输出作为“片选” 控制线。常用的译码器有3/8译码器74LS138、双2/4译码器74LS139

10、、4/16译码器74LS154等。3/8译码器74LS138的管脚见下页图。G1、 、 :使能端。 当G1=1, = =0时,芯片使能。C、B、A:译码器输入,高电平有效。 Y :译码器输出,低电平有效。共一百零八页图83 74LS138三-八译码器共一百零八页译码法:通过(tnggu)译码器将高位地址线转换为片选信号。共一百零八页二进制表示 16进制表示 无关位片外地址线片内地址线A15A14 A13 A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0芯片10 0 0 00 0 0 0 0 0 0 0 0 0 08000H. . . . . . . . . .

11、. . . . .10 0 0 01 1 1 1 1 1 1 1 1 1 187FFH芯片10 0 0 10 0 0 0 0 0 0 0 0 0 08800H. . . . . . . . . . . . . . .10 0 0 11 1 1 1 1 1 1 1 1 1 18FFFH芯片10 0 1 00 0 0 0 0 0 0 0 0 0 09000H. . . . . . . . . . . . . . .1 0 0 1 01 1 1 1 1 1 1 1 1 1 197FFH译码法三片存储器芯片地址(dzh)分配表 共一百零八页 译码法与线选法比较,硬件电路稍复杂,需要使用译码器,但可充分

12、利用存储空间,全译码时还可避免地址重叠现象,局部译码因还有部分高位地址线未参与译码,因此仍存在地址重叠现象。 译码法的另一个优点是若译码器输出端留有剩余端线未用时,便于继续扩展(kuzhn)存储器或I/O口接口电路。 译码法和线选法不仅适用于扩展存储器(包括外RAM和外ROM),还适用于扩展I/O口(包括各种外围设备和接口芯片)。共一百零八页 可编程阵列逻辑器件PAL(Programmable Array Logic)和通用阵列逻辑GAL(Generic Array Logic)(加密性好) 。有的应用系统为了硬件电路加密,采用PAL或GAL来进行地址译码和分配(比如有的单片微机仿真器),你能

13、看到的是PAL或GAL的输入线和输出线,而无法(wf)掌握内部逻辑关系。 输入输出线作为译码线可以利用空余的I/O口线(如P1.0) ,或应用系统扩展的I/O口线作为芯片的片选线,当该I/O口线输出低电平时,即选中了该芯片。共一百零八页280C51系列单片微机的系统并行扩展能力 地址总线宽度为 16位,在片外可扩展的存储器最大容量为64KB,地址为0000HFFFFH。 片外数据存储器与程序存储器的操作使用不同的指令和控制信号,允许两者的地址重叠,故片外可扩展的数据存储器与程序存储器最大容量分别为64 KB。 片外数据存储器与片内数据存储器的操作指令不同(片外RAM只能用MOVX指令)。允许两

14、者地址重叠,亦即外部(wib)扩展数据存储器地址可从0000H开始。I/O口扩展与片外数据存储器统一编址,不再另外提供地址线。 共一百零八页 外部串行总线主要包括:SPI总线和I2C总线两种。 1. SPI三线总线结构 SPI三线总线结构是一个同步外围接口,允许(ynx)MCU与各种外围设备以串行方式进行通信。一个完整的SPI系统有如下的特性: .全双工、三线同步传送; .主、从机工作方式; .可程控的主机位传送频率、时钟极性和相位; .发送完成中断标志; .写冲突保护标志。 在大多数场合,使用一个MCU作为主机,控制数据向一个或多个从机(外围器件)的传送。 9.1.2 外部串行扩展(kuzh

15、n)原理共一百零八页图85 SPI系统(xtng)时钟的极性和相位关系图9-4 SPI数据传送(chun sn)格式共一百零八页2. I2C(Intel IC BUS)公用双总线结构 使用两根信号线(SDA和SCL)串行的方法进行信息传送,并允许若干兼容器件共享的双线总线,称为I2C总线。I2C总线系统(xtng)的示意图见图95。SDA:串行数据线,传输双向的数据。SCL:串行时钟线,传输时钟信号,同步串行数据线上的数据。 共一百零八页图86 I2C总线(zn xin)系统示意图共一百零八页 9.2 程序(chngx)存储器的扩展8.2.1 程序存储器扩展时的总线功能和操作时序为片外程序存储

16、器读选择信号。正常运行时,该引脚不能浮空。 根据连接电平的不同,单片微机有两种取指过程:(1) 当 1时,80C51单片微机所有片内程序存储器有效。 当程序计数器PC运行于片内程序存储器的寻址范围内时,P0口、P2 口及 线没有信号输出;当程序计数器PC的值超出上述范围后,P0口、P2 口及 线才有信号输出。(2)当 0时,80C51单片微机所有片内程序存储器无效,只能访问片外程序存储器。伴随(bn su)着单片微机复位,P0口、P2口及 线均有信号输出。共一百零八页 80C51访问片外程序存储器时,使用如下的信号: P0口:分时输出程序存储器的低8位地址和8位数据(shj)。 ALE:在AL

17、E的下降沿时,P0口上出现稳定的程序存储器的低8位地址,用ALE信号锁存这低8位地址。 P2口:在整个取指周期中,输出稳定的程序存储器的高8位地址。 :低电平有效。在ALE的下降沿之后,由高变为低,此时片外程序存储器的内容(指令字)送到 P0口,而后在 的上升沿将指令字送入指令寄存器, 信号作为片外程序存储器的“读”选通信号。共一百零八页片外程序(chngx)存储器取指操作时序共一百零八页9.2.2扩展片外程序存储器的硬件电路 片内程序存储器容量越来越大,如89C5887C58的片内程序存储器的容量高达32KB,甚至(shnzh)为 64 KB。而价格相对以前也大大降低。程序存储器的扩展已不是

18、必须,仅作为一种技术来加以介绍。 通常只需要扩展一片或两片EPROM芯片就足够。共一百零八页ROM芯片及扩展方法(fngf) 1、EPROM存储器及扩展常用的EPROM芯片有2732、2764、27128、27256、27512等 。型号 “27”后面的数字表示其位存储容量。如果换算成字节容量,只需将该数字除以8即可。芯片引脚功能:A0A15:地址线引脚。它的数目由芯片(xn pin)的存储容量决定,用于进行单元选择。D7D0:数据线引脚。 :片选控制端。 :输出允许控制端。 :编程时,编程脉冲的输入端。共一百零八页图8-8 EPROM芯片(xn pin)引脚图9-9 常用(chn yn)EP

19、ROM芯片引脚共一百零八页EPROM存储器扩展(kuzhn)电路:图910 程序存储器的扩展(kuzhn)电路共一百零八页图911 程序存储器的扩展(kuzhn)电路共一百零八页门上图中27C128地址是多少?容量?在上图电路中 是接高电平的。27128A是16KB容量的EPROM,14根地址线A0A13。系统中只扩展(kuzhn)了一片程序存储器,27128A的片选端可直接接地,一直有效。EA=1,程序存储器先片内4KB、即0000H0FFFH。当PC值超出片内程序存储器容量时,自动转向片外。所以片外27C128的地址为1000H 3FFFH,共12KB。共一百零八页2、EEPROM存储器及

20、扩展 常用(chn yn)的EEPROM芯片有2864、2817等 。共一百零八页 存储器固有(gyu)不挥发性 高密度 低功耗 晶体管单元 在线可重写FLASH SRAM DRAM EEPROM OTP/EPROM 掩膜ROM 常用的数据存储器有动态RAM和静态RAM,有并行RAM和串行RAM。 各种存储器性能(xngnng)的比较 如表8 - 2 9.3 数据存储器的扩展共一百零八页9.3.1 片外并行数据存储器扩展 1. 片外并行数据存储器扩展时的总线功能和读、写操作时序 80C51对片外数据存储器读、写操作的指令有以下4条: MOVX A,Ri ; 片外RAM(A),读操作 MOVX

21、Ri,A ;(A)片外RAM ,写操作Ri只能提供8位地址,仅能扩展256个字节(z ji)的片外RAM。 MOVX A,DPTR;片外RAM(A),读操作 MOVX DPTR,A ;(A)片外RAM,写操作 DPTR能提供16位地址,可以扩展 64KB的片外 RAM。共一百零八页“MOVX A,DPTR”和“MOVX DPTR,A”的操作时序示于下页。从图中可以看出,执行该组指令时,机器周期1为取指周期,在取指周期的S5状态,当ALE为下降沿时,在P0总线上出现的是数据(shj)存储器的低8位地址,即DPL;在P2口上出现的是数据存储器的高8位地址,即DPH。 取指操作之后,直至机器周期2的

22、S3状态之前,一直维持高电平。而在机器周期2的S1与S2状态之间的ALE不再出现。 执行“MOVX A,DPTR”时,从机器周期2开始到S3状态, 出现低电平。此时允许将片外数据存储器的数据送上P0口,在 的上升沿将数据读入累加器A。数据为输入。共一百零八页“MOVX A,DPTR” 和“MOVX DPTR,A” 的操作(cozu)时序共一百零八页 执行“MOVX DPTR,A”时,从机器周期2开始到S3状态, 出现低电平。此时P0口上将送出累加器A的数据,在 的上升沿将数据写入片外数据存储器中。数据为输出。 此时P0口为地址、数据复用总线(zn xin);P2口在机器周期1的S4状态之后出现

23、锁存的高8位地址(DPH);用控制线来调动数据总线(zn xin)上的数据传输方向:而 有效时数据为输入, 有效时数据为输出。共一百零八页数据(shj)存储器:常用的数据存储器SRAM芯片有6116626462256等。2. 片外并行数据(shj)存储器的扩展共一百零八页共一百零八页16KB片外并行数据(shj)存储器扩展电路共一百零八页上图所示的是用两片6264扩展16KB片外并行(bngxng)数据存储器的电路。采用线选法寻址。用一根口线P2.7来寻址:P2. 7=0时,访问6264(0) , 地址范围为6000H7FFFH。P2.7=l时, 访问6264(1), 地址范围为E000HFF

24、FFH。共一百零八页80C51同时扩展外ROM和外RAM时典型(dinxng)连接电路共一百零八页 地址线、数据线仍按80C51一般扩展外ROM时方式连接。 片选线,因外ROM只有一片,无需片选。2764 CE直接接地,始终有效。外RAM虽然也只有一片,但系统可能还要扩展I/O口,而I/O口与外RAM是统一编址的,因此一般需要片选,6264CE1接P2.5,CE2直接接Vcc,这样6264的地址范围为C000HDFFFH,P2.6、P2.7可留给扩展I/O口片选用。 读写控制线,读外ROM执行(zhxng)MOVC指令,由PSEN控制2764 OE,读写外RAM执行MOVX指令,由RD控制62

25、64OE,WR控制6264WE。共一百零八页 1单片微机为什么需要I/O接口电路 存储器是半导体电路,与单片微机具有相同的电路形式,数据信号也是相同的(电平信号),能相互兼容直接使用(shyng),存储器与单片微机之间采用同步定时工作方式。存储器与单片微机之间的连接相当简单,除地址线、数据线之外,就是读或写选通信号,实现起来非常方便。 9.4 I/O 的扩展(kuzhn)及应用9.4.1 I/O扩展概述共一百零八页CPU和外部设备之间的数据传送却十分复杂。高速CPU与工作速度快慢差异很大的慢速外部设备的矛盾。 外部设备的数据信号是多种多样的。 外部设备种类繁多(fndu)。 外设的数据传送有近

26、距离的,也有远距离的。 单片微机必须在单片微机和外设之间有一个接口电路,通过接口电路对单片微机与外设之间的数据传送进行协调。共一百零八页单片机与I/O设备(shbi)的关系:共一百零八页接口电路主要有如下几项功能:速度协调 速度上的差异,使得数据的I/O传送只能以异步方式进行,在确认外设已为数据传送作好准备的前提下才能进行I/O操作。三态缓冲 数据输入时,输入设备向CPU传送的数据也要通过数据总线,为了维护数据总线上数据传送的有秩序,只允许当前时刻正在进行数据传送的数据源使用(shyng)数据总线,其它数据源都必须与数据总线处于隔离状态。要求接口电路能为三态缓冲功能。数据转换包括:模数转换、数

27、模转换、串并转换和并串转换等。共一百零八页 接口与端口外设之间在数据传送方面的联系。其功能主要是通过电路实现的,称之为接口电路。接口电路中应该包含有数据寄存器以保存输入输出数据、状态寄存器以保存外设的状态信息、命令寄存器以保存来自CPU的有关数据传送的控制命令。由于在数据的传送中,CPU需要对这些寄存器的状态口和保存命令的命令口寻址等,通常把接口电路中这些已编址并能进行读或写操作的寄存器称之为端口(port),或简称口。一个接口电路就对应着多个(du )端口地址。对它们像存储单元一样进行编址。共一百零八页 数据隔离技术 输入输出的数据都要通过系统的数据总线进行传送,为了正确地进行数据的传送,就

28、必须解决数据总线的隔离问题。对于输出设备的接口电路,要提供锁存器,当允许(ynx)接收输出数据时锁存器打开,否则关闭。对于输入设备的接口电路,要使用三态缓冲电路或集电极开路门。 三态缓冲电路 具有三态输出的门电路,也称之为三态门(TSL),低电平状态、高电平状态和高阻抗三种状态。当三态缓冲器的输出为高或低电平时,就是对数据总线的驱动状态;当三态缓冲器的输出为高阻抗时,就是对总线的隔离状态。三态缓冲器的控制逻辑如表所示。共一百零八页三态缓冲器的控制(kngzh)逻辑 三态控制信号 工作状态 数据输入(shr) 输出端状态 1 高阻抗 0 高阻抗 1 高阻抗 0 驱动 0 0 1 1共一百零八页对

29、三态缓冲电路的主要(zhyo)性能要求有: 速度快,信号延迟时间短。例如典型三态缓冲器的延迟时间只有8-13ns。较高的驱动能力。高阻抗时对数据总线不呈现负载,最多只能拉走不大于0.04mA电流。共一百零八页 集电极开路门集电极开路门是从基本的与非门电路演变过来的,把集电极回路中的电阻除去,让集电极开路,就得到了集电极开路门电路。可以(ky)作为集电极开路的电路有反相器、与非门以及与或非门等。集电极开路器件的输出是低电平起作用,如果其中一个为低电平,则总的输出即为低电平。只有当所有连在一起的集电极开路器件的输出端均为高电平时总的输出才是高电平。对于这种逻辑关系有时也称之为“线与”。共一百零八页

30、 I/O编址技术 接口电路要对其中的端口进行编址。对端口编址是为I/O操作而进行的,也称为I/O编址。常用的I/O编址有独立编址方式和统一编址方式 。 独立编址方式 优点是I/O地址空间(kngjin)和存储器地址空间(kngjin)相互独立,但需要专门设置一套I/O指令和控制信号,从而增加了系统的开销。共一百零八页 统一编址方式 统一编址就是把系统中的I/O和存储器统一进行编址。在这种编址方式中,把接口中的寄存器(端口)与存储器中的存储单元同等对待(tn dn du di),称之为存储器映像(memory mapped)编址。80C51使用统一编址方式。在接口电路中的I/O编址也采用16位地

31、址,和存储单元的地址长度一样。共一百零八页 I/O数据传送的控制方式 有无条件传送方式、查询方式、中断方式和直接存储器存取(DMA)4种方式。在单片微机中主要使用前三种方式。 无条件传送方式无条件传送也称为同步程序传送。在进行(jnxng)I/O操作时,不需要测试外部设备的状态,可以根据需要随时进行(jnxng)数据传送操作。共一百零八页 查询方式查询方式又称之为有条件传送方式,即数据的传送是有条件的。为了实现查询方式的数据输入输出传送,需要由接口电路提供外设状态(zhungti),并以软件方法进行状态(zhungti)测试。因此这是一种软硬件方法结合的数据传送方式。 中断方式当外设为数据传送

32、作好准备之后,就向CPU发出中断请求,CPU响应中断请求之后,转去为外设的数据输入输出服务。待服务完成之后,CPU再继续执行被中断的原程序。共一百零八页 简单输出口的扩展输出口的主要功能是进行数据保持(锁存) ,一般应用锁存器芯片实现。比如常用(chn yn)74LS377芯片,该芯片是一个具有“使能”控制端的8D锁存器。一个时钟输入端CK,一个锁存允许信号G,当G=0时,CK的上跳变将把8位D输入端的数据打入8位锁存器,这时Q输出端将保持D端输入的数据。80C51与74LS377的接口见图912。 8.4.3 80C51简单(jindn)I/O的扩展 9.4.2 使用74系列器件扩展I/O口

33、共一百零八页80C51与74LS377接口(ji ku)电路图共一百零八页例:将一个数据字节(z ji)从74LS377输出MOV DPTR,#7FFFH ;地址指针指向74LS377MOV A,#DATA ;将输出数据送AMOVX DPTR,A ;输出数据共一百零八页 简单输入(shr)口的扩展对于常态数据的输入,只需采用8位三态门控制电路芯片即可。下图是用74LS244通过P0口扩展的8位并行输入口,图中,三态门由P2.6和 RD相或控制,其端口地址为BFFFH。例:数据输入MOV DPTR,#0BFFFH;指向74LS244口地址MOVX A,DPTR;读入数据共一百零八页80C51与7

34、4LS244接口(ji ku)电路图 共一百零八页使用(shyng)74373扩展输入口共一百零八页74LSTTL I/O扩展(kuzhn)举例共一百零八页编写程序把按钮开关状态通过上图的发光二极管显示出来。程序如下:DDIS:MOV DPTR,#0FEFFH ;输入口地址DPTRLP:MOVX A,DPTR;按钮开关状态读入A中 MOVX DPTR,A;A中数据送显示输出口 SJMP LP ;反复(fnf)连续执行由程序可看出,对于扩展接口的输入/输出就像从外部RAM读/写数据一样方便。上图仅仅扩展了两片,如果仍不够用,还可扩展多片74LS244、74LS273之类的芯片。但作为输入口时,一

35、定要求有三态功能,否则将影响总线的正常工作。共一百零八页 9.4.3 可编程I/O并行接口芯片8255A的扩展(kuzhn)及应用 在单片微机I/O扩展中常用的并行可编程接口芯片(xn pin)有:8255A :可编程通用并行接口芯片。:带RAM和定时器、计数器的可编程 并行接口芯片。8279 :可编程键盘/显示器接口芯片 。共一百零八页8255A芯片简介(jin ji)Intel公司的可编程并行I/O接口芯片,3个8位并行I/O口,3种工作方式,单片机与多种外设连接时的中间接口电路。引脚及内部结构如图9-1和图9-2所示。共一百零八页73图9-1 8255A的引脚图 图9-2 8255A的内

36、部结构共一百零八页1引脚说明(shumng)共40个引脚,引脚功能如下:D7D0:三态双向数据线,与单片机的P0口连接,用来与单片机之间传送数据信息。 :片选信号线,低有效,表示本芯片被选中。 :读信号线,低有效,读8255A端口数据的控制信号。 :写信号线,低电平有效,用来向8255A写入端口数据的控制信号。VCC:+5V电源。74共一百零八页PA7PA0:端口A输入/输出线。PB7PB0:端口B输入/输出线。PC7PC0:端口C输入/输出线。A1、A0:地址线,用来选择8255A内部的4个端口。RESET:复位引脚,高电平有效。2内部结构如图9-2所示,3个并行数据输入/输出端口,两种工作

37、方式(fngsh)的控制电路,一个读/写控制逻辑电路和一个8位数据总线缓冲器。各部件的功能如下:75共一百零八页(1)端口PA、PB、PC3个8位并行口PA、PB和PC,都可以选为输入/输出工作模式,功能(gngnng)和结构上有差异。PA口:一个8位数据输出锁存器和缓冲器;一个8位数据输入锁存器。PB口:一个8位数据输出锁存器和缓冲器;一个8位数据输入缓冲器。PC口:一个8位的输出锁存器;一个8位数据输入缓冲器。通常PA口、PB口作为输入/输出口,PC口既可作为输入/输出口,也可在软件控制下,分为两个4位的端口,作为端口PA、PB选通方式操作时的状态控制信号。76共一百零八页(2)A组和B组

38、控制电路是两组根据80C51写入的“命令字”控制8255A工作方式的控制电路。A组控制PA口和PC口的上半部(PC7PC4);B组控制PB口和PC口的下半部(PC3PC0),并可用“命令字”来对端口PC的每一位实现按位置“1”或清“0”。(3)数据总线缓冲器数据总线缓冲器是一个三态双向8位缓冲器,作为(zuwi)8255A与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。77共一百零八页(4)读/写控制逻辑电路(lu j din l)接收80C51单片机发来的控制信号 、 、RESET、地址信号A1、A0等,然后根据控制信号的要求,端口数据被80C51单片机读出,或者将80C

39、51单片机送来的数据写入端口。各端口工作状态与控制信号的关系见表9-1。78共一百零八页79共一百零八页2 工作方式选择控制字及端口PC置位/复位控制字可向8255A控制寄存器写入两种不同的控制字。1)工作方式选择控制字8255A有3种基本工作方式:(1)方式0基本输入(shr)/输出;(2)方式1选通输入/输出;(3)方式2双向传送(仅PA口有此工作方式)。3种工作方式方式控制字来决定。格式如图9-3所示。最高位D7=1,为本方式控制字的标志,以便与另一控制字相区别(最高位D7=0)。80共一百零八页81图9-3 8255A的方式(fngsh)控制字格式共一百零八页PC口分两部分,随PA口称

40、为A组,随PB口称为B组。其中PA口可工作于方式0、1和2,而PB口只能工作在方式0和1。【例9-1】80C51向8255A的控制字寄存器写入工作方式控制字95H,根据(gnj)图9-3,将8255A编程设置为:PA口方式0输入,PB口方式1输出,PC口的上半部分(PC7PC4)输出,PC口的下半部分(PC3PC0)输入。MOVDPTR,#H;控制字寄存器端口地址;H送DPTR MOV A,#95H; 方式控制字95H送AMOVXDPTR,A; 控制字95H送控制字寄存器82共一百零八页2)PC口按位置位/复位控制字为另一控制字。即PC口中任何一位,可用一个写入8255A控制口的置位/复位控制

41、字来对PC口按位置“1”或清“0”。用于位控。格式如图9-4所示。【例9-2】 80C51向8255A的控制字寄存器写入工作(gngzu)方式控制字07H,则PC3置1;08H写入控制口,则PC4清0。程序段如下:MOVDPTR,#H; 控制寄存器端口地址;H送DPTR MOV A,#07H; 方式控制字07H送A83共一百零八页图9-4 PC口按位置位/复位(f wi)控制字格式共一百零八页MOVXDPTR,A; 控制(kngzh)字07H送控制寄存器,把PC3置1MOVDPTR,#H; 控制字寄存器端口地址送DPTR MOV A,#08H; 方式控制字08H送AMOVXDPTR,A; 08

42、H送控制字寄存器,PC4清085共一百零八页3、 8255A的3种工作方式1)方式0是基本输入/输出(shch)方式。80C51可对8255A进行I/O数据的无条件传送。例如,80C51单片机从8255A的某一输入口读入一组开关状态,从8255A输出控制一组指示灯的亮、灭。并不需要任何条件,外设I/O数据可在8255A的各端口得到锁存和缓冲。因此,方式0称为基本输入/输出方式。方式0下,3个端口都可以由软件设置为输入或输出,不需要应答联络信号。方式0的基本功能如下:86共一百零八页(1)具有两个8位端口(PA、PB)和两个4位端口(PC的上半部分和下半部分)。(2)任何端口都可以设定为输入或输

43、出,各端口的输入、输出共有16种组合。PA口、PB口和PC口均可设定为方式0,并可根据需要,向控制(kngzh)寄存器写入工作方式控制(kngzh)字,规定各端口为输入或输出方式。共一百零八页【例9-3】假设8255A的控制(kngzh)字寄存器端口地址为FF7FH,令PA口和PC口的高4位为方式0输出,PB口和PC口的低4位为方式0输入,初始化程序:MOVDPTR,#0FF7FH; 端口地址#0FF7F送DPTR MOV A,#83H; 方式控制字83H送AMOVXDPTR,A; 控制字83H送控制字寄存器88共一百零八页2)方式1是一种采用应答联络(linlu)的输入/输出工作方式。PA口

44、、PB口皆可设成这种工作方式。在方式1下,8255A的PA口和PB口通常用于I/O数据的传送,PC口用作PA口和PB口的应答联络信号线,以实现采用中断方式来传送I/O数据。PC口的PC7PC0的应答联络线是规定好的,其各位分配如图9-5和图9-7所示,图中,标有I/O的各位仍可用作基本输入/输出,不作应答联络用。下介绍方式1输入/输出时的应答联络信号与工作原理。89共一百零八页(1)方式1输入方式1输入应答联络信号如图9-5所示。其中 与IBF为一对应答联络信号。各应答联络信号的功能如下。 :是由输入外设发给8255A的选通输入信号,低有效。IBF:输入缓冲器满,应答信号。8255A通知外设已

45、收到外设发来的且已进入输入缓冲器的数据,高有效。INTR:由8255A向80C51单片机发出的中断请求信号,高有效。INTEA:控制(kngzh)PA口是否允许中断的控制信号,由PC4的置位/复位来控制。90共一百零八页INTEB:控制PB口是否(sh fu)允许中断的控制信号,由PC2的置位/复位来控制。方式1输入如图9-6所示。下面以PA口的方式1输入为例,介绍方式1输入的工作过程。 当外设向8255A输入一个数据并送到PA7PA0时,外设自动在 上向8255A发送一个低电平选通信号。 8255A收到 后,先把PA7PA0输入的数据存入PA口的输入数据缓冲/锁存器,然后使输出应答线IBF变

46、为高,通知输入外设,PA口已收到它送来的数据。 8255A检测到 由低电平变为高电平、IBFA(PC5)为“1”状态和中断允许INTEA(PC4)=1时,使91共一百零八页INTRA(PC3)变为高电平,向单片机发出中断请求。INTEA的状态可由用户通过指令对PC4的单一置位/复位控制(kngzh)字来控制(kngzh)。 单片机响应中断后,进入中断服务子程序来读取PA口的外设发来的输入数据。当输入数据被单片机读走后,8255A撤销INTRA上的中断请求,并使IBFA变低,通知输入外设可传送下一个输入数据。92共一百零八页93图9-5 方式1输入(shr)应答联络信号共一百零八页94图9-6

47、PA口方式(fngsh)1输入工作过程示意图共一百零八页(2)方式1输出方式1输出时,应答联络信号如图9-7所示。 与 构成一对应答联络信号,应答联络信号功能如下。 :端口输出缓冲器满信号,低有效,它是8255A发给外设的联络信号,表示外设可以将数据取走。 :外设应答信号,低有效。表示外设已把8255A发出(fch)的数据取走。INTR:中断请求信号,高有效。表示该数据已被外设取走,向单片机发出中断请求,如果80C51响应该中断,在中断服务子程序中向8255A写入要输出的下一数据。95共一百零八页INTEA控制PA口是否允许中断,由PC6控制。INTEB控制PB口是否允许中断,由PC2控制。方

48、式(fngsh)1输出工作示意如图9-8所示。以PB口的方式1输出为例,介绍工作过程。 80C51可以通过“MOVX Ri,A”指令把输出数据送到B口的输出数据锁存器,8255A收到后便令输出缓冲器满引脚 (PC1)变低,以通知输出设备输出的数据已在PB口的PB7PB0上。 输出外设收到 上低电平后,先从PB7PB0上取走输出数据,然后使 B 变低电平,以通知8255A输出外设已收到8255A输出的数据。96共一百零八页97图9-7 方式1输出应答(yngd)联络信号共一百零八页 图9-8 PB口方式1输出工作(gngzu)过程示意图98共一百零八页 8255A从应答输入线 B收到低电平后就对

49、 B 和中断允许控制位INTEB状态进行(jnxng)检测,若皆为高电平,则INTRB变为高电平而向单片机请求中断。 80C51单片机响应INTRB上中断请求后便可通过中断服务程序把下一个输出数据送到PB口的输出数据锁存器。重复上述过程,完成数据的输出。3)方式2只有PA口才有方式2。图9-9为工作示意图。方式2是方式1输入和输出组合。PA7PA0为双向I/O总线。当作为输入口使用,PA7PA0受STBA 和IBFA控制;当作输出端口使用,PA7PA0受 A、 A 控制。99共一百零八页100图9-9 PA口在方式(fngsh)2下的工作示意图共一百零八页方式2特别适用于像键盘、显示器一类的外部设备,因为有时需要把键盘上输入的编码信号通过PA口送给单片机,有时又需把单片机发出(fch)的数据通过PA口送给显示器显示。4、 80C51单片机与8255A的接口设计1)硬件接口电路如图9-10为80C51

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论