当前位置:文档之家› 第九章:通用可编程接口芯片

第九章:通用可编程接口芯片

第九章:通用可编程接口芯片
第九章:通用可编程接口芯片

第九章:通用可编程接口芯片

一、选择题

1、8255A引脚信号WR=0,CS=0,A1=1,A0=1时,表示(CPU向控制口送控制字)

2、8255A A组工作于方式O,B组工作于方式1,A口输出,B口输入,设计工作方式选择控制字为(10000110B)

3、8255A工作于方式1输入时A口(B口)INTE是受(PC4(PC2))控制的。

4、对8255的C口D3位置1的控制字为(00000111B )。

5、8255的(端口C)一般用作控制或状态信息传输。

二、填空题

1、8255A控制命令字中,若D7=1为方式选择控制命令字,若D7=0时为C端口置0置1命令字。

2、当8255A的PC4~PC7全部为输出线时,表明8255A的A端口的工作方式是0方式

3、若使8086与8255A连接时8086引脚A1和A2与8255A的A0、A1连接。

4、当8255A引脚RESET信号为高电平有效时,8255A内部所有寄存器内容被清零,同时三个连接数据端口被自动设置为输入端口。

5、8255方式0用于A口和C口高4位输出,B口和C口低4位输入,控制字为(83)H。

三、判断题

1、8255A工作于方式O,端口C两部分可以独立的作为输入或输出端口。(√)

2、8255A C口按位置位/复位控制字是写入C口的控制字。(×)

四、简答题

1、可编程并行接口芯片8255A有哪几种工作方式?每种工作方式有何特点?【解答】方式0:没有固定的用于应答式传送的联络信号线,CPU可以采用无条件传送方式与8255A交换数据。方式1:有专用的中断请求和联络信号线,因此方式1通常用于查询传送或中断传送方式。方式2:PA口为双向选通输入/输出或叫双向应答式输入/输出。

2、对8255A的控制口写入B0H,其端口C的PC5引脚是什么作用的信号线?试分析8255A各端口的工作状态。当控制字为B0H时,即10110000B,端口A工作在方式1,作输入,端口C的上半部作输出,B端口工作在方式0,作输出,端口C的低4位作输出。当8255A的端口A工作在方式1下作输入时,PC5的引脚作状态信号IBFA,即输入缓冲器满信号。

3、编一个初始化程序,使8255A的PC5端输出一个负跳变。如果要求PC5端输入一个负脉冲,则初始化程序又是什么情况?

MOV AL,0BH

MOV DX,控制端口地址

OUT DX,AL

MOV AL,0AH

OUT DX,AL

输出负脉冲时需要增加以下两句:

MOV AL,0BH

OUT DX,AL

4、设8255A的4个端口地址为0060H-0063H,试写出下列各种情况的工作方式命令字。(1)A组B组工作在方式0,A口B口为输入口,C口为输出口。(2)A组工作在方式2,B组工作在方式1,B口为输出口。(3)A组B组都工作在方式1,均为输入口,PC6和PC7为输出。

答:(1)92H(2)C4H(3)B6H

5、简述8255A工作在方式1输出时的工作过程

a:CPU接受中断请求,使用OUT指令向8255A输出数据并发写信号WR,WR信号的上升沿一方面清除INTR中断请求信号,表示已响应中断,另一方面使OBF有效。b:OBF信号有效表示输出缓冲区已满,通知外设取走数据。c:外设接收数据,将ACK信号置为"0",即向8255A发回答信号,表示已收到数据。ACK的下降沿使OBF轩"1",表示数据已取走。ACK的上升沿使INTR有效。d:INTR有效,向CPU发中断请求,请求输出下一个数据。

6、8255A的方式0一般使用在什么场合?在方式0时,如果要使用查询方式进行输入输出,应该如果处理?

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

五、综合题

1、设8253芯片的计数器0、计数器1和控制口地址分别为04B0H、04B2H、04B6H。定义计数器0工作在方式2,CLK0为5MHz,要求输出OUT0为1KHz 方波;定义计数器1用OUT0作计数脉冲,计数值为1000,计数器减到0时向CPU发出中断请求,CPU响应这一中断请求后继续写入计数值1000,开始重新计数,保持每一秒钟向CPU发出一次中断请求。试编写出对8253的初始化程序,并画出硬件连接图。

【解答】由题目知计数器1工作在方式0下,参考程序段如下:

;计数器0初始化

MOV AL,34H

MOV DX,04B6H

OUT DX,AL

;计数器0赋初值

MOV AX,5000

MOV DX,04B0H

OUT DX,AL

MOV AL,AH

OUT DX,AL

;计数器1初始化

MOV AL,72H

MOV DX,04B6H

OUT DX,AL

;计数器1赋初值

MOV DX,04B2H

OUT DX,AL

MOV AL,AH

OUT DX,AL

连接图如下所示:

三八译码器

A7

A6

A5

INTR

图8-1 硬件连接图

