资源预览内容
第1页 / 共69页
第2页 / 共69页
第3页 / 共69页
第4页 / 共69页
第5页 / 共69页
第6页 / 共69页
第7页 / 共69页
第8页 / 共69页
第9页 / 共69页
第10页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第十一章 并行接口芯片8255A,8255A是INTEL公司的产品,可编程的并行接口芯片,11.1 8255A的内部结构,24根端口数据线 接外设 PA7PA0为A口数据线 PB7PB0为B口数据线 PC7PC0为C口数据线,8255A的外部引脚,8255A为双列直插式,40引脚,8根系统数据线 接CPU D7D0,6根输入控制线 RESET:复位信号,RESET=1时,8255内部复位,所有内部 寄存器清零,A、B、C三个端口自动为输入口 CS:片选信号,CS=0时,该芯片被选中 RD:来自CPU的I/O读命令 WR:来自CPU的I/O写命令 A1、A0:通常接CPU的地址线A1、A0,电源线:+5V,地线,如果系统产生片选信号的译码电路如图,则:,A数据口地址=60H B数据口地址=61H C数据口地址=62H 控制 口地址=63H,控制口寄存初始化命令字,端口:接口电路中能和CPU直接交换信息的寄存器 8255A有4个端口寄存器,8255A的端口编址,注意: 对控制寄存器不能进行读操作,A口可工作在方式0、1、2 B口可工作在方式0、1 C口可工作在方式0,11.2 8255A的工作方式简介,什么是选通型输入?(以A口为例),A口定义为选通型输入时,端口和外设之间有两类信号线 数据线PA7PA0 联络线IBFA、STBA,IBF(Input Buffer Full)输入缓冲器满状态线,STB(Strobe)选通信号输入, IBF=1,通知外设输入缓冲器已满,请不要再送数据 只有在IBF=0时,外设才能写入数据,什么是选通型输出?(以B口为例),当端口定义为选通型输出时,端口与外设之间也有两类信号 数据线PB7PB0 联络线OBFB、ACKB,OBF(Output Buffer Full)输出缓冲器满状态线 ACK(Acknowledge)确认应答,什么是基本型输入?(以B口为例),当B口定义为基本型输入时,它相当于一个输入缓冲器,对B口执行一条IN指令,就把输入数据CPU,对B口执行一条IN指令打开控制门,PB7,PB0,至CPU,D7,D0,什么是基本型输出(以A口为例),当A口定义为基本型输出时,它为一个输出锁存器 CPU对A口执行一条OUT指令把数据锁存在端口,总之:基本型输入/出时,8255和外设之间没有联络信号,对A口执行一条OUT指令锁存数据,1. 8255控制字,8255有2个控制字,方式选择控制字,C口按位置0/置1命令字,控制字必须写入控制口才能有效,11.3 8255A控制字与初始化编程, 方式选择控制字,A口工作在方式1、方式2,B口工作在方式1时,D3、D0只能定义部分PC线的入/出 A口工作在方式2时,D4不起作用 C口上、下半部可以选择不同的入/出(都是方式0),注意:, C口按位置0/1命令字,注意:C口按位置0/1命令字必须写入控制口, 根据需要:把C口置0/置1命令字控制口,目的是禁止/允许某一口提中断,2. 8255A初始化编程步骤, 方式选择命令字控制口,目的选择某一口的工作方式,例:要求置A口为方式0输出,B口为方式0输入,PC74为输出,PC30为输入,MOV AL,83H OUT 控口地址,AL,解:方式选择命令字,一、 方式0与时序,方式0 输入时序,11.4 8255A工作方式与时序,方式0 输出时序,二、 方式1输入(选通型输入)及时序,1. A口方式1输入的预置,当方式字=B0H写入控制口之后,A口即工作在选通型输入,,PC7、PC6空闲,输出线?输入线?受方式字D3控制,PA7PA0即为输入线 PC4自动定义为入线,称为STBA PC5自动定义为出线,称为IBFA PC3自动定义为出线,称为INTRA,它们是输出线?输入线?不再受方式字D3、D0控制,此时:, 当INTEA=1之后,若IBFA=1,则A口提出中断请求,2. A口方式1输入时,A口的中断管理,用C口置0/置1命令字使PC4=1, 则INTEA=1,允许A口中断 用C口置0/置1命令字使PC4=0,则INTEA=0,禁止A口中断, INTEA为A口的中断允许触发器,当A口定义为方式1输入时:,3. B口方式1输入的预置,当方式字=86H写入控制口之后,B口即工作在选通型输入,,PB7PB0即为输入线 PC2自动定义为入线,称为STBB PC1自动定义为出线,称为IBFB PC0自动定义为出线,称为INTRB,输出线?输入线?不再受方式字D0控制,此时:,4. B口方式1输入时的中断管理, INTEB=1之后,若IBFB=1,则INTRB=1,B口可提出中断请求, INTEB为B口的中断允许触发器,当B口工作在方式1输入时:,用C口置0/1命令字使PC2=1,则INTEB=1,允许B口中断;用C口置0/1命令字使PC2=0,则INTEB=0,禁止B口中断,5. 方式1输入的时序图,方式1 输入时序,方式1输入操作是由STB=,引发的,STB =,后:, 外设数据8255, IBF=, 满足下列条件,提中断请求: STB信号结束(STB脉宽可以很宽) IBF=1,(外设数据确已锁存) INTE=1(中断允许触发器置1), 服务程序执行IN指令之后: RD信号前沿使INTR= ,后沿使IBF=0 从而结束一次数据输入过程,6. 方式1输入时,CPU8255信息交换的方式, 可以用中断方式 可以用查询方式,输入查询应查询IBF,不应该查询STB! STB脉冲是外设送来,它最小可小到500ns,而在500ns的时间内正好运行CPU的查询指令是不可能的,三、 方式1输出(选通型输出)及时序,1. A口方式1输出的预置,当方式字=A0H写入控制口之后,A口即工作在选通型输出方式,,PC4、PC5空闲,出?入?受方式字D3控制,PA70为输出线 PC6自动定义为入线,称ACKA PC7自动定义为出线,称OBFA PC3自动定义为出线,称INTRA,输出?输入?不再受方式字D3、D0控制,此时:,2. 方式1输出时A口的中断管理, INTEA为A口的中断允许触发器,当A口定义为方式1 输出时:,用C口置0/置1命令字使PC6置1,则INTEA=1,允许A口中断 用C口置0/置1命令字使PC6置0,则INTEA=0,禁止A口中断,3. 口方式输出的设置,当方式字=84H控制口之后,B口即工作在选通型输出方式,,入线?出线?不再受方式字D0控制,PB7PB0定义为输出线 PC2自动定义为入线,称为ACKB PC1自动定义为出线,称为OBFB PC0自动定义为出线,称为INTRB,此时:,4. 方式1输出时,B口的中断管理, INTEB为B口的中断允许触发器,当B口工作在方式1输出时:,用C口置0/1命令字使PC2=1,则INTEB=1,允许B口中断 用C口置0/1命令字使PC2=0,则INTEB=0,禁止B口中断, INTEB置1后,OBFB=1,则INTRB=1,B口提出中断, 同样,ACKB不能改变INTEB的状态,它只受CPU控制,5. 方式1输出的时序图,方式1 输出时序,方式1输出时 CPU针对8255数据口执行OUT指令 WR信号结束后,数据出现在外设数据线上 OBF有效(向外设通报其数据线信息可用) 使INTR无效,撤销中断请求, 外设取走数据后,发来ACK,ACK信号前沿使OBF无效,后沿提中断。,工作在方式1输出时端口提中断的条件: 外设发出ACK信号且使OBF=1 中断允许触发器置1,6. 方式1输出时,CPU8255交换信息的方式, 中断方式 查询方式:查询OBF,当OBF=1(不满)时可送下一个数据,1.双向方式的设置,A口定义为双向方式之后: PA70是双向的数据线,可以分时完成数据输入/出 PC3自动定义为出线:INTRA PC7自动定义为出线:OBFA PC6自动定义为入线:ACKA PC4自动定义为入线:STBA PC5自动定义为出线:IBFA PC20空闲,入/出线?不再受方式字D3、D0的控制,IBFA、STBA是双向方式中的一对输入联络线 OBFA、ACKA是双向方式中的一对输出联络线,数据输入过程,数据输出过程与方式1类似,2. A口双向方式的中断管理,A口定义为双向方式之后:, INTE2为双向方式中的输入中断允许触发器 用C口置0/1命令字使PC4置0,则INTE2=0 用C口置0/1命令字使PC4置1,则INTE2=1 INTE2置1后,若IBFA=1,则INTRA=1,提出中断请求,INTE1:双向方式中的输出中断允许触发器 INTE2:双向方式中的输入中断允许触发器,IBFA、STBA是双向方式中的一对输入联络线 OBFA、ACKA是双向方式中的一对输出联络线,在IBFA=0时表示输入缓冲器空闲 输入设备把数据PA70,随后使STBA= 完成数据输入,在INTE2=1的前提下向CPU提中断 CPU响应后对A口执行IN指令取走数据CPU,输入:,CPU对A口执行OUT指令,数据写入A口 OBFA=0表示PA70有数据了 外设取走数据后,向ACKA送 在INTE1=1的前提下向CPU提出中断 CPU响应后再次执行OUT指令又送一个新的数据A口,输出:, 方式0的特点:8255和外设交换信息时,不需要联络线;方式1、2的特点:8255和外设交换信息时,需要联络线,五、 8255小结,1. 8255工作方式, A口可以工作在方式0、1、2,B口可以工作在方式0、1,不能工作在方式2,C口可以工作在方式0, C口分为PC74、PC30二部分,但程序员对C口的读写是按字节操作的, A口工作在方式2时,B口只能工作在方式0、1(限制:CPU只能用查询而不能用中断和B口交换数据), 数据口工作在方式1、2时,CPU用:,2. CPU与8255交换信息的方式, 数据口工作在方式0时,CPU采用无条件传送,(b) 中断方式:由于8255本身不能向CPU回送中断向量,所以必须用8259管理。在系统外扩8255时,8255的INTR应接到系统机从8259的IR1,作为用户中断来处理,3. 中断允许触发器的置0、置1,对程序员来讲:工作在方式1、方式2时,8255内部有4个中断允许触发器,用“C口专用的置0/1命令字”可以使它们置0/1,方 式,控制位,中断允 许触发器,4. 8255的初始化编程, 工作在方式0时:方式选择命令字控制口 工作在方式1、2时:,a) 方式选择命令字控制口 b) 允许中断(或禁止中断)的命令字控制口,六、 8255应用举例,例:设系统机外扩了一片8255、以及相应的实验电路,如后页图所示。要求:先预置开关K3K1为一组状态,然后按下自复按钮K 产生一个负脉冲信号输入到PC4。用发光二极管LEDi亮来显示K3K1的状态。主机键盘有任意键按下时结束演示。,K3 K2 K1000 时,LED1 亮 K3 K2 K1001 时,LED2 亮 K3 K2 K1010 时,LED3 亮 K3 K2 K1011 时,LED4 亮 K3 K2 K1100 时,LED5 亮 K3 K2 K1101 时,LED6 亮 K3 K2 K1110 时,LED7 亮 K3 K2 K1111 时,LED8 亮 K3K1闭合为0,断开为1。,要求:,实验电路图(教材P347),A口: 218H, 21CH B口: 219H, 21DH C口: 21AH, 21EH 控口:21BH, 21FH, 端口地址,设计思路, 8255工作方式的选择,B口应为基本型输出
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号