《并行接口芯片5A课件.ppt》由会员分享,可在线阅读,更多相关《并行接口芯片5A课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、第9章 并行接口芯片8255A,教学重点 8255A的工作方式和编程 8255A的应用,第9章 并行接口芯片8255A教学重点,并行数据传输方式,以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据适合于外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间,并行数据传输方式以计算机的字长,通常是8位、16位或32位为,9.1 并行接口电路8255A,具有多种功能的可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器与CPU间、与外设间的接口电路:状态寄
2、存器和控制寄存器还有端口的译码和控制电路、中断控制电路有3个8位I/O数据端口共三种输入输出工作方式,9.1 并行接口电路8255A具有多种功能的可编程并行接口,8255A的内部结构和引脚,8255A的内部结构和引脚数据内部控制线内部数据线D0D7,1. 外设数据端口,端口A:PA0PA7A组,支持工作方式0、1、2端口B:PB0PB7B组,支持工作方式0、1端口C:PC0PC7仅支持工作方式0A组控制高4位PC4PC7B组控制低4位PC0PC3,端口A:PA0PA7常作数据端口,功能最强大输入输出数据都锁存端口B:PB0PB7常作数据端口输入不锁存,输出锁存端口C:PC0PC7可作数据、状态
3、和控制端口分两个4位,每位可独立操作输入不锁存,输出锁存控制最灵活,最难掌握,1. 外设数据端口端口A:PA0PA7端口A:PA0P,2. 基本操作,2. 基本操作,1. 方式控制字(写入控制口)例:设8255A端口地址为0380H、0381H、0382H、0383H。要把A口指定为方式1输入,C口上半部定为输出,B口指定为方式0输出,C口下半部定为输入,则控制字应为:10110001B或0B1H。初始化程序为:MOV DX,0383HMOV AL,0B1HOUT DX,AL,9.2 8255A的控制字,1. 方式控制字(写入控制口)9.2 8255A的控制字,例如,设8255A端口地址为60
4、H63H,现要求先置PC4为高电平,再复位PC4,则相应的程序段如下: MOV AL,00001001BOUT 63H,ALMOV AL,00001000BOUT 63H,AL,2. C口置位/复位控制字(写入控制口),例如,设8255A端口地址为60H63H,现要求先置PC4,读写数据端口,初始化编程后:当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备8255A具有锁存输出数据的能力对输出方式的端口同样可以输入不是读取外设数据读取的是上次CPU给外设的数据,读写数据端口初始化编程后:,9.3 8255A
5、的工作方式,方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路,9.3 8255A的工作方式方式0:基本输入输出方式,1、工作方式0(基本输入输出方式),1. 两个8位端口(口A、口B)和两个4位端口(口C的上、下部分)。2. 任何一个端口可以作为输入端口或输出端口。3. 输出数据可被锁存,输入数据不被琐存。4. 8255A起数据缓冲作用。 注意:工作方式0适用于无需应答信号的无条件传送,也可人为指定某些位作为状态信息线,进行查询式传送。,1、工作方式
6、0(基本输入输出方式)1. 两个8位端口(口A、,方式0输入时序,请体会这里8255A的数据缓冲作用,方式0输入时序请体会这里8255A的,方式0输出时序,8255A对CPU通过它输出给外设的数据进行锁存,方式0输出时序8255A对CPU通过它,2、工作方式1(选通输入输出方式),A口、B口作为数据的输入或输出口,但必须通过端口C相应位的控制来实现 。C口的某些位相应地被定义为A口、B口的状态和控制信号线。其余位可由程序(写方式控制字)指定为输入或输出。 ,2、工作方式1(选通输入输出方式)A口、B口作为数据的输入或,方式1输入引脚:A端口,数据选通信号表示外设已经准备好数据,输入缓冲器满信号
7、表示A口已经接收数据,中断请求信号请求CPU接收数据,中断允许触发器,方式1输入引脚:A端口数据选通信号输入缓冲器满信号中断请求信,方式1输入引脚:B端口,方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能,方式1输入引脚:B端口PC2PC1PC0PB7PB0INT,方式1输入时序,STB*和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据,方式1输入时序STB*和IBF是外设和8255A间,方式1中断控制,8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输
8、入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2,方式1中断控制8255A的中断由中断允许触发器INTE控制,方式1输出引脚:A端口,外设响应信号表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,中断请求信号请求CPU再次输出数据,中断允许触发器,方式1输出引脚:A端口外设响应信号输出缓冲器满信号中断请求信,方式1输出引脚:B端口,端口A的INTEA对应PC6端口B的INTEB对应PC2,方式1输出引脚:B端口PC2PC1PC0PB7PB0INT,方式1输出时序,OBF*和ACK*是外设和825
9、5A间的一对应答联络信号,为的是可靠地输出数据,方式1输出时序OBF*和ACK*是外设和8255A间,方式2双向方式,方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据。外部设备即可以作为输入设备,又可以作为输出设备,且输入输出动作不同时进行。只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据,方式2双向方式方式2将方式1的选通输入输出功能组合成一个双向,
10、方式2双向引脚,用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号,方式2双向引脚PC6PC7PC3PA7PA0INTE1OB,方式2双向时序,输入输出的顺序是任意的,只要WR在ACK以前发生;STB在RD以前发生即可。,方式2双向时序data-out INTR data-ou,9.4 8255A的编程,初始化编程:一个方式控制字采用控制I/O地址:A1A011工作过程中:通过数据端口对外设数据进行读写数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10,9.4 8255A的编程初始化编程:一个方式控制字,1.写入方式控制字
11、:控制字格式,1.写入方式控制字:控制字格式,方式控制字示例,要求:A端口:方式1输入C端口上半部:输出,C口下半部:输入B端口:方式0输出方式控制字:10110001B或0B1H初始化的程序段:mov dx,0fffeh;假设控制端口为FFFEHmov al,0b1h;方式控制字out dx,al;送到控制端口,方式控制字示例要求:,2. 读写数据端口,初始化编程后:当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备,2. 读写数据端口初始化编程后:,示例,利用8255A的输出锁存能力,可实现按位输出控制
12、对输出端口B的PB7位置位的程序段:mov dx,0fffah;B端口假设为FFFAHin al,dx;读出B端口原输出内容or al,80h;使PB71out dx,al;输出新的内容,示例 利用8255A的输出锁存能力,可实现按位输出,3. 读写端口C:归纳1,C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出,在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组,3. 读写端口C:归纳1C端口被分成两个4位端口,两个端口,3. 读写端口C:归纳2,当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用,其余引脚仍可设定工作在方式0,3.
13、读写端口C:归纳2当A和B端口工作在方式1或方式2时,3. 读写端口C:归纳3,读取的C端口数据有两种情况1)未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息2)被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字,3. 读写端口C:归纳3读取的C端口数据有两种情况,端口C的状态字,端口C的状态字A组B组,3. 读写端口C:归纳4,对端口C的数据输出有两种办法1)通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效;2)通过控制端口:向C端口写入位控
14、字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器;,3. 读写端口C:归纳4对端口C的数据输出有两种办法,例如,A口、B口皆为方式1输入,试编程允许端口A中断请求,禁止端口B中断请求,设C口地址为302H,控制口地址为303H。则其程序段为:MOV DX,302H ;8255A C口MOV AL,00010000B ;置PC4=1,PC2=0OUT DX,AL 或者MOV DX,303H ;8255A 控制口MOV AL,00001001B ;置PC4=1OUT DX,ALMOV AL,00000100B ;置PC2=0OUT DX,AL,例如A口、B口皆为方式1输入,试编程允
15、许端口A中断请求,禁止,9.5 8255A的应用,作为通用的并行接口电路芯片,8255A具有广泛的应用应用在IBM PC/XT微机上应用于打印机接口电路连接简易键盘驱动LED数码管,9.5 8255A的应用作为通用的并行接口电路芯片,82,1、基本输入输出应用举例,8255A,D0D7,CS,A1A0,WEOE,&,A7A5A4,E3E2E1,ABC,Y0,A8A6A3,M/IO,A9,74LS138,A2A1,WRRD,例:如右图所示,8086微机系统扩展一片8255A作为并行口,同时还配以74LS138译码器等芯片。端口A为方式1输入,以中断方式与CPU交换数据,中断类型号为0FH;端口B
16、工作于方式0输出,端口C作为输入。,1、基本输入输出应用举例8255AD0D7CSA1WE&A,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 1 0 1 1 0 0 0 0 A口地址 0 0 1 0 1 1 0 0 1 0 B口地址 0 0 1 0 1 1 0 1 0 0 C口地址 0 0 1 0 1 1 0 1 1 0 控制口地址即:A口地址为0B0H B口地址为0B2H C口地址为0B4H 控制口地址为0B6H,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,MOV AL,10111001B ;方式控制字MOV DX,0B6HOUT DX,ALMOV AL
17、,00001001B ;PC4=1,开放端口A的输入中断请求OUT DX,ALMOV AX,0 ;中断类型0FH的矢量地址MOV ES,AXMOV DI,0FH*4MOV AX,OFFSET SERA ;SERA是端口A中断服务子程序名CLDSTOSWMOV AX,SEG SERASTOSW,具体8255A的初始化程序如下:,MOV AL,10111001B ;方式控制字,2、8255A与LED显示器的接口,发光二极管LED是最简单的显示设备由7段LED就可以组成的LED数码管LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中LED数码管可以显示内存地址和数据等,2、8255A与LE
18、D显示器的接口 发光二极管LED是最简单,1、LED数码管的工作原理,1、LED数码管的工作原理hgfedcba,LED数码管的结构,共阳极,共阴极,LED数码管的结构共阳极阳极+5Va阴极a共阴极,2、8255A和LED显示器的接口应用,2、8255A和LED显示器的接口应用,8255A的初始化,MOV DX , 203H ;控制寄存器地址MOV AL , 10000000B ;端口A和端口B均为方式0输出OUT DX , AL 端口A是段码输出端口,送出显示代码到数码管相应引脚;而端口B是位码输出端口,用于选择要点亮的那个数码管。端口A和端口B都采用方式0实现输出。,8255A的初始化MO
19、V DX , 203H,关显示,设DISBUF缓冲区中有4个待显示的字符,软件译码动态显示的驱动程序如下: DISPLAY PROC LEA DI, DISBUF ;指向显示缓冲区首址 MOV CL, O8H ;指向左端LED显示器 MOV AL, 00H ;将00送位码寄存器,关显示 MOV DX, 201H OUT DX, AL,关显示 设DISBUF缓冲区中有4个待显示的字符,软件译码,某位LED显示,DISP: MOV AL, DI ;取要显示的字符 LEA BX, DISCODE ;段码表首址送BX XLAT ;(BX)+(AL)-AL,AL中为要显示数的段码 DEC DX OUT
20、DX, AL ;将段码送至端口A MOV AL, CL ;将位码送端口B INC DX OUT DX, AL,某位LED显示DISP: MOV AL, DI,依次显示,CMP CL, 01 ;显示至最右端吗? JZ DESEND ;是,转出口 INC DI ;否,指向下一位要显示的字符 SHR CL ,1 ;位码右移一位,指向下一个数位 JMP DISPDISEND: RETDISPLAY ENDP,依次显示 CMP CL, 01 ;显示至最,三. 用8255A做并行打印机的接口 打印机的信号简介,25STROBE1D7D0STROBEACKBUSY选通信,D0 D7 : 数据线,接收要打印的
21、数据。 STROBE : 数据选通信号,输入信号,负脉冲有效, 该信号有效时,将数据线 D0D7上的 数据锁存到打印机的数据寄存器中。ACK : 响应信号,输出信号,负脉冲信号, 打印机接收送来的数据后, 并准备好接收新的数据时发出的响应信号。BUSY : 打印机状态信号,输出信号, BUSY=1,表示打印机正在进行内部操作, 处于忙状态,不能接收新的数据, BUSY=0,表示打印机处于空闲状态, 可以接收新的数据。,D0 D7 : 数据线,接收要打印的数据。,数 据,打印机的工作过程, 当打印机不忙 BUSY=0时,将数据送至数据线D7D0; 通过STROBE发一个负脉冲信号, 其下降沿将D
22、7D0线上的数据锁存到打印机的数据锁存器中, 并使BUSY=1,表示打印机正处于忙状态; 打印机处理完数据,并准备好接收新的数据时, 发出一个负脉冲响应信号ACK, 其上升沿使BUSY=0。,锁存数据,STROBED7 D0BUSYACK数 据STRO,用8255A做并行打印机的接口, 采用查询方式控制打印机工作。,分析:由打印机的工作过程,知: CPU通过查询BUSY信号,可知打印机的状态, 在BUSY=0时,CPU通过打印机的数据线D7D0送出数据, 并发出一个负脉冲的选通信号STROBE,使数据进入打印机,用8255A做并行打印机的接口, 采用查询方式控制打印机工作,下图为采用查询方式控
23、制打印机的接口连线图, 8255A的端口A工作在方式0输出。,CS,并行接口8255A,打印机,PC总线,数 据 线,IOR,RD,WR,IOW,片选译码,PA0PA7,PC0,PC4,A2A9,数据线,STROBE,BUSY,D0D7,D0D7,F8FBH,下图为采用查询方式控制打印机的接口连线图,A0A1CS并行接,分析: 确定8255A各端口地址: A口:F8H, B口: F9H, C口:FAH, 控制口:FBH确定8255A控制字: A口方式0输出, PC7PC4入,PC3PC0出, 方式控制字为1000 1000B接口工作过程:1) 通过PC4查询打印机的状态信号BUSY ;2) 当
24、BUSY=0时,通过A口输出要打印的数据;3) 通过PC0向打印机输出负脉冲选通信号STROBE, 将数据锁存在打印机的数据锁存器中,让打印机处理。,片选译码,打印机,PA0PA7,PC0,PC4,BUSY,STROBE,F8FBH,D0 D7RDWRA0A1CS,D0 D7IORIOWA0A1A2A9,片PA0PC0PC4BUSYSTROBEF8FBHD0D0,查询打印程序流程图:,PC4=0 打印机空闲?,查询打印程序流程图:并行接口8255APC总线片PA0PC0,DATA SEGMENTBUFFER DB Hello Word! . ;缓冲区DATA ENDSCODE SEGMENT
25、ASSUME CS: CODE, DS:DATASTART: MOV AX, DATA ;置缓冲区首址 MOV DS, AX LEA SI, BUFFER MOV CX, 100H ;打印字符数 MOV AL, 10001000B ;置方式控制字 OUT 0FBH, AL ASK: IN AL, 0FAH ;查询打印机状态 TEST AL, 00010000B JNZ ASK MOV AL, SI OUT 0F8H, AL ;输出字符至A口 MOV AL, 00000000B ;发选通信号 OUT 0FBH, AL ; PC0=0 NOP ;延时一会 MOV AL, 00000001B ;PC
26、0=1 OUT 0FBh, AL ;形成负脉冲信号 INC SI ;修改指针 LOOP ASK ;打印下一字符 MOV AH, 4CH INT 21h ;返回DOSCODE ENDS END START,方式0查询打印程序:,DATA SEGMENT方式0查询打印程序:并行接口82,2. 采用中断方式控制打印机 设计8255A的端口A 工作在方式1输出时, CPU用中断方式控制打印机的接口电路图, 8255A的端口地址在F8FBH, 编程用中断方式打印缓冲区buffer的 100H个字符数据,2. 采用中断方式控制打印机,分析8255A与PC总线的连接:,8255A内部有4个端口,PC/XT总
27、线上对端口的读写操作与8255A的读写时序相匹配,且8255A内部的数据缓冲器具有三态功能,所以采用如下连接图 :,CS,打印机,IOR,RD,WR,IOW,片选译码,PA0PA7,PC6,PC3,A9A2,F8FBH,PC7,分析8255A与PC总线的连接:8255A内部有4个端口,A,三、用8255A方式0与打印机接口,8255,D,0,D,7,D,0,D,7,RESET,RD,WR,A,1,A,0,RESET,IOR,IOW,A,1,A,0,G,Y,0,G2B,&,A,9,A,8,A,7,G2A,1,A,6,AEN,A,5,A,4,C,B,A,A,3,A,2,CS,系,统,总,线,信,号
28、,PC7,PC0,D,0,D,1,D,7,BUSY,STB,打,印,机,三、用8255A方式0与打印机接口8255D0D7D0D,8255A的初始化,要求:A口应工作于方式0输出,B口不用。;8255A初始化程序如下 INIT55: MOV DX,0383H ;写方式控制字 MOV AL,10000001B OUT DX,AL MOV AL,00001111B ;写置位/复位控制字 OUT DX,AL ;使STB初始状态为高电平,打印机的工作时序,数据STBBUSY,8255A的初始化要求:A口应工作于方式0输出,B口不用。,;下面为控制输出程序,设欲打印的字符已存于CL中,经8255A的A口
29、输出至打印机。CONP: MOV DX,0382H ;读C口LPST: IN AL,DX AND AL,01H ;检测PC0(BUSY)状态。 JNZ LPST ; BUSY=1,则等待;=0则向下执行 MOV AL,CL MOV DX,0380H OUT DX,AL ;送数据到A口 MOV AL,0EH ;送C口置位/复位控制字,使PC7=0,即STB为低电平 MOV DX,0383H OUT DX,AL MOV CX,XXH ;为使STB宽度1S,送延时程序DELAY:DEC CX JNZ DELAY MOV AL,0FH ;再使STB为高电平 OUT DX,AL ;向下执行后续程序,;下面为控制输出程序,设欲打印的字符已存于CL中,经8255,第9章教学要求,1. 掌握8255A的结构特点和引脚功能2. 掌握8255A的各种工作方式、编程及方式0/1的应用习题9(第345页)1、2、3、5,第9章教学要求1. 掌握8255A的结构特点和引脚功能,