习题9-并接口8255

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题9 并行接口

主要内容:8255的外部特性、内部结构,初始化编程,应用。

9.1 8255A的3个端口在使用时有什么差别?

【答】(1)端口A对应1个8位数据输入锁存器和1个8位数据输出锁存器/缓冲器。所以,用端口A作为输入或输出时,数据均受到锁存(与工作方式有关)。(2)端口B对应1个8位数据输入缓冲器和1个8位数据输出锁存器/缓冲器。(3)端口C对应1个8位数据输入缓冲器和1个8位数据输出锁存器/缓冲器。这样,当端口C作为输入端口时,对数据不做锁存,而作为输出端口是,对数据进行锁存。在使用中,端口A和端口B常常作为独立的输入端口或输出端口,端口C则配合端口A和端口B的工作。具体的讲,端口C常常通过控制命令被分成2个4位端口,每个4位端口包含1个4位的输入缓冲器和1个4位的输出锁存器/缓冲器,它们分别用来为端口A和端口B提供控制信号和状态信号。

9.2 8255A的方式0一般使用在什么场合?在方式0时,如要使用应答信号进行联络,应该怎

么办?

【答】方式0的使用场合有两种,一种是同步传送,另一种是查询式传送。在方式0情况下,没有规定固定的应答信号,所以,这时,将端口A端口B作为数据端口,把端口C的4个数位(高4位或者是低4位均可)规定为输出口,用来输出一些控制信号,而把端口C的另外4个数位规定为输入口,用来读入外设的状态。就是这样,利用端口C来配合端口A和端口B 的输入/输出操作。

9.3当数据从8255A的端口C往数据总线上读出时,8255A的几个控制信号CS、A1、A0、RD、WR

分别是什么?

【答】 CS0、A11、A00、RD1 、WR0。

9.4 8255A的方式选择控制字和置1/置0控制字都是写入控制端口的,那么,它们是由什么来

区分的?

【答]】当8255A接收到写入控制口的控制字时,就会对最高位即标志位进行测试。如为1,则将此字节作为方式选择控制字写入控制寄存器;如为0,则此字节作为对端口C的置1/置0控制来处理。

9.5 对8255A设置工作方式,8255A的控制口地址为00C6H。要求端口A工作在方式1,输入;

端口B工作在方式0,输出;端口C的高4位配合端口A工作;低4位为输入。(口地址为80H~83H)

【答】控制字:10110001=B1H

MOV AL ,B1H

OUT 83H ,AL

9.6 设8255A的4个端口地址为00C0H,00C2H,00C4H,00C6H,要求用置0/置1方式对PC6

置1,对PC4置0。

【答】MOV AL,00001101H ;对PC6置1的控制字

MOV DX,00C6H ;控制地址DX

OUT DX,AL ;对PC6置1操作

MOV AL,00001000H ;对PC4置0的控制字

OUT DX,AL

9.7 编一初始化程序,使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲则

初始化程序又是什么情况?

【答】初始化程序:

MOV AL,0000 1011 H ;PC5置“1”控制字→AL

MOV DX,046H ;控制口地址→DL

OUT DX,AL ;置“1”控制字→控制寄存器

MOV AL,00001010B ;PC5置“0”控制字→AL

OUT DX , AL ;置“0”控制字→控制寄存器

如果要求PC5输入一个负脉冲则再加两条指令:

MOV A L ,00001011

OUT DX,AL

9.8 8255A与打印机的接口如图10-1,8255为工作方式0,试编写初始化程序。若要将DL中的

字符送到打印机打印,编写打印程序。(口地址为60H~63H)

图10-1

【答】工作过程:当主机要往打印机输出字符时,先查询打印机忙信号,如

果打印机正在处理一个字符或在打印一行字符,则忙信号为1,否则为0。

PP:MOV AL,81H ;8255工作方式字

OUT 63H,AL ;A口方式0,输出,C4~7输出,C0~3输入

MOV AL,00001111B ;PC7置1,禁止STB

OUT 63H,AL

LPST:IN AL,62H ;读C口

AND AL,01H ;查PC0=0?

JNZ LPST ;忙,等待;不忙,送数

MOV AL,DL ;CL中字符送端口A

OUT 60H,AL ;送数到A口

MOV AL,00001110B ;将PC7置0(使STB有效)

OUT 63H,AL ;AL= 0000 1100 B

NOP ;延时

MOV AL, 0000 1111 ;AL=0000 1111 B

OUT 63H,AL ;再使STB(PC7)为1

9.9设一工业控制系统,有四个控制点,分别由四个对应的输入端控制,现用8255A的C口实

现该系统的控制,如图10-2。开关K0~K3打开则对应发光二极管L0~L3亮,表示系统该控制点运行正常;开关闭合则对应发光二极管不亮,说明该控制点出现故障。编写8255A的初始化程序和这段控制程序。

图10-2

【答】参考程序如下:

MOV AL,10000001B

OUT 63H,AL ;8255方式设置

L1: IN AL,62H ;查询K0状态

TEST AL,01H

JZ L11

MOV AL,00000001B

OUT 63H,AL ;正常,L0亮

JMP L2

L11: MOV AL,00000000B ;不正常,L0灭

OUT 63H,AL

L2: IN AL,62H ;查询K1状态

TEST AL,02H

JZ L21

MOV AL,00000011B

OUT 63H,AL

JMP L3

L21: MOV AL,00000010B

OUT 63H,AL

L3: IN AL,62H ;查询K2状态

TEST AL,04H

JZ L31

MOV AL,00000101B

OUT 63H,AL

JMP L4

L31: MOV AL,00000100B

OUT 63H,AL

L4: IN AL,62H ;查询K3状态

TEST AL,08H

JZ L41

MOV AL,00000111B

OUT 63H,AL

JMP L1

L41: MOV AL,00000110B

OUT 63H,AL

JMP L1 ;循环查询K0状态

10.108255芯片的A口和B口分别与8个LED灯和8个开关连接好,通过开关控制LED等

的开和闭。8255的端口地址为40, 42, 44和46H。画出译码电路图,编写初始化程序和控制程序。

【答】参考程序如下:

MOV AL,10000010B

OUT 46H,AL ;8255方式设置

L1: IN AL,42H ;读B口开关状态

OUT 40H,AL ;写A口控制LED

相关文档
最新文档