资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 1第九章第九章 可编程外围接口芯片可编程外围接口芯片 8255A及其应用及其应用9-1 8255A的工作原理9-2 8255A应用举例电气学院学习部资料库电气学院学习部资料库29-1 8255A9-1 8255A的工作原理的工作原理可编程并行通信接口可编程并行通信接口8255A 8255A 并行通信并行通信一、一、8255A8255A的内部结构的内部结构 图图9-1 8255A9-1 8255A的引脚的引脚 4040根根 图图9-2 9-2 结构:结构: 数据总线缓冲器,读数据总线缓冲器,读/ /写控制逻辑,写控制逻辑,数据端口数据端口A A,B B,C C1 1、端口、端口 8 8位位 三个数据端口:三个数据端口:A A、B B、C C 控制字寄存器端口控制字寄存器端口 C C口常用来配合口常用来配合A A口和口和B B口工作。常用作控制或应答信号口工作。常用作控制或应答信号引脚:引脚:PA7PA7PA0PA0、PB7PB7PB0PB0、PC7PC7PC0 24PC0 24根,根,和外设相和外设相连连,用于交换数据、通信联络,用于交换数据、通信联络输入入输出输出独立性独立性口口A A锁存器存器 锁存锁存/缓冲器缓冲器 独立独立口口B B缓冲器冲器 锁存锁存/缓冲器缓冲器 独立独立口口C C缓冲器冲器 锁存锁存/缓冲器缓冲器 独立独立/不独立,可位控为不独立,可位控为0/1电气学院学习部资料库32. A组和组和B组控制逻辑组控制逻辑 端口端口A和和PC4PC7由由A组控制逻辑管理组控制逻辑管理 端口端口B和和PC0PC3由由B组控制逻辑管理组控制逻辑管理3. 数据总线缓冲器数据总线缓冲器输入:控制字和输入:控制字和CPU来的数据来的数据 输出:外设来的状态和数据输出:外设来的状态和数据D7D0: 8086 接接CPU的的D7D0 偶地址端口,例:偶地址端口,例:80H、 82H、84H、86H同同8253 接接CPU的的D15D8 奇地址端口,例:奇地址端口,例:81H、 83H、85H、87H 8088系统系统 接接CPU的的A1、A0 连续地址连续地址 例:例:80H、 81H、82H、83H4.读写控制逻辑读写控制逻辑a)RESET 复位复位 8255控制器清零,所有端口都置成输入方式控制器清零,所有端口都置成输入方式b)CS 片选片选c)RD、WR 读,写读,写d)A1,A0 00 PA 01 PB 10 PC 11 控制字控制字电气学院学习部资料库4二、二、8255A8255A的控制字(写入控制字寄存器)的控制字(写入控制字寄存器)1 1、方式选择控制字、方式选择控制字用来定义各端口的工作方式,输入输出状态。用来定义各端口的工作方式,输入输出状态。D7=1 D6D5D4D3D2D1D0标志位标志位 A口方式口方式 00:方式:方式0 01:方式:方式1 1:方式:方式2A口口I/O1:输入(:输入(I)0:输出(:输出(O)C口高口高4位位I/0B口方式口方式 1:方式:方式1 0:方式:方式0B口口I/OC口低口低4位位I/O电气学院学习部资料库52 2、置位、置位/ /复位复位 控制字控制字 用来对用来对C C端口的任一位单独进行置端口的任一位单独进行置1 1或置或置0 0 可可位控位控D7=0D3D2D1D0位选择位选择 000:PC0001:PC1111:PC71:置:置10:置:置0标志位标志位电气学院学习部资料库6例例1:8255A端口地址:端口地址:E0H、E2H、E4H、E6H A口:方式口:方式0 入入 编程实现:编程实现: B口:方式口:方式0 出出 C口:口:PC7PC4 出出 PC3PC0:入:入控制字控制字 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 1 0 0 0 1 =91HMOV AL ,91HOUT 0E6H ,AL ;定义方式选择控制字;定义方式选择控制字MOV AL ,01H; 0000 0001BOUT 0E6H ,AL ;PC0置置1MOV AL ,0EH; 0000 1110BOUT 0E6H ,AL ;PC7置置0 *每次只能对端口每次只能对端口C的某一位置的某一位置1或置或置0。重复,将置。重复,将置1/0控制字写入控制端口控制字写入控制端口电气学院学习部资料库7三、三、8255A的工作方式和的工作方式和C口状态字口状态字1.方式方式0:基本输入:基本输入/输出方式输出方式A口:口:8位位 B口:口:8位位 C口:高口:高4位、低位、低4位位特点:特点: 任何一个端口可做为输入口,也可作为输出口,各端口任何一个端口可做为输入口,也可作为输出口,各端口之间没有规定必然的关系之间没有规定必然的关系 各端口的输入或输出,可以有各端口的输入或输出,可以有16种不同的组合种不同的组合 数据传输方式:无条件传送数据传输方式:无条件传送 查询方式传送查询方式传送 IN,OUT指令指令控制字控制字例:控制字地址为例:控制字地址为63H,要求,要求A口和口和B口工作于方式口工作于方式0,A、B和和C口高口高4位作输入,位作输入,C口低口低4位作输出。则送控制字:位作输出。则送控制字: MOV AL,1 00 1 1 0 1 0B OUT 63H,AL100I/OI/O0I/OI/O电气学院学习部资料库82. 方式方式1 选通输入选通输入/输出方式输出方式使用场合:采用中断方式使用场合:采用中断方式I/O,外设必须为,外设必须为8255A提供选提供选通信号或者数据接收应答信号通信号或者数据接收应答信号PC口作为口作为A、B口的联络信号。接口的第四个功能,提供握口的联络信号。接口的第四个功能,提供握手联络信号手联络信号(1)选通输入方式)选通输入方式PC3,4,5 PA,作为握手信号及中断申请信号,作为握手信号及中断申请信号PC0,1,2 PBPC6,7 随意设置为随意设置为I或或O 有关的控制信号和状态信号有关的控制信号和状态信号a、STB:选通信号,低电平有效,外设提供。:选通信号,低电平有效,外设提供。 Tst 500ns 有效时,表示外设已将有效时,表示外设已将8位数据送入位数据送入8255A的输入缓冲的输入缓冲 器(不是器(不是DB!)。!)。 PC4 PA PC2 PB电气学院学习部资料库9b、IBF:输入缓冲器满信号,:输入缓冲器满信号,输出,输出,高电平有效高电平有效 8255A输出输出的状态信号,供的状态信号,供CPU查询用查询用 有效时,表示有一个新的数据在输入缓冲器中有效时,表示有一个新的数据在输入缓冲器中 (IBF信号由信号由STB信号使其置信号使其置1,由,由RD的上升沿使其清的上升沿使其清0,表示输入缓冲器已空。),表示输入缓冲器已空。) PC5PA PC1PBc、INTE:中断允许信号:中断允许信号 无外部引出脚无外部引出脚 由由置位置位/复位控制字复位控制字对相应位置对相应位置1或或0 置置1则则允许允许8255A向向CPU发送发送中断中断请求请求 PC4PA PC2PB (注意:(注意:PC4、PC2外部引脚外部引脚出现的电平信号并不会改变中断允许触发器状态。)出现的电平信号并不会改变中断允许触发器状态。)d、INTR:中断请求信号:中断请求信号 8255ACPU 高电平有效高电平有效 当当STB、IBF、INTE均为高电平,变为高电平,执行均为高电平,变为高电平,执行IN指令后,由指令后,由RD的下降沿复位的下降沿复位 INTRAPC3 INTRBPC0CPU能设置的:能设置的:INTE 能读取的信号:能读取的信号:IBF时序:时序:P332 图图9-7 电气学院学习部资料库10STBIBF空空满满RDINTR申请中断申请中断读读在中断服务程序中在中断服务程序中空空选通选通D0D7 PA0PA7 RD 8255 STBAINTRA IBFA D0D7STB外设外设 DB电气学院学习部资料库11C口状态字和方式选择控制字(口状态字和方式选择控制字(A口、口、B口工作于方式口工作于方式1情况下作为输入情况下作为输入端口时)端口时)C口状态字(供查询)口状态字(供查询) D7 D6 D5 D4 D3 D2 D1 D0A组控制字:组控制字: 决定于决定于B 组工作方式组工作方式 PC6、PC7 1:输入:输入 标志位方式标志位方式1 0:输出:输出 端口端口A 为输入为输入B组控制字:组控制字: B口方式口方式1 B口为输入口为输入I/OI/OIBFAINTE AINTR AINTE BIBF BINTR B10111/0 11 11 1电气学院学习部资料库12(2)选通输出方式)选通输出方式PC3,6,7PA PC0,1,2PB (总是)(总是) PC4,5 I/O有关信号:有关信号:a、OBF :输出缓冲器满信号。:输出缓冲器满信号。8255A外设,低电平有效外设,低电平有效 有效时,有效时,8255的表示的表示CPU已把数据送入已把数据送入8255 的输出缓冲的输出缓冲器,通知外设接收数据器,通知外设接收数据 (由(由 WR 的上升沿置的上升沿置0,由,由ACK 的有效信号置的有效信号置1) OBFAPC7 OBFBPC1 b、ACK :外设对:外设对OBF 的响应信号的响应信号 外设外设8255A 低电平有低电平有效效 有效时,有效时, 8255A输出锁存器中的数据输出锁存器中的数据 外设外设 ACKA PC6、ACKB PC2c、INTE:中断允许信号:中断允许信号. INTEAPC6 INTEBPC2PA7PA0OBFACKINTR WR 外设电气学院学习部资料库13d、INTR:中断请求信号:中断请求信号 8255ACPU (由(由 WR 的下的下降沿置降沿置0 ) 当当ACK 结束后,若结束后,若OBF 、INTE为高电平时,有效。为高电平时,有效。 (要求(要求CPU再输入一个数据给外设)再输入一个数据给外设) INTRAPC3 INTRBPC0方式方式1输出过程:输出过程:中断服务程序中输出指令中断服务程序中输出指令OUTWR负脉冲负脉冲OBF变低变低 INTR撤销撤销 (输出缓冲器满)(输出缓冲器满) ACK变低(数已取走)变低(数已取走) INTR变高变高 OBF变高变高(申请中断,请求再送数)(申请中断,请求再送数)电气学院学习部资料库14 C口状态字和方式选择控制字口状态字和方式选择控制字 C口状态字:口状态字: D7 D6 D5 D4 D3 D2 D1 D0 A组控制字:组控制字: PC4、PC5 I/O 方式方式1 A口输出口输出B组控制字:组控制字: B口输出口输出 B口方式口方式1INTE AI/OI/OINTR AINTE BINTR B10101/01 11 10 0电气学院学习部资料库153. 方式方式2 双向总线双向总线I/O方式方式特点:特点: a)方式方式2只适用于端口只适用于端口Ab)C口用口用5个位自动配合端口个位自动配合端口A提供控制信号和状态信号提供控制信号和状态信号 PC3PC7c)利用利用PA7PA0,外设,外设CPU方式方式2有关的控制信号和状态信号有关的控制信号和状态信号 a、INTRA:中断请求信号(输入:中断请求信号(输入/输出)输出)PC3 b、STBA:选通信号:选通信号 PC4输入输入 c、IBFA:输入缓冲器满信号:输入缓冲器满信号 PC5 同方式同方式1输入输入 d、INTE2:输入中断允许信号:输入中断允许信号 PC4 e、INTE1:输出中断允许信号:输出中断允许信号 PC6输出输出 f、OBF:输出缓冲满信号:输出缓冲满信号 PC7 同方式同方式1输出输出 g、ACK:外设对:外设对OBF的应答信号的应答信号 PC6此时此时PB口可工作于方式口可工作于方式0或或1PA0PA7OBFACKWR RD STBINTR IBF外设外设电气学院学习部资料库16 C口状态字和方式选择控制字口状态字和方式选择控制字C口状态字:口状态字:方式选择控制字:方式选择控制字: 方式方式2 A口口I/O 决定于决定于B组组使用场合:要求外设既可以作为输入设备,又可以作使用场合:要求外设既可以作为输入设备,又可以作为输出设备,且输入输出不会同时进行为输出设备,且输入输出不会同时进行例:软盘例:软盘 PA7PA0软驱的数据线软驱的数据线 PC7PC3软驱的控制和状态线软驱的控制和状态线OBFAINTE1IBFAINTE2INTRA11电气学院学习部资料库179-2 8255A9-2 8255A的应用举例的应用举例例例1: 利用利用8255A检测开关状态,控制检测开关状态,控制LED灯(参见课本灯(参见课本P338 )开关断开,)开关断开,LED灯亮灯亮1、硬件连接图、硬件连接图 图图9-13PA7PA0 接接8个开关个开关K7K0 ,PA作输入口作输入口 开关合上,开关合上,=0 断开,断开,=1 PB7PB0 接接8个个LED灯,灯,PB作输出口作输出口 =1 , LED灯亮灯亮 =0 , 灯灭灯灭:74LS138的译码输出的译码输出 若接若接Y0,地址?,地址? A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 1 0 0 F0H、F2H、F4H、F6H2、程序、程序 控制字:控制字:1 0 0 1 0 0 B (A口:方式口:方式0输入;输入; B口:方式口:方式0输出;输出; C口未用)口未用)电气学院学习部资料库18 MOV AL ,10010000B OUT 0F6H ,ALTEST_IT:IN AL ,0F0H OUT 0F2H ,AL JMP TEST_IT若开关断开,若开关断开,LED灯暗?灯暗?例例2:8255A作为连接打印机的接口,工作于方式作为连接打印机的接口,工作于方式0。如下。如下图,已知端口地址为图,已知端口地址为D0H、D2H、D4H、D6H,要求实,要求实现:将现:将CL中内容打印。打印机选通信号中内容打印。打印机选通信号STB为一负脉为一负脉冲。冲。BUSY为高时,表示正忙。为高时,表示正忙。 D7D08086PA0PA7PC6PC28255A STBBUSY 打印机打印机电气学院学习部资料库19A口:传送字符通道,工作于方式口:传送字符通道,工作于方式0,输出,输出 B口:未用口:未用C口:方式口:方式0 PC2:BUSY信号输入端信号输入端 PC3PC0:输入:输入 PC6:信号输出端:信号输出端STB PC7PC4:输出:输出工作过程:工作过程: 初始状态写控制字初始状态写控制字 将将PC6(STB)置为高电平)置为高电平 检测检测BUSY信号信号 为为1:正忙,等待。:正忙,等待。 为为0:CPU CL中送中送8位数据位数据8255A PA口口 8255A外设:产生一选通负脉冲(将外设:产生一选通负脉冲(将PC6 置为低电平,置为低电平,再将再将 PC6置为高电平)置为高电平)电气学院学习部资料库20 MOV AL ,81H ;写控制字,使;写控制字,使A、B、C口:方式口:方式0; OUT 0D6H ,AL; A口输出,口输出,PC3PC0输入,输入,PC7 ; PC4输出,输出,1000 0001B MOV AL ,0DH; 0000 1101B 用置用置1/0方式使方式使PC6为为1, OUT 0D6H ,AL;即;即STB为高电平为高电平LPST:IN AL ,OD4H;读端口;读端口C 的值的值AND AL ,04H; 0000 0100BJNZ LPST ;若忙,等待;若忙,等待MOV AL ,CLOUT 0D0H ,AL ;若不忙,则把;若不忙,则把CL中字符中字符端口端口AMOV AL ,0CH ;使;使 STB 为为0OUT 0D6H ,ALMOV AL ,0DH ;再使;再使 STB为为1,产生一个负脉冲,产生一个负脉冲,OUT 0D6H ,AL ;将;将PA中数据中数据打印机打印机 ;后续程序段;后续程序段电气学院学习部资料库21例例3:8255A作为中断方式工作的打印机的接口,实现将以作为中断方式工作的打印机的接口,实现将以DI为指针的内存单元中的内容打印。为指针的内存单元中的内容打印。已知:端口地址为已知:端口地址为C0H、C2H、C4H、C6H,中断类型号为,中断类型号为0BH,中断向量为,中断向量为1000:2000H当打印机接受并打印字符后,发出回答信号当打印机接受并打印字符后,发出回答信号ACK由此清除由此清除OBF信号,并使信号,并使8255A产生新的中断请求。产生新的中断请求。 连连8259A8259A的的IR3IR3打印机打印机 INTRINTR8086PA7 PA0D0D7 PC0PC6PC7PC3 OBF8255AACKACKD7D0STBACK电气学院学习部资料库221、8255A:A口(数据通道):方式口(数据通道):方式1输出输出 PC6:ACK,输入,输入, PC3:INTR输出输出 PC0:STB选通,输出选通,输出 PC7:OBF,输出,不用,输出,不用2、工作过程、工作过程 功能号功能号AH=25H的的21H调用调用 初始化:写控制字,初始化:写控制字,设置中断向量设置中断向量,开中断开中断 若符合中断条若符合中断条件件, STI INTE=1 OBF 变高,变高,ACK 为高电平为高电平 INTR发出中断请求发出中断请求进入中断处理子程序,进入中断处理子程序,8086送送8位数位数据据 8255A PA口口3、中断类型号为中断类型号为0BH,必须接必须接8259A的的 IR3端。端。(08HIR0)电气学院学习部资料库234、方式选择控制字:、方式选择控制字:1 0 1 0 0 = A0H主程序:主程序:MAIN:MOV AL ,0A0H OUT 0C6H ,AL ; 写控制字写控制字 MOV AX ,1000H ; 功能号功能号AH=25H的的21H调用调用 MOV DS ,AX ; 设置中断向量:设置中断向量: MOV DX ,2000H ; DS:DX=中断向量中断向量 MOV AL ,0BH ; AL:中断类型号:中断类型号 MOV AH ,25H INT 21H MOV AL ,0DH OUT 0C6H ,AL ; 使使PC6为为1,允许,允许8255A中断中断 STI ; 开中断开中断 电气学院学习部资料库24中断处理子程序:中断处理子程序: MOV AL ,DI ;送字符;送字符PA口口 OUT 0C0H ,AL MOV AL,0 ;PC0产生一个产生一个STB负脉冲选通负脉冲选通 OUT 0C6H,AL MOV AL,1 OUT 0C6H,AL IRET电气学院学习部资料库25谢谢大家!谢谢大家!作业:作业:9 (用(用8253延时)延时)电气学院学习部资料库
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号