习题9-并接口8255
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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