《并行接口技术》由会员分享,可在线阅读,更多相关《并行接口技术(62页珍藏版)》请在金锄头文库上搜索。
1、 并行接口技术并行接口技术可编程并行接口芯片8255A及其应用1并行数据传输方式并行数据传输方式n以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据n适合于外部设备与微机之间进行近距离、大量和快速的信息交换n例如:微机与并行接口打印机、磁盘驱动器例如:微机与并行接口打印机、磁盘驱动器n微机系统中最基本的信息交换方法n例如:系统板上个部件之间,接口电路板上各例如:系统板上个部件之间,接口电路板上各部件之间部件之间2典型的并行接口和外设连接的示意图 *输入准备好输入准备好*并行接口:并行接口:连接CPU与并行外设,实现两者间的并行通信,在信息传送过程中,起到输出锁存或输入
2、缓冲的作用。3并行接口电路并行接口电路8255An具有多种功能的可编程并行接口电路芯片n最基本的接口电路:三态缓冲器和锁存器n与CPU间、与外设间的接口电路:状态寄存器和控制寄存器n还有端口的译码和控制电路、中断控制电路 n分3个端口(每个端口8条线),共24个外设引脚(也可分为2组工作,每组12条线)n共三种输入输出工作方式(可编程设置)4(1) PA7PA0、PB7PB0及PC7PC0 A口、B口及C口的输入/输出线。(2) D7D0 三态双向数据线,数据总线连接,用来传送数据信息。(3) 片选信号线,低电平有效。(4) 读出信号线,低电平有效,控制数据的读出。(5) 写入信号线,低电平有
3、效,控制数据的写入。(6) A1、A0 端口选择信号,用来寻址控制端口和I/O端口。(7) RESET 复位信号线,高电平有效。有效时,所有寄存器的内容都被清零,三个I/O端口都被置成方式0输入。8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB38255A引脚图引脚图8255A是是40条引脚的双列直插式芯片,引脚排列如图所示:条引脚的双列直插式芯片,引脚排列如图所示:5一、8255A的内部结构和引脚数据数据总线总线缓冲
4、器缓冲器内部控制线内部控制线内部数据线内部数据线D0D7A组组控制控制A组组端口端口AA组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑逻辑PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET61. 外设数据端口n端口A:PA0PA7nA组,支持工作方式0、1、2n端口B:PB0PB7nB组,支持工作方式0、1n端口C:PC0PC7n仅支持工作方式0nA组控制高4位PC4PC7nB组控制低4位PC0PC3n端口端口A:PA0PA7n常作数据端口,功能最强大常作数据端口,功能最强大n端口端口B:PB0PB7n常作数据端口常
5、作数据端口n端口端口C:PC0PC7n可作数据、状态和控制端口可作数据、状态和控制端口n分两个分两个4位,每位可独立操作位,每位可独立操作n控制最灵活,最难掌握控制最灵活,最难掌握82. 与处理器接口CS* A1 A0I/O地址读操作RD*写操作WR*0 0 00 0 10 1 00 1 160H61H62H63H读端口A读端口B读端口C非法写端口A写端口B写端口C写控制字nD0 D7数据线数据线A0 A1地址线地址线nRD*读信号读信号WR*写信号写信号nCS*片选信号片选信号RESET复位信号复位信号9二、 8255A的工作方式n方式0:基本输入输出方式n适用于无条件传送和查询方式的接口电
6、路n方式1:选通输入输出方式n适用于查询和中断方式的接口电路n方式2:双向选通传送方式n适用于与双向传送数据的外设n适用于查询和中断方式的接口电路101. 方式方式0(基本输入输出方式)(基本输入输出方式)v 工作在方式工作在方式 0 的端口,为的端口,为单向传送端口单向传送端口, 输入输入或输出或输出 v 作为输入口相当于普通的三态门作为输入口相当于普通的三态门 作为输出口作为输出口相当于普通的锁存器相当于普通的锁存器v CPU可利用工作在方式可利用工作在方式 0 的端口,直接对端口的端口,直接对端口进行读写操作,实现进行读写操作,实现CPU与外设间的数据传送。与外设间的数据传送。11方式0
7、输入时序datadata输入端口输入端口D0D7RD CS,A1,A0请体会这里请体会这里8255A8255A的数据缓冲作用的数据缓冲作用12方式0输出时序WRdatadata输出端口输出端口D0D7 CS,A1,A08255A8255A对对CPUCPU通过它输出给外设的数据进行锁存通过它输出给外设的数据进行锁存13n方式0基本输入输出方式n各个端口的输入、输出可以有16种不同的组合 n最适用于无条件传送方式; n也可用于查询方式把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。(需用户指定C口相关位,然后通过软件查询来实现数据传送,相对麻烦)14 2.
8、 方式方式1(选通输入输出方式)(选通输入输出方式)v A口工作在方式口工作在方式1时,时,C口的口的某某3根引脚根引脚作为作为A口的联络信号口的联络信号。v B口工作在方式口工作在方式1时,时, C口的口的某某3根引脚根引脚作为作为B口的联络信号口的联络信号。v工作在方式工作在方式 1 的端口,为单向传送端口。的端口,为单向传送端口。 在方式在方式 1 下,下,C口作为口作为A口、口、B口联络信号的口联络信号的引脚,引脚,其动作关系在芯片设计和制造时已固定,其动作关系在芯片设计和制造时已固定, 不由用户自己安排,也不能编程改变。不由用户自己安排,也不能编程改变。15方式1 输入引脚:A端口数
9、据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器INTE没有外部引出端,通过编程设置。没有外部引出端,通过编程设置。16方式1 输入引脚:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式方式1 1需借用端口需借用端口C C用做联络信号用做联络信号同时还具有中断请求和屏蔽功能同时还具有中断请求和屏蔽功能17方式1 输入联络信号n
10、STB*选通信号,低电平有效n由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器nIBF输入缓冲器满信号,高电平有效n8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器nINTR中断请求信号,高电平有效n8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据18方式1 输入时序外设送来数据外设送来数据PB7PB0PA7PA0STBIBFINTRRD当当INTE=1时时 19 当外设准备好数据,当外设准备好数据,将数据送至端口线将数据送至端口线PA7PA0或或PB7PB0 外设发出选通信号外设发出选通信号STB*: ( (1) 将数
11、据锁存在输入端口内。将数据锁存在输入端口内。 (2) 使使IBF变高,表示输入端口满,可用于阻止外设输入新变高,表示输入端口满,可用于阻止外设输入新数据。数据。(3) 如果如果INTE=1, IBF的高电平和的高电平和STB*的上升沿使的上升沿使INTR变高,发出中断请求。变高,发出中断请求。 转转中断处理程序,执行中断处理程序,执行IN指令,指令,CPU 读取数据,发出读取数据,发出RD信号信号: (1) RD* 的下降沿清除的下降沿清除INTR (2) RD*的上升沿清除的上升沿清除IBF (3) 端口内的数据进入端口内的数据进入CPUSTB*STB*和和IBFIBF是外设和是外设和825
12、5A8255A间间的一对应答联络信号,的一对应答联络信号,为的是可靠地输入数据为的是可靠地输入数据20方式1 中断控制中断控制n8255A的中断由中断允许触发器INTE控制n置位允许中断,复位禁止中断n对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器n选通输入方式下n端口A的INTEA对应PC4n端口B的INTEB对应PC2端口端口C置位置位/复位控制字复位控制字21方式1 输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次
13、输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器22方式1输出引脚:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器23方式1输出联络信号nOBF*输出缓冲器满信号,低有效n8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走nACK*响应信号,低有效n外设的响应信号,指示8255A的端口数据已由外设接受nINTR中断请求信号,高有效n当输出设备已接受数据后,8255
14、A输出此信号向CPU提出中断请求,要求CPU继续提供数据端口端口A A的的INTEAINTEA对应对应PCPC6 6端口端口B B的的INTEBINTEB对应对应PCPC2 224方式1 输出时序25 CPU执行执行OUT指令,输出数据指令,输出数据 CPU发出发出WR* (1) 数据写到数据写到 8255A的端口的端口 (2) 使使OBF*有效(有效(OBF*=0) ,表示输出端口满,可作,表示输出端口满,可作为外设的选通信号为外设的选通信号,通知外设取数据。通知外设取数据。 (3) 清除中断请求信号清除中断请求信号INTR(前一次的前一次的) 外设接受到数据后,发出外设接受到数据后,发出A
15、CK*信号信号 (1) ACK*的下降沿使的下降沿使OBF*变高,变高, (2) 当当INTE=1, OBF* 的高电平与的高电平与ACK*的上升沿使的上升沿使INTR变高,发出中断请求,请求变高,发出中断请求,请求CPU输出新的数据。输出新的数据。OBF*OBF*和和ACK*ACK*是外设和是外设和8255A8255A间间的一对应答联络信号,的一对应答联络信号,为的是可靠地输出数据为的是可靠地输出数据26方式2 双向方式n方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据n只有端口只有端口A可以工作于方式可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1
16、相同n方式2的数据输入过程与方式1的输入方式一样n方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据27方式2 双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号28方式2双向时序data-outINTRdata-outdata-indata-inPA0PA7D0D7IBFWROBFACKSTBRD29三、 8255A的编程n初始化编程:
17、一个方式控制字n采用控制I/O地址:A1A011n工作过程中:通过数据端口对外设数据进行读写n数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10nIBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H301. 写入方式控制字:控制字格式311. 写入方式控制字:示例n要求:nA端口:方式1输入nC端口上半部:输出,C口下半部:输入nB端口:方式0输出n方式控制字:10110001B或B1Hn初始化的程序段:mov dx,0fffeh;假设控制端口为FFFEHmov al,0b1h;方式控制字out dx,al;送到控制端口321000
18、1/0011/0D7D6D5D4D3D2D1D0特征位特征位A口口方式方式 0A口口输出输出PC7PC4I/OB口口方式方式 0B口口输入输入PC3PC0I/O所以所以, 方式控制字为方式控制字为 1000 0010B, 即即82H 由于对由于对 C口无要求,口无要求,控制控制C口的相应位口的相应位D4, D0可为任意值,假设取可为任意值,假设取0例例 假设假设8255A 控制端口的地址为控制端口的地址为203h,编程设置编程设置控制字,使控制字,使A口口方式方式0输出输出; B口口方式方式0输入输入设置控制字的程序段如下:设置控制字的程序段如下: MOV DX,203h ;置置DX为控制口地
19、址为控制口地址 MOV AL,82h ;置控制字于置控制字于AL中中 OUT DX, AL ;将控制字写入控制口将控制字写入控制口342. 读写数据端口n初始化编程后:n当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据n当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备n8255A具有锁存输出数据的能力n对输出方式的端口同样可以输入n不是读取外设数据n读取的是上次CPU给外设的数据352. 读写数据端口:示例n利用8255A的输出锁存能力,可实现按位输出控制 n对输出端口B的PB7位置位的程序段:mov dx,0fffah;B端口假设为FFFAHin a
20、l,dx;读出B端口原输出内容or al,80h;使PB71out dx,al;输出新的内容363. 读写端口C:归纳1nC端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出n在在控控制制上上,C端端口口上上半半部部和和A端端口口编编为为A组,组,C端口下半部和端口下半部和B端口编为端口编为B组组373. 读写端口C:归纳2n当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用n其余引脚仍可设定工作在方式其余引脚仍可设定工作在方式0383. 读写端口C:归纳3n对端口C的数据输出有两种办法n通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口
21、的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效n通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器39端口C的位控制字n位控制字写入控制端口n特别便于置位复位内部中断允许触发器INTE40例例 假假设设8255A的的控控制制口口地地址址为为203h, 通通过过控制口置控制口置 PC2 为为 0,置,置 PC4 为为 1 MOV DX,203H ;置置DX为控制口地址为控制口地址MOV AL,0000 0100B ;置置PC2为为0OUT DX, AL MOV AL,0000 1001B ;置置PC4为为1OUT DX, AL 4142例例
22、某系统要求使用某系统要求使用8255的的A口工作于方式口工作于方式1作输入,作输入,B口工作于方式口工作于方式0作输出,作输出,C口上半部输入,下半部输出。口上半部输入,下半部输出。8255端口地址为端口地址为60H-63H。 控制字为:控制字为:10111000B=0B8H 初始化程序为:初始化程序为: MOVAL,0B8H OUT63H,AL 例例 如上例,若如上例,若A口工作于方式口工作于方式1作输入,要使用中断传送作输入,要使用中断传送方式,则应当写方式,则应当写PC4的按位置位字:的按位置位字: MOVAL,00001001B OUT63H,AL 4243方式方式1下下8255状状态
23、字中字中INTE位的置位和复位位的置位和复位 若禁止若禁止PA口口输入中断入中断请求求 MOV DX,303H ;8255命令口命令口 MOV AL,00001001000 0B ;置;置PCPC4 4=0,禁止中断,禁止中断请求求 OUT DX,AL 若允若允许PA口口输入中断入中断请求求 MOV DX,303H ;8255命令口命令口 MOV AL,00001001001B ;置;置PCPC4 4=1,允,允许中断中断请求求 OUT DX,AL 若允若允许PA口口输出中断出中断请求求 MOV DX,303H ;8255命令口命令口 MOV AL,00001101101B ;置;置PCPC6
24、 6=1,允,允许中断中断请求求 OUT DX,AL4344 若允若允许PB口口输入中断入中断请求求 MOV DX,303H ;8255命令口命令口 MOV AL,00000100101B ;置;置PCPC2 2=1=1,允,允许中断中断请求求 OUT DX,AL 若禁止若禁止PB口口输入中断入中断请求求 MOV DX,303H ;8255命令口命令口 MOV AL,00000100100 0B ;置;置PCPC2 2=0=0,禁止中断,禁止中断请求求 OUT DX,AL 若允若允许PB口口输出中断出中断请求求 MOV DX,303H ;8255命令口命令口 MOV AL,0000010010
25、1B ;置;置PCPC2 2=1=1,允,允许中断中断请求求 OUT DX,AL443. 读写端口C:归纳4n读取C端口数据有两种情况n未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息n被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字45D7D6D5D4D3D2D1D0方式1输入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2双向OBFAINTE1IBFAINTE2INTRA端口C的状态字A口口B口口46四、 825
26、5A的应用作为通用的并行接口电路芯片,8255A具有广泛的应用n应用在IBM PC/XT微机上n应用于打印机接口电路n连接简易键盘n驱动LED数码管n478255A与系统的连接与系统的连接8255A在在IBM PC/XT上的应用上的应用488255A在在IBM PC/XT上的应用上的应用n工作在基本输入/输出方式0n端口A为方式0输入,用来读取键盘扫描码n端口B工作于方式0输出,例如控制扬声器等n端口C为方式0输入,读取系统状态和配置n系统的初始化编程:mov al,10011001b;方式控制字99Hout 63h,al4950例例某应用系统以某应用系统以8255A作为接口,采集一组开关作为
27、接口,采集一组开关S7S0 的状态,然后通过一组发光二极管的状态,然后通过一组发光二极管LED7LED0显显示开关状态示开关状态,(Si闭合,则对应闭合,则对应LEDi亮,亮,Si断开,则对应断开,则对应的的LEDi灭)电路连接如下图,已知灭)电路连接如下图,已知8255A、B两组均工两组均工作在方式作在方式0。1)写出写出8255四个端口的地址。四个端口的地址。2)写出写出8255工作方式控制字。工作方式控制字。3)写出实现给定功能的汇编语言程序。写出实现给定功能的汇编语言程序。50LED7LED0S7S0PB7PB0PA7PA08255AD7D0D7D0WR#RD#IOW#IOR#Y0 *
28、G1G2A*G2B*CBA74LS138CS*A9AEN&A8A7A6A5A4A3A2A1A0A1A05152答:答:1)A口、口、B口、口、C口和控制口的地址分别是口和控制口的地址分别是320H、321H、322H和和323H。2)A口工作在方式口工作在方式0输出,输出,B口工作在方式口工作在方式0输入,输入,C口空闲,口空闲,所以其控制字是所以其控制字是10000010b82H3)程序如下:程序如下:MOVAL, 82H;置方式字置方式字MOVDX, 323H;置控制端口地址置控制端口地址OUTDX, ALL1:MOVDX, 321H;置置B口地址口地址INAL, DX;读开关状态(读开关
29、状态(1断,断,0通)通)NOTAL;状态取反状态取反MOVDX, 320H;置置A口地址口地址OUTDX, AL;输出(输出(1亮,亮,0灭)灭)JMPL152打印机接口的信号与时序BUSYDATA07ACKSTROBEn主机把数据送给引脚DATA0DATA7n同时送出数据选通信号STROBE*n打印机在BUSY信号线上发出忙信号n打印机处理好输入的数据时n撤消忙信号n同时又送出一个响应信号ACK*53用8255A方式0与打印机接口622130字符字符8255A工工作作于于方方式式0 的的例例子子11010548255A的的4个口地址分别为:个口地址分别为:00D0H,00D2H,00D4H
30、,00D6HA、B、C三个端口工作于方式三个端口工作于方式0,A端口为输出,端口为输出,PC7PC4为输出,为输出,PC3PC0为输入为输入55DADA SEGMENT BUFF DB This is a print program!,$DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART:MOV AX, DATA MOV DS, AX MOV SI,OFFSET BUFF MOV AL, 81H ;初始化方式控制字;初始化方式控制字 OUT 0D6H, AL MOV AL, 0DH ;通过位控字置;通过位控字置PC6=1 OUT 0D6H,AL
31、 56WAIT: IN AL, 0D4H TEST AL, 04H JNZ WAIT MOV AL,SI CMP AL,$ JZ DONE OUT 0D0H,AL MOV AL,0CH OUT 0D6H, AL INC AL OUT 0D6H,AL INC SI JMP WAITDONE:MOV AL,0DH OUT 0D0H,AL MOV AL, 0CH OUT 0D6H,AL INC AL OUT 0D6H,ALWAIT1: IN AL, 0D4H TEST AL, 04H JNZ WAIT1 57 MOV AL,0AH OUT 0D0H,AL MOV AL, 0CH OUT 0D6H,A
32、L INC AL OUT 0D6H,AL MOV AH,4CH INT 21H CODE ENDSEND START588255A工作于方式工作于方式1 的例子的例子59主程序:主程序:MAIN:MOV AL,0A0H ;方式选择控制字;方式选择控制字OUT 0C6H,ALMOV AL,01H ;OUT 0C6H,ALCLI ;替换中断向量前关中断;替换中断向量前关中断MOV AH,25H ;替换中断向量的典型方式;替换中断向量的典型方式MOV AL,0BH ;IR3的类型码为的类型码为0BHMOV DX,OFFSET ROUTINTRPUSH DSMOV AX,SEG ROUTINTRMOV DS,AXINT 21HPOP DSMOV AL,0DH ;PA方式方式1输出,输出,“置置PC6=1的操作的操作”OUT 0C6H,AL ;使;使8255允许中断(允许中断(INTEA=1)STI ;CPU开中断开中断 假设:假设:A口地址口地址 0C0HB口地址口地址 0C2HC口地址口地址 0C4H控制口控制口 0C6H60中断处理程序中断处理程序ROUTINTR:MOV AL,DI ;DI为打印字符缓冲区地址为打印字符缓冲区地址OUT 0C0H,ALMOV AL,00H ;置;置PC0=0OUT 0C6H,ALINC AL ;置;置PC0=1OUT 0C6H,AL IRET61