可编程外围接口芯片8255A及其应用.ppt
《可编程外围接口芯片8255A及其应用.ppt》由会员分享,可在线阅读,更多相关《可编程外围接口芯片8255A及其应用.ppt(103页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章 可编程外围接口芯片8255A及其应用9-1 8255A9-1 8255A的工作原理的工作原理一、一、8255A 8255A的结构和功能的结构和功能二、二、8255A 8255A的控制字的控制字三、三、8255A8255A的工作方式和的工作方式和C C口状态字口状态字9-2 8255A9-2 8255A的应用举例的应用举例一、基本输入输出应用举例一、基本输入输出应用举例二、键盘接口二、键盘接口三、三、8255A 8255A在在PC/XTPC/XT机中的应用机中的应用四、四、PC/XT PC/XT机中的扬声器接口电路机中的扬声器接口电路五、并行打印机接口五、并行打印机接口Intel 825
2、5A是一个通用的可编程的并行接口芯片(Programmable Peripherial Interface,PPI)它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。一、一、8255A 8255A的结构和功能的结构和功能图9.1 8255A的引脚图图9.2 8255A的内部结构图1三个数据端口A,B,C这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。A口:是一个独立的8位I/O口,它的内部有一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器,A口输入输出时数据均能锁存。B口:也是一个独
3、立的8位I/O口,内部有一个8位的输出锁存器/缓冲器,一个8位的输入缓冲器,仅对输出数据有锁存功能。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。内部有一个8位的输出锁存器/缓冲器,一个8位的输入缓冲器,也是仅对输出数据进行锁存。2A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位(PC7-PC4);B组控制电路用来控制B口及C口的低4位(PC3-PC0)。3数据总
4、线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。4读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。5、8255A的引脚功能8255A的引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号。面向CPU的引脚信号及功能D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,
5、并 置A口,B口,C口均为输入方式;CS 片选,输入,用来决定芯片是否被选中;RD 读信号,输入,控制8255A将数据或状态信息送给CPU;WR 写信号,输入,控制CPU将数据或控制信息送到8255A;A1,AO:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。表表9-1 8255A9-1 8255A的操作功能表的操作功能表 CS RD WR A1 A0 CS RD WR A1 A0操操 作作数数 据据 传传 送送 方方 式式 0 0 1 0 0 0 0 1 0
6、 0读读 A A 口口A A口数据口数据 数据总线数据总线 0 0 1 0 1 0 0 1 0 1读读 B B 口口B B口数据口数据 数据总线数据总线 0 0 1 1 0 0 0 1 1 0读读 C C 口口C C口数据口数据 数据总线数据总线 0 1 0 0 0 0 1 0 0 0写写 A A 口口数据总线数据数据总线数据 A A口口 0 1 0 0 1 0 1 0 0 1写写 B B 口口数据总线数据数据总线数据 B B口口 0 1 0 1 0 0 1 0 1 0写写 C C 口口数据总线数据数据总线数据 C C口口 0 1 0 1 1 0 1 0 1 1写控制口写控制口数据总线数据数据
7、总线数据 控制口控制口CS、WR、RD、A1、A0这几个信号的组合决定了8255A的所有具体操作 A1、A0端口选择情况,见右表 由CS*、A1、A0、RD*、WR*引脚的不同组合,实现各种不同的功能。见下表:A1 A0端口0 00 11 01 1ABC控制口CS A1 A0 RD WR功功 能能 0 0 0 0 1对端口对端口A 读读 0 0 1 0 1对端口对端口B 读读 0 1 0 0 1对端口对端口C 读读0 1非法,不能对控制口读非法,不能对控制口读输输入入0对端口对端口A 写写0对端口对端口B 写写0对端口对端口C 写写0对控制口对控制口 写写输输出出 1 1 1数据缓冲器为数据缓
8、冲器为三态三态断断开开 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 面向外设的引脚信号及功能 PA0PA7:A组数据信号,用来连接外设;PB0PB7:B组数据信号,用来连接外设;PC0PC7:C组数据信号,用来连接外设或者作为控制信号。二、8255A的控制字8255A有两类控制字1、方式选择控制字 定义各端口的工作方式2、置位复位控制字 对C端口的的任一位进行置位复位,或用于设置INTE位(方式1,2)。1、方式选择控制字控制字要写入8255A的控制口,写入控制字之后,8255A才能按指定的工作方式工作。8255A的控制字格式与各位的功能如图9-4所示。D7 D
9、6 D5 D4 D3 D2 D1 D0C口低位选择,口低位选择,1入入0出出B口口I/O选择,选择,1入入0出出B口方式选择,口方式选择,0=方式方式0 1=方式方式1B组组C口高位选择,口高位选择,1入入0出出A口口I/O选择,选择,1入入0出出A口方式选择口方式选择00=方式方式0 01=方式方式1 1X=方式方式2D7=1,方式控制字标志,方式控制字标志A组组1、方式0基本输入输出方式2、方式1选通输入输出方式3、方式2双向总线I/O方式当系统复位时,8255A的RESET输入端为高电平,使8255A复位,所有的数据端口被置成输入方式当复位信号撤除后8255A继续保持复位时预置的输入方式
10、。通过用输出指令对8259A的控制字寄存器编程,写入设定工作方式的控制字,可以让3个数据口以不同的方式工作。其中,A口可工作于3种方式的任一种,B口只能工作于方式0和方式1,不能工作于方式2,C口常被分成两个4位的端口,除了用作输入输出端口外,还可配合A口和B口工作,为这两个端口输入输出操作提供联络信号。【例1】某系统要求使用8255A的A口方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入。则控制字为:10010001B 即91H初始化程序为:MOV AL,91H OUT CTRL_PORT,AL(2)C口的置位/复位功能只有C口才有,它是通过向控制口写入按指定位置位/复
11、位的控制字来实现的。C口的这个功能可用于设置方式1的中断允许,可以设置外设的启/停等。按位置位/复位的控制字格式如图9-5所示 D7 D6 D5 D4 D3 D2 D1 D0置位置位/复位复位选择选择1=置位,置位,0=复位复位D7=0为置为置位位/复位控制复位控制字标志字标志D3 D2 D1 位选择位选择 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7无效无效P329 例【例2】A口方式2,要求发两个中断允许,即PC4和PC6均需置位。B口方式1要求使PC2置位来开放中断。初始化程
12、序可补充完整如下。MOV AL,0C4HOUT CTRL_PORT,AL;设置工作方式MOV AL,09HOUT CTRL_PORT,AL;PC4置位,A口输入允许中断MOV AL,ODHOUT CTRL_PORT,AL;PC6置位,A口输出允许中断MOV AL,05HOUT CTRL_PORT,AL;PC2置位;B口输出允许中断三、8255A的工作方式和C口状态字1方式01)方式0是一种基本的输入/输出方式,只能用于无条件传送或查询传送;2)A口和B口可作为8位端口,C口的高4位和低4位可作为两个4位端;在实际使用中,C口的两半部分也可以合在一起,构成一个8位端口。这样8255A可构成3个8
13、位I/O端口,或两个8位,两个4位端口,以适应不同使用场合。3)CPU可直接用输入指令从指定端口中读取数据,或用输出指令将数据写入指定的端口,无需任何其他用于应答的联络信号。对于方式0,还规定输出信号可被锁存,输入不能锁存。端口信号线之间无固定的时序关系,用户根据数据传送的要求决定输入输出的操作过程。图9.6 各端口均工作于方式0时的控制字8255A方式0的时序1)8255A方式0输入时序图2)8255A方式0输出时序图例:设8255A的控制字的端口地址为304H,要求A口和B口工作于方式0,A口、B口和C口的高4位作输入,低4位作输出MOV DX,304H MOV AL,10011010B
14、;A、B、C口都工作于方式0 OUT DX,AL例 用8255的PA口作为A/D并行输入接口,如下图;A口工作于方式0,8255的端口地址为300H,301H,302H,303H;写出8255A的初始化程序及启动A/D转换的程序段。解:1)8255A的初始化程序:MOV DX,304H MOV AL,10010010B ;A、B、C口都工作于方式0 OUT DX,AL ;A口和B口为输入,C口为输出2)启动A/D转换及读取转换数据程序段:MOV DX,303H MOV AL,00001111B OUT DX,AL MOV AL,00001110B OUT DX,AL;送置位/复位控制字,在PC
15、7脚产生一正方波输出,启动ADC MOV DX,301H AGAIN:IN AL,DX ;输入B口数据 TEST AL,00010000B ;PB4=0?JNZ AGAIN ;等待A/D转换结束 MOV DX,300H IN AL,DX ;从A口中读取转换数据 2方式1也称为选通输入/输出方式,PA口和PB口为数据口,都可工作在输入或输出方式。这两个8位数据口的输入、输出数据都能锁存,但是必须在联络信号控制下才能完成I/O操作。端口C的6根线用来产生或接收这些联络信号。特点:方式1是单向选通输入/输出方式;设有专门的中断请求和联络信号线;PA口和PB口为数据口,PC口的大部分引脚分配作联络信号
16、用;各联络信号之间有固定的时序关系;输入/输出操作产生确定的状态字,供查询或中断请求之用;方式1常用于查询传送或中断传送。8255A的工作方式方式1(选通工作方式)利用一组选通控制信号控制A端口和B端口的数据输入输出。特点:1、A、B口作输入或输出口,C口分为两部分,其部分位(6位)固定用作A口、B口的选通控制信号。2、C口的剩余位仍可作数据位使用。3、A口、B口在作为输入和输出时的选通信号不同。方式1的应用:主要用于中断控制方式下的输入输出。说明:C口除部分位用作选通信号外,其余位(2位)可工作在方式0下,作为输入或输出线,用程序指定其数据传送方向。8255A的工作方式方式1(选通工作方式)
17、nA、B口都设为方式1输入 C口的联络信号:nSTB选通信号,由外设输入。=0时,将外设数据送入8255的输入锁存器。A组对应PC4;B组对应PC2。nIBF输入锁存器满信号,由8255A输出。=1时通知外设输入的数据已写入缓冲器,此时不能送下一个数据。此信号由STB的前沿产生。CPU用IN指令取走数据后(RD的后沿),此信号被清除。A组对应PC5;B组对应PC1。PA7PA7PA0PA0PC4PC4PC5PC5PC3PC3INTEAINTEAIBFIBFA AINTRINTRA AD7D7D0D0输入设备输入设备(到到CPU)PB7PB7PB0PB0PC2PC2PC1PC1PC0PC0INT
18、EBINTEBD7D7D0D0IBFIBFB BINTRINTRB B输入设备输入设备(到到CPU)选通输入方式A口和B口工作于选通输入方式,则它们的端口状态、联络信号和控制字如下图所示当A口工作于方式1,并作输入端口时,端口C的PC4、PC4和 PC3用作端口A的状态和控制线;当B口工作于方式1,并作输入端口时,端口C的PC2、PC1和 PC0用作端口A的状态和控制线;端口C剩下的PC6和PC7,任然可用作输入或输出,由方式控制字中的D3位来定义PC6和PC7的传送方向。D3=1时,PC6和PC7作输入;D3=0时,PC6和PC7作输出在方式在方式 1 1、2 2下,下,C C口作为口作为A
19、 A口、口、B B口联络信号的引脚,其动作关系在芯口联络信号的引脚,其动作关系在芯片设计和制造时已固定,不由用户自己安排,也不能编程改变。即片设计和制造时已固定,不由用户自己安排,也不能编程改变。即C C口口作为联络信号的引脚作为联络信号的引脚:不受方式控制字的控制不受方式控制字的控制。该出则出,该入则入。该出则出,该入则入。各控制联络信号的意义如下:lSTB(Strode)选通信号,低电平有效,外部输入。当此信号有效时,8255A将外部设备通过端口数据线PA7-PA0(对于A口)或PB7-PB0(对于B口)输入的数据送到所选端口的输入缓冲器中。端口A的选通信号STBA从PC4引入,端口B的选
20、通信号STBB从PC2引入。lIBF(Input Buffer Full)输入缓冲器满信号,高电平有效。8255A给外设的状态信号,当此信号有效时,表示输入设备送来的数据已传送到8255A的输入缓冲器中,即缓冲器已满,8255A不能再接收别的数据。此信号一般供CPU查询。IBF由STB信号置位,而由读信号的上升沿将其复位,复位后表示输入缓冲器已空,又允许外设将一个新的数据送到8255A。PC5作端口A的输入缓冲器满信号IBFA,PC1作端口B的输入缓冲器满信号IBFBlINTE(Interrupt Enable)中断允许信号。控制8255A能否向CPU发中断请求的信号,没有外部引出脚。在A组和
21、B组的控制电路中,分别设有中断请求触发器INTE A和INTE B,只有用软件才能使这两个触发器置1或清0.其中,INTE A由置位/复位控制字中的PC4控制,INTE B由PC2控制。对8255A写入置位/复位控制字使PC4置1时,INTE A置1,表示允许A口中断;PC4清0,禁止A口发中断请求,即A口处在中断屏蔽状态。同样,通过编程PC2来控制INTE B,允许或禁止B口中断。由于这两个触发器无外部引出脚,PC4和PC2脚上出现高电平或低电平信号时,并不改变中断允许触发器的状态。lINTR(Interrupt Request)中断请求信号。8255A向CPU发出的中断请求信号,高电平有效
22、。只有当STB、IBF和INTE都是高电平时,NTR才能变为高电平。即当选通信号结束,已将输入设备提供的一个数据送到输入缓冲器中,输入缓冲器满信号IBF已变成高电平,并且中断时允许的情况下,8255A才能向CPU发中断请求信号INTR。CPU响应中断后,可用IN指令读取数据,读信号RD的下降沿将INTR复位为低电平。INTR通常和8259A的一个中断请求输入段IR相连,通过8259A的输出端INT向CPU发中断请求。A口的中断请求信号INTRA由PC3引脚输出,B口的中断请求信号INTRB由PC0引脚输出。方式1选通输入时序如下:分析方式1选通输入时的工作过程:当外设把一个数据送到端口数据线P
23、A7-PA0(对于A口)或PB7-PB0(对于B口)后,就向8255A发负脉冲选通信号STB,外设的输入数据锁存到8255A的输入锁存器中。选通信号发出后,经tSIB时间,IBF有效,它作为对输入设备的回答信号,用于通知外设输入缓冲器已满,不要再送新的数据过来。选通信号结束后,经tSIT时间,若STB、IBF和INTE同为高电平,使INTR有效。此信号向CPU发中断请求,CPU响应中断后,通过执行中断服务程序中IN指令,使读信号RD有效。读信号有效后,经tRIT时间,使INTR变低,清除中断。读信号结束后,数据已读入累加器,经tRIB时间,IBF变低,表示缓冲器已空,一次数据输入过程结束,通知
24、外设可以再送一个新的数据来。(3)选通输出方式A口和B口工作于选通输出方式,则它们的端口状态、联络信号和控制字如下图所示当A口工作于方式1,并作输出端口时,端口C的PC3、PC6和 PC7用作端口A的状态和控制线;当B口工作于方式1,并作输入端口时,端口C的PC2、PC1和 PC0用作端口A的状态和控制线;端口C剩下的PC4和PC5,任然可用作输入或输出,由方式控制字中的D3位来定义PC4和PC5的传送方向。D3=1时,PC4和PC5作输入;D3=0时,PC6和PC7作输出各控制联络信号的意义如下:lOBF(Output Buffer Full)输出缓冲器满信号,输出,低电平有效。当此信号有效
25、时,表示已将数据写到8255A的指定输出端口,即数据已被输出锁存器锁存,并出现在端口数据线PA7-PA0(对于A口)和PB7-PB0(对于B口)上,通知外设将数据取走。此信号是8255A给外设的选通信号。OBF由输出指令WR的上升沿置成低电平,而外设回答信号ACK将其恢复成高电平。PC7被指定作A口的输出缓冲器满信号OBFA,PC1作B口输出缓冲器满信号OBFB。lACK(Acknouledge)外设的回答信号,低电平有效,由外设送给8255A。当此信号有效时,表示CPU输出到8255A的A口或B口的数据已被外设接收。PC6作端口A的回答信号ACKA,PC2作端口B的输入缓冲器满信号ACKBl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 外围 接口 芯片 8255 及其 应用
限制150内