第10章并行通信接口10.1并行通信与并行接口10.2简单并行接口10.3可编程并行接口芯片8255A10.1并行通信与并行接口1.并行通信并行通信就是把一个字符的各数位用几条线同时进行传输。并行通信的主要特点是信息传输速度快、信息率高。这种特点是多用通信电缆而换取的,用于数据传输率要求较高、而传输距离较短的场合。2.并行接口实现并行通信的接口就是并行接口。并行接口广泛应用于微机内部各部件之间以及主机与外部设备之间的信息交换。例如,打印机接口,A/D、D/A转换器接口,开关量接口,控制器接口等等。并行接口是指接口与I/O设备或控制对象一侧的并行数据线。并行接口分为:不可编程接口::工作方式和功能是完全通过逻辑电路连接来设定可编程接口:工作方式和功能都能通过软件编程的方法加以设定或改变。并行接口的特点1、并行接口最基本的特点就是在多条数据线上以数据字节(字)为单位与I/O设备或被控对象传送信息。2、并行接口适用于近距离传送数据的场合。3、在并行接口中,一般都需要在接口与外设之间设置并行数据线的同时,至少还要设置两条握手(联络)信号线,以便进行互锁异步握手方式的通信。并行接口的特点4、在并行接口中,数据的每个位(8位或16位)都是一起行动的,因此,当并行接口与外设交换数据时,即使是仅用到其中的一位,也是一次输入或输出8位或16位数据。5、并行传送的信息,不要求有固定的传输格式。10.2简单并行接口简单并行接口就是用简单的门电路、触发器等连接组成的并行接口。一般采用无条件传输方式根据接口的功能简单输入并行接口简单并行输出接口双向输入/输出并行接口关键电路是三态缓冲器:74LS244关键是用数据锁存器来保存输出数据:74LS373/3748位双向缓冲驱动器74LS24510.2.1简单并行接口常用芯片简介1、74LS74输入输出SDRDCPDQ~QLHXXHLHLXXLHHHHHLHHLLHHHLXQD~QD74LS74的功能表74LS7474LS74包含两个独立的上升沿触发的TTL集成双D触发器,每个触发器都有独立的直接复位(清除)端RD,直接预置端SD,数据输入端D和时钟输入端CLK(CP),还有一组互补输出端Q和~Q。2、74LS27374LS273是带清除端CLR的八D触发器。在是时钟CLK上升沿作用下,输入信息由D端传送到Q端。触发器的时钟频率响应范围为0~30MHz。74LS273的功能表输入输出CLRCLKDQLXXLHHHHLLHLX维持74LS273的功能图3、74LS373/37474LS373是透明D型锁存器,当允许端G是高电平时,输入数据D被内部输出并锁存,只有当输出控制端为低电平时,被锁存的数据D才在Q端输出。当输出控制端为高电平时,输出端Q为高阻状态。由于输出可提供具有高阻抗的第三态,74LS373作为缓冲寄存器、I/O通道、总线驱动器以及工作寄存器等都特别有吸引力。74LS373结构图输入输出~OEGDQLHHHLHLLLL×维持H××高阻态74LS373功能表74LS373/37474LS374与74LS373基本相同,它们的区别仅在于74LS374是边沿触发,即把74LS373的允许端G换成为74LS374的时钟输入端CLK,在时钟上升沿时,内部锁存器的输入端(D)的状态就建立在锁存器的输出端。另外,当CLK为低电平时,输出端Q处于维持数据状态。其他与74LS373相同。4、74LS24474LS244是带史密特触发的8位(2×4)三态门电路,抗干扰性好,无锁存功能,常用作总线驱动器和并行输入接口。74LS244的8路输入输出实际上分两个4路的输入输出,分别由门控信号1G和2G控制,当它的控制端1G(2G)为低电平时,输出端Y等于输入端A(直通);当1G(2G)为高电平时,输出端Y为高阻态。74LS244真值表:L=低逻辑电平H=高逻辑电平X=高或低的逻辑电平Z=高阻抗施密特触发器的电压传输特性(a)同相输出(b)反相输出5、74LS24574LS245是具有三态输出的8位总线收发器/驱动器,无锁存功能。在输出控制端为低电平期间,当传输方向控制端DIR为低电平时,74LS245可以将8位数据从A端传送到B端,即此时A端为输入而B端为输出;当传输方向控制端DIR为高电平时,74LS245可以将8位数据从B端传送到A端,即此时B端为输入而A端为输出。当输出控制端为高电平时,将禁止传输,A端与B端之间为高阻状态(隔离)。【例7.1】简单并行输入输出接口已知地址为300H时,译码器输出为低电平。编程扫描开关Ki,要求当开关闭合时,点亮相应的LEDi。+5VA0~A15K7K1K0D0~D7CLKLS06反相驱动器LS2738D锁存器LS244三态缓冲器译码器+5VLED0LED7……GIORIOWY驱动程序参考程序如下:CODESEGMENTASSUMECS:CODESTART:MOVDX,300H;DX指向数据端口INAL,DX;从输入端口读取开关状态NOTAL;取反OUTDX,AL;送输出端口显示JMPSTARTMOVAH,4CH;返回DOSINT21HCODEENDSENDSTART10.3可编程并行接口芯片8255A所谓可编程实际上就是具有可选择性,并且是用编程的方法进行选择。例如,选择芯片中的哪一个或哪几个数据端口与外设连接;选择端口中的哪一位或哪几位作输入,哪一位或哪几位作输出;选择端口与CPU之间采用哪种方式传送数据等,均可由用户在程序中写入方式字或控制字来进行指定。因此,它们具有广泛的适应性及很高的灵活性,在微机系统中得到广泛应用。10.3.18255A的外部特性和内部结构1、8255A的基本特性8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片,8255A的PC口还具有按位置位/复位功能,为按位控制提供了强有力的支持。8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件、查询方式传送和中断方式传送。8255A具有方式0、方式1和方式2三种工作方式。8255A的可编程功能很强,由内容丰富的命令字(方式字和控制字)来设置8255A,使其构成多种功能的接口电路。8255APC口的使用比较特殊,除用作一般数据口外,PC口可以按位进行控制,而且当8255A工作在方式1和方式2时,PC口的口线被分配成专用联络信号线,等等。16151413121110987654321391718192021222324252627282930313233343536373840PA0PA1PA2PA3PA7PA5PA6PA4PC2PC1PC0PC4PC5PC6PC7PC3PB0PB1PB2PB4PB5PB3PB6PB7A0A1GND~CS~RD~WRRESETD0D2D1VCCD7D6D5D4D32、8255A的引脚信号及功能8255A是一个单+5V电源供电、具有40个引脚的双列直插封装的器件8255A的引脚信号可分为两部分:一部分是与外设相连的,另一部分是与CPU相连接的。8255A的内部编程结构10.3.28255A的编程命令8255A的编程命令包括工作方式选择控制字和PC口按位操作控制字由于这两个命令字都是送到8255A的同一个控制端口,故为了让8255A能够识别是哪个命令,采用在命令代码中设置特征位的方法来进行区分。如果写入的控制字的最高位D7=1,则该控制字为工作方式控制字;如果写入的控制字的最高位D7=0,则该控制字是PC口的按位复位/置位控制字。工作方式控制字1、工作方式控制字作用:指定8255A的工作方式和PA、PB、PC三个端口的输入/输出功能。D7D6D5D4D3D2D1D0特征位必须写1A组方式00=方式001=方式11×=方式2PA0=输出1=输入PC7~40=输出1=输入B组方式0=方式01=方式1PB0=输出1=输入PC3~00=输出1=输入1.工作方式控制字例1例1:要求8255A的各端口处于如下工作方式:PA口指定为方式0输入,PC口高四位指定为输出;PB口指定为方式0输出,PC口低四位指定为输入。根据工作方式控制字的格式要求,控制字的代码应是10010001B,即91H。8255A的初始化如果将此控制字的内容写到8255A的控制寄存器,就实现了对8255A的工作方式的指定,这个过程又称为对8255A的初始化。如果8255A是PC机中使用的接口芯片,用上述工作方式控制字,其初始化程序段为:MOVDX,0063H;8255A控制端口地址MOVAL,91H;初始化命令字OUTDX,AL;控制字送到控制口2.PC口按位置位/复位控制字2、PC口按位置位/复位控制字作用:指定PC口的某一位(即某一个引脚)输出高电平(置位)或输出低电平(复位)。8255的PC口具有位操作功能,用PC口按位置位/复位控制字,可以改变PC口某一位的取值而不影响PC口的其他位。D7D6D5D4D3D2D1D0特征位写0未使用(写0)位选择000=PC口第0位001=PC口第1位…111=PC口第7位1=置位(高电平)0=复位(低电平)PC口按位置位/复位控制字例2例2:要求把PC5引脚设置成高电平输出。根据置位/复位控制字格式,其控制字应为00001011B,即0BH。将该控制字代码写入8255A的控制寄存器,就会使得从PC口的PC5引脚输出高电平,其程序段为:MOVDX,0063H;8255A控制端口地址MOVAL,0BH;使PC5=1的命令字OUTDX,AL;控制字送到控制口例2如果要使该位(PC5)复位,控制字为00001010B,即0AH,用下面程序段来实现:MOVDX,0063H;8255A控制端口地址MOVAL,0AH;使PC5=0的命令字OUTDX,AL;控制字送到控制口10.3.38255A的工作方式A口可工作于方式0、方式1、方式2B口可工作于方式0、方式1C口只能工作于方式01.方式0—基本输入输出在方式0下,每一个端口都作为基本的输入或输出口,端口C口的高4位和低4位以及端口A口、端口B都可独立地设置为输入口或输出口。CPU可采用无条件传输方式与8255A交换数据。2.方式1—单向选通输入输出三个数据端口分为A、B两组,分别称为A组控制和B组控制。端口A和端口B仍作为数据的输入或输出口,端口C作为联络控制信号,被分成两部分,一部分作为端口A和端口B的联络信号,另一部分仍可作为基本的输入输出口。1)方式1输入联络信号线定义方式1输入时序2)方式1输出联络信号线定义方式1输出时序3.方式2—双向选通输入输出端口A的方式2可使8255A与外设进行双向通信,既能发送数据,又能接收数据。可采用查询方式和中断方式进行传输。方式2控制联络信号线定义当端A口方式2和端口B方式1时,端口C各位的功能如图所示,PC7~PC3作为端口A的联络信号,PC2~PC0作为端口B的联络信号。当端口A工作于方式2,端口B工作于方式0时,PC7~PC3作为端口A的联络信号,PC2~PC0可工作于方式0。10.3.48255A的应用举例【例10.4】设8255A的A口和B口工作在方式0,B口作为输入端口,接有8个开关(K0~K7);A口为输出端口,接有8个发光二极管(LED0~LED7)。系统硬件电路如图10-3-8所示,编程扫描开关Ki,要求当开关闭合时,点亮相应的LEDi。例10.4图LED7LED0K7K0PA08255ACS310H~313H8088D0~D7D0~D7译码器A0A1ABRDWRRDWRD0~D7PA7PB0PB7+5V例10.4解:首先确定工作方式控制字。根据题意,B口为输入端口,A口输出端口,均工作在方式0下,端口C没使用,设没有用到的控制字中对应位设置为0,所以8255A的控制字为:1000010B=82H例10.4参考程序如下CODESEGMENTASSUMECS:CODESTART:MOVAL,82H;8255初始化