2、将8253定时器0设置为方式3(方波发生器),定时器1设置为方式2(分频器)。要求定时器0的输出脉冲作为定时器l的时钟输入,CLK0连接总线时钟4.77MHz,定时器1输出OUT1约为40Hz,试编写实现上述功能要求的程序。

【解答】参考程序段如下:

;0号计数器初始化

MOV AL,16H

MOV DX,PORTC

OUT DX,AL

;0号计数器赋初值

MOV DX,PORT0

OUT DX,AL

;1号计数器初始化

MOV AL,54H

MOV DX,PORTC

OUT DX,AL

;1号计数器赋初值

MOV AL,100

MOV DX,PORT1

OUT DX,AL

注:PORT0、PORT1、PORTC分别为0号、1号和控制口的地址。

3、某8255A的端口地址范围为03F8H~03FBH,A组和B组均工作在方式0,A口作为数据输出端口,C口低4位作为状态信号输入口,其它端口未用。试画出该片8255A与系统的连接图,并编写初始化程序。

【解答】

连接图如下:

A7

A6

A5

三八译码器

图9-1 8255A与系统的连接图

程序如下:

MOV AL,81H

MOV DX,03FBH

OUT DX,AL

4、试按以下要求对8255A进行初始化编程:

(1)设端口A、端口B和端口C均为基本输入/输出方式,且不允许中断。请分别考虑输入/输出。(2)设端口A为选通输出方式,端口B为基本输入方式,端口C剩余位为输出方式,允许端口A中断。(3)设端口A为双向方式,端口B为选通输出方式,且不允许中断。

【解答】(1)端口A、端口B和端口C均为基本输入/输出方式,则为方式0,任何一个口都可用于输入或输出,可出现16种组合,这里只举出2种组合。

若端口A、B为数据输入口;C口的低4位为控制信号输出口,高4位为状态信号输入口,程序段如下:

MOV AL,10011010B

MOV DX,PORT ;PORT为端口地址

OUT DX,AL

MOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL

若端口A、B为数据输出口;C口的高4位为控制信号输出口,低4位为状态信号输入口,程序段如下:

MOV AL,10000000B

MOV DX,PORT ;PORT为端口地址

OUT DX,AL

MOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL

(2)端口A为选通输出方式,方式1;端口B为基本输入方式,程序段如下:MOV AL,10100010B

MOV DX,PORT ;PORT为端口地址

OUT DX,AL

MOV AL,00001101B ;设PC6为中断信号控制引脚,PC6=1,允许中断OUT DX,AL

(3)端口A为双向方式,方式2;端口B为选通输出方式,程序段如下:MOV AL,11000100B

MOV DX,PORT ;PORT为端口地址

OUT DX,AL

MOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL

4、一般按一次键,CPU通过程序可以判别是否有键按下,并识别具体的键值。若键扫描程序处理不当,可能会出现下述情况:仅按一次键,但CPU识别为同一个键多次被按下,试分析可能发生这种情况的原因。

【解答】通过程序判别按键,需要考虑按键的消抖问题,若采用软件方法进行消抖需要设置延时等待抖动消失,然后再读入键值。分析题中可能发生这种情况的原因是:键扫描程序没有设置延时或延时时间过短,没能有效的消除抖动

设8255A接到系统中,端口A、B、C及控制口地址分别为220H、221H、222H 及223H,工作在方式0,试编程将端口B的数据输入后,从端口C输出,同时,将其取反后从端口A输出。

解:MOV DX,223H

MOV AL,82H

OUT DX,AL

MOV DX,AL

MOV AL,221H

IN AL,DX

MOV DX,222H

OUT DX,AL

NOT AL

MOV DX,220H

OUT DX,AL

5、8255A的A口和B口工作在方式0,A口为输入端口,接有7个开关;B口为输出端口,接有1个7段发光二极管,其硬件连接电路如图10.18所示,LED 显示0-FH的各字符代码列表如表10-3。试编一程序要求7段发光二极管显示开关所拨通的数字。(其中A口地址8020H B口地址8022H C口地址8024 控制口地址8026)

答:源程序如下:

APORT EQU 8020H

BPORT EQU 8022H

CPORT EQU 8024H

CONTR EQU 8026H

DATA SEGMENT

TAB1 DB 3FH,06H,5BH,4FH,66H,7DH,07H DB 7FH,6FH,77H,7CH,5EH,79H,71H DATA ENDS

CODE SEGMENT

ASSUME: CS:CODE DS:DATA START: MOV AX,DATA

MOV DS,AX

MOV AL,90H

MOV DX,CONTR

OUT DX,AL

ADDR1: MOV DX,APORT

IN AL,DX

AND AL,OFH

MOV BX,OFFSET TAB1

XLAT

MOV DX,BPORT

OUT DX,AL

MOV CX,0400H

ADDR2: DEC CX

JNZ ADDR2

JMP ADDR1

CODE ENDS

END START

6、可编程并行接口芯片8255A面向I/O设备一侧的端口有几个?其中C口的使用有哪些特点?

