1 / 39

第 7 章 并行接口

第 7 章 并行接口. 7.1 并行接口概述. 并行接口和串行接口的结构示意图. 并行接口传输速率高,一般不要求固定格式,但不适合长距离数据传输. 7.2 可编程并行接口芯片 82C55 7.2.1 8255 的基本功能. 8255 具有 2 个独立的 8 位 I/O 口( A 口和 B 口)和 2 个独立的 4 位 I/O ( C 口上半部和 C 口下半部) ,提供 TTL 兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中, A 口具有双向传输功能。

ciqala
Download Presentation

第 7 章 并行接口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章 并行接口 7.1 并行接口概述 并行接口和串行接口的结构示意图 并行接口传输速率高,一般不要求固定格式,但不适合长距离数据传输

  2. 7.2 可编程并行接口芯片82C557.2.1 8255的基本功能 • 8255具有2个独立的8位I/O口(A口和B口)和2个独立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中,A口具有双向传输功能。 • 8255有3种工作方式,方式0、方式1和方式2,能使用无条件、查询和中断等多种数据传送方式完成CPU与I/O设备之间的数据交换。 • B口和C口的引脚具有达林顿复合晶体管驱动能力,在1.5V时输出1mA电流,适于作输出端口。 • C口除用做数据口外,当8255工作在方式1和方式2时,C口的部分引脚作为固定的联络信号线。

  3. 7.2.2 8255的内部结构和外部引脚 1. 内部结构

  4. 2. 外部引脚

  5. A1 A0 RD WR CS 操作 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 A口内容读至数据总线 B口内容读至数据总线 C口内容读至数据总线 输入 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 数据总线内容写至A口 数据总线内容写至B口 数据总线内容写至C口 DB内容写至控制寄存器 输出 X 1 X X 1 X X 0 1 X 1 1 1 0 0 端口输出为高阻 非法 端口输出为高阻 禁止 表7.1 8255的端口与操作选择表

  6. 7.2.3 8255的工作方式 1.方式0 方式0提供两个8位口(A和B)和两个4位口(PC7~PC4,PC3~PC0),任何一个口都可用做输入或输出(单向),由CPU用简单的I/O指令来进行读/写。 一般用于无条件传送的场合,也可以用做查询式传送。 习惯上将A口和B口作为数据口,将C口作为控制输出和状态输入口。

  7. 图7.4 8255A方式0输入时序和参数说明

  8. 2.方式l (A口和B口有此方式,单向) (1)方式l的输入 图7.6 A口和B口方式l的输入组态

  9. INTE为中断允许位,对应PC口寄存器(状态字)的D4位(INTEA)和D2位 (INTEB) ,可通过对PC口按位写方法设置; • PC2、PC4引脚作用:用作锁存数据口数据; • 中断条件:STB#(引脚)=1(无效),IBF=1、INTE=1; • PC6、7可作为数据线使用。

  10. 外设把数据送到8255端口 • 外设用选通信号STB把数据打入端口的输入锁存器 • 输入缓冲器满信号IBF有效,CPU可查询该信号 • 如果INTE有效,8255将使INTR有效,申请中断 • CPU向8255发读信号RD,从8255端口读数据 • 中断请求信号INTR变无效,然后IBF无效,外设可送下一个数据。 方式1下的输入过程:

  11. (2)方式1的输出 图7.8 8255方式1输出组态

  12. PC2、PC6引脚作用:用作对OBF的回应; • 中断条件:ACK (引脚)=1(无效),OBF=1(W无效)、INTE=1; • PC4、5可作为数据线使用。 • INTE为中断允许位,对应PC口寄存器(状态字)的D6位(INTEA)和D2位 (INTEB) ,可通过对PC口按位写方法设置;

  13. CPU发WR信号,向8255送一个数据 • WR使INTR无效,OBF有效,通知外设可取数据 • 外设接到数据后,向8255回送ACK信号 • OBF无效,接着ACK无效,其上升沿引发INTR有效,向CPU发中断申请,请求发送新数据。 方式1下的输出过程:

  14. 3.方式2 双向I/O,只有A口有此方式 图7.10 8255方式2组态

  15. 7.2.4 8255的控制字与初始化编程 1.工作方式控制字(写,A1A0=11 ) 图7.11 8255工作方式控制字

  16. 例7.1 某系统要求使用8255的A口工作于方式1作输入,B口工作于方式0作输出,C口上半部输入,下半部输出。8255端口地址为60H-63H。  控制字为:10111000B=0B8H  初始化程序为: MOV AL,0B8H OUT 63H,AL

  17. 2.C口按位置/复位控制字(写,A1A0=11 ) 图7.12 C口按位置/复位控制字 例7.2 如上例,若A口工作于方式1作输入,要使用中断传送方式,则应当写PC4的按位置位字: MOV AL,00001001B OUT 63H,AL

  18. 方式1下8255状态字中INTE位的置位和复位 • ⊙ 若允许PA口输入中断请求 • MOV DX,303H ;8255命令口 • MOV AL,00001001B ;置PC4=1,允许中断请求 • OUT DX,AL • ⊙ 若禁止PA口输入中断请求 • MOV DX,303H ;8255命令口 • MOV AL,00001000B ;置PC4=0,禁止中断请求 • OUT DX,AL • ⊙ 若允许PA口输出中断请求 • MOV DX,303H ;8255命令口 • MOV AL,00001101B ;置PC6=1,允许中断请求 • OUT DX,AL

  19. ⊙ 若允许PB口输入中断请求 • MOV DX,303H ;8255命令口 • MOV AL,00000101B ;置PC2=1,允许中断请求 • OUT DX,AL • ⊙ 若禁止PB口输入中断请求 • MOV DX,303H ;8255命令口 • MOV AL,00000100B ;置PC2=0,禁止中断请求 • OUT DX,AL • ⊙ 若允许PB口输出中断请求 • MOV DX,303H ;8255命令口 • MOV AL,00000101B ;置PC2=1,允许中断请求 • OUT DX,AL

  20. 例7.3 图7.13采用一个8255芯片和软盘控制器相连,箭头标明了I/O的方向,根据该图,试写出8255的初始化程序。设8255端口地址为0300-0303H。 图7.13 8255用作软盘基本接口

  21. A口工作在方式2,PC4-PC7作应答联络信号线,PC3用作A组中断请求,B口和PC0-PC2作输出,工作在方式0。  工作方式控制字为:11XXX000B  初始化程序为: MOV DX,303H MOV AL,0C0H OUT DX,AL MOV AL,00001001B OUT DX,AL ;PC4置位,开放输入中断 MOV AL,00001101B OUT DX,AL ;PC6置位,开放输出中断

  22. 例7.4 某应用系统以8255A作为接口,采集一组开关S7~S0的状态,然后通过一组发光二极管LED7~LED0显示开关状态,(Si闭合,则对应LEDi亮,Si断开,则对应的LEDi灭)电路连接如下图,已知8255A、B两组均工作在方式0。例7.4 某应用系统以8255A作为接口,采集一组开关S7~S0的状态,然后通过一组发光二极管LED7~LED0显示开关状态,(Si闭合,则对应LEDi亮,Si断开,则对应的LEDi灭)电路连接如下图,已知8255A、B两组均工作在方式0。 • 写出8255四个端口的地址。 • 写出8255工作方式控制字。 • 画出实现给定功能的汇编语言程序。

  23. LED7 D7~D0 D7~D0 PA7 IOW WR LED0 RD IOR PB0 A9 G1 CS Y0 AEN G2A 8255A A8 74LS138 A7 & G2B S7 A6 A5 PB7 A4 C S0 A3 B A A2 PB0 A1 A1 A0 A0

  24. 答: • A口、B口、C口和控制口的地址分别是320H、321H、322H和323H。 • A口工作在方式0输出,B口工作在方式0输入,C口空闲,所以其控制字是10000010b=82H • 程序如下: MOV AL, 82H ;置方式字 MOV DX, 323H ;置控制端口地址 OUT DX, AL L1: MOV DX, 321H ;置B口地址 IN AL, DX ;读开关状态(1断,0通) NOT AL ;状态取反 MOV DX, 320H ;置A口地址 OUT DX, AL ;输出(1亮,0灭) JMP L1

  25. 思考题: 如果上题要求修改成:不用查询方式,而是每50ms来一次中断,在中断中读B口,输出A口,请问电路和程序要怎么改动?假设系统提供一个2KHz的脉冲。

  26. 7.3 并行打印机接口标准 ◆ Centronics并行打印接口标准

  27. ◆Centronics并行接口时序

  28. 表7.3主机-打印机接口信号连线表

  29.  控制字锁存器 控制字格式  状态端口 状态字格式 微机系统中打印机卡1的地址是: 数据口0378H、状态口0379H、控制口037AH 微机系统中打印机卡2的地址是: 数据口0278H、状态口0279H、控制口027AH

  30. 打印机接口在STB有效时,接收数据,而在BUSY有效时,表示打印机忙,不能接收数据。 例7.5 假设利用8255的A口方式0与打印机相连,将内存缓冲区BUFF中的字符打印输出。

  31. 打印机时序 返回

  32. 图7.14 8255与打印机接口

  33. DATA SEGMENT BUFF DB ‘HELLO,WORLD!’,13,10,‘$’ PORTA EQU 60H PORTB EQU 61H PORTC EQU 62H PORTCN EQU 63H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFF MOV AL,88H ;8255初始化,A口方式0输出,C口上半部输入

  34. OUT PORTCN,AL ;C口下半部输出 MOV AL,01H ;置位PC0,STB无效 OUT PORTCN,AL WAIT:IN AL,PORTC ;读打印机状态,若“忙”则等待 TEST AL,80H JNZ WAIT MOV AL,[SI] CMP AL,‘$’ JZ PRINT_OVER

  35. OUT PORTA, AL ;数据送出 MOV AL, 00H ;产生选通信号,打印机接收数据,开始打印。 OUT PORTCN ,AL MOV AL,01H OUT PORTCN ,AL INC SI JMP WAIT PRINT_OVER: MOV AH,4CH INT 21H CODE ENDS END START 看图

  36. 思考题: 如果改成8255使用方式1,应该怎么连接?程序该怎么编写?

More Related