8255A面向I/O设备一侧有3个8位的端口:A口、B口和C口,或者说有2个8位的端口(A口、B口)和2个4位的端口(C上、C下)。

其中,C口比较特殊,它的特点主要有:作为数据口,可分为两个独立的4位口(C上、C下)使用;1方式和2方式时,C口的部分引脚作为A、B口的固定联络信号线;1方式和2方式时,C口作为状态口使用;C口的引脚可以用按位置/复位命令字进行按位控制。

7、可编程并行接口芯片8255A的编程命令有哪两个?试分别说明它们的作用及其命令格式中每位的含义是什么?

8255A有两个编程命令:方式命令字和C口按位置/复位命令字。

方式命令字:用于对8255A进行初始化编程,设定A、B、C口的工作方式及传送方向,其命令格式及各位含义如下:

。。。。。

C口按位置/复位命令字:用于对8255A进行动态控制,在应用过程中,需要对C口的某个引脚进行按位操作时使用,对已设定好的工作方式无影响,其命令字格式及各位含义如下:

。。。。。

8、 “由于按位置/复位命令字是对C 口进行操作,所以可以写到C 口”,这句话对吗?为什么?

这句话不对,因为“按位置/复位命令字”是命令字的格式,必须写入到控制口,如果写入到C 口就作为一个普通的数据,完成的功能完全不同。 9、如何对8255A 进行初始化编程?

对8255A 进行初始化编程主要是写入方式字,设置所使用的每个数据口的工作方式及传送方向。另外,如果有必要,在初始化时还要写入将PC 某个引脚置1或清0的命令字(C 口按位置/复位命令字)。

10、可编程并行接口芯片8255A 有哪几种工作方式?各自的特点何在? 8255A 有3种工作方式,其中A 口可工作于方式0、方式1和方式2;B 口只能工作于方式0和方式1。

方式0的特点:①是基本输入/输出方式,输出有锁存功能,输入有缓冲功能,采用无条件方式或查询方式与CPU 交换信息;②2个8位口和2个4位口,24根I/O 信号线全部由用户控制;③无专用联络信号线;无固定时序;无确定的状态字;④单向I/O

方式1的特点:①是选通(应答)输入/输出方式,输入、输出都具有锁存功能,采用查询方式或中断方式与CPU 交换信息;②A 、B 口作为数据口,C 口部分引脚作专用联络信号线,这些信号线用户不能指定为其他用途;③有专用联络信号线;有固定时序;有确定的状态字;④单向I/O

方式2的特点:①A 口为双向选通(应答)输入/输出方式,采用查询方式或中断方式与CPU 交换信息;②有专用联络信号线;有固定时序;有确定的状态字;

1:置位

0:复位

联络线定义、时序及状态字都是方式1输入和输出的组合。

11、在1方式下输入和输出时,其专用联络信号是如何定义的?联络信号线之间的工作时序关系如何?

1方式下输入时,定义了8255A 与I/O 之间的2根相互联络信号线,还在8255A 与CPU 之间设置了中断申请信号线:

:外设给8255A 的“输入选通”信号,低有效,将数据送入8255A ;

IBF :8255A 给外设的“输入缓冲器满”信号,高有效,阻止外设送新数据; INTR :8255A 给CPU 的“中断申请”信号,高有效,请求CPU 读取数据。

联络信号之间的时序关系:

I/O 设备

STB IBF

① ② 1方式下输出时,定义了8255A 与I/O 之间的2根相互联络信号线,还在8255A 与CPU 之间设置了中断申请信号线:

:8255A 给外设的“输出缓冲器满”信号,低有效,通知外设取数据;

:外设给8255A 的“回答”信号,低有效,通知8255A 数据已取走;

INTR :8255A 给CPU 的“中断申请”信号,高有效,请求CPU 写入下一个数据。

联络信号之间的时序关系:

CPU

设备

WR INTR

④ ① 12、现有一四相步进电机,按双八拍方式运行。要求: 设计接口电路(根据本题(2)的要求设计);

编制下列控制程序:①上电后,步进电机来回走100步,当按下SW1开关时,停止走步;②步进电机先向一个方向连续慢走,当开关SW1按下时,快速反走,直到按下SW2时才停机;③对步进电机进行点动控制,即每按一次SW1开关,

STB OBF

ACK

步进电机就走一步,按SW2停止运行;④在键盘上按S键和s键,启动步进电机开始走步;按SW1键停止;

画出四个控制程序的流程图。

四相电机,双八拍方式各相绕组循环轮流通电的方式为:

AB→ABC→BC→BCD→CD→CDA→DA→DAB

相序表如下:

利用PB 口作为数据口,传送加电代码;PC 口检测两个按键开关,硬件设计如图所示:

初始化流程图如图(a )所示,4个控制程序的流程图如图(b )、(c )、(d )、(e )所示:

(a)初始化

初始化程序段

MOV DX,303H MOV AL,81H OUT DX,AL MOV AL,0FH OUT DX,AL

相关主题
文本预览
相关文档 最新文档