第七章并行接口与基本人机交互接口习题.docx

上传人:b****8 文档编号:9307470 上传时间:2023-02-04 格式:DOCX 页数:33 大小:96.34KB
下载 相关 举报
第七章并行接口与基本人机交互接口习题.docx_第1页
第1页 / 共33页
第七章并行接口与基本人机交互接口习题.docx_第2页
第2页 / 共33页
第七章并行接口与基本人机交互接口习题.docx_第3页
第3页 / 共33页
第七章并行接口与基本人机交互接口习题.docx_第4页
第4页 / 共33页
第七章并行接口与基本人机交互接口习题.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

第七章并行接口与基本人机交互接口习题.docx

《第七章并行接口与基本人机交互接口习题.docx》由会员分享,可在线阅读,更多相关《第七章并行接口与基本人机交互接口习题.docx(33页珍藏版)》请在冰豆网上搜索。

第七章并行接口与基本人机交互接口习题.docx

第七章并行接口与基本人机交互接口习题

第七章并行接口与基本人机交互接口(邹逢兴)

7.1教学要求

并行接口是微机系统中最常用的接口,而8255A又是微机中应用最广泛和最重要的可编程并行接口芯片,因此要求重点和熟练掌握。

人机交互设备及接口是基本微机系统和任何微机应用系统中必不可少的外设及接口,其中键盘、LED显示器、打印机等基本人机交互设备的接口大多是并行接口的应用,因此对这几种人机交互接口的原理和方法也要求熟练掌握。

具体要求见表7.1。

7.2内容提要

7.2.1并行接口和串行接口

微机与I/O设备的接口按照数据传送方式划分,有并行接口和串行接口两种。

前者使传送数据的各位同时在总线上传输,后者则使数据一位一位地传输。

掌握并行接口和串行接口,要正确理解:

所谓并行与串行,仅指在I/0接口与I/O设备之间有并行、串行之分;就I/O接口和MPU之间而言,都是并行的。

正因为这样,所以两种接口在结构和功能上的主要差别在于:

串行接口需进行并行与串行之间的相互变换,而并行接口无需进行这种变换。

7.2.2简单的并行接口

简单的并行接口是指一些不可编程的并行接口芯片,由数据锁存器和(或)三态门组成。

单纯的三态门只能在各种接口中作为单向或双向的总线缓冲器/驱动器使用;锁存器只能用作输出接口,决不允许作为输入接口使用;只有带三态门输出的锁存器才既可作输入接口用,又可作输出接口用。

7.2.3可编程并行接口芯片8255A

本节着重介绍8255A的内部结构与引脚功能、三种工作方式和控制字。

8255A的寻址与连接,编程及应用则在典型例题中讨论。

1.内部结构与引脚功能

8255A内部由三大部分组成,即:

与外设接口部分、与CPU接口部分和内部控制部分(参阅有关书籍)。

从外部接口特性上看,其外部引线分成两半,如图8.1所示。

左边是与系统总线相连的信号线,与8259、8253/8254等其他芯片原则上没什么不同,不再赘述。

右边则是与外设相连的信号线,其中A口、B口外部引线为PA7~PA0和PB7~PB0,用作输入或输出的数据端口线,C口对应的外部引线分为PC7~PC4和PC3~PC0两部分,既可用于传送数据,又可与A口和B口配合使用,用于传送控制信号或状态信号。

2.8255的工作方式

8255有三种工作方式:

方式0、方式1和方式2,均可通过编程设定。

(1)方式0

方式0又称为基本输入/输出方式。

A、B两组均可工作于方式0。

在此方式下,A、B、C三个端口均为数据输入输出口,其中A口、B口、C口高4位、C口低4位可通过编程选择分别工作于输入或输出状态,所以共有16种不同组合。

方式0既可实现无条件传送,也可使用查询式传送,还可对C口实现按位操作。

无条件传送的特点是只要

有效,就在8255与MPU之间交换数据,而不管此时数据是否稳定。

方式0查询式传送时,使用A口或B口作为数据口,没有固定的应答线,而是由程序设定C口作为应答的控制和状态信息通道。

对C口的按位置位/复位操作则是通过写控制端口实现的。

需要说明的是,在方式0下,A口、B口和C口的输出均有锁存能力,但它们工作于输入时全无锁存能力,也就是说外设的数据要一直加在这些接口上,必须保持到被CPU读走。

(2)方式1

方式1又称为选通或应答输入/输出方式。

A、B两组都有此种工作方式。

在此方式下,A口和B口为输入或输出数据端口;C口的某些位固定为A口和B口的应答控制线和中断请求线,不能用程序加以改变,但要注意输入和输出使用的应答控制线有所不同,且输入与输出、A口与B口所用信号对应于C口的引脚也各不相同。

方式1输入使用

和INTR三个信号,其中:

是外设给8255的选通信号,表示外设的数据已准备好,当

变为低电平时,数据锁存入A口或B口。

●IBF是8255给外设的应答信号,表示输入缓存器满,它由

信号的下降沿置位,由CPU发出的

信号复位。

●INTR为中断请求输出信号,高电平有效。

数据锁存后,可发中断请求,但该中断请求能否发生要由内部中断允许位INTE控制。

INTE的开启可由对C口的按位置/复位操作完成,但要注意A口是对PC4置位,而B口是对PC2置位。

方式1输出则使用

和INTR三个信号,其中:

是输出缓存器满。

该信号是8255发给外设的数据选通信号,

变低电平表示CPU已将数据送至8255,并锁存在相应端口上。

是响应输入。

这是外设对8255发出的

的响应信号,

变低,表明外设已从8255的端口接收到CPU输出的数据。

●INTR与输入时相同,为中断请求输出信号,高电平有效。

同时变高时,INTR变高可发出中断信号,但中断请求能否发生还受内部中断允许位INTE控制。

此时,INTE的开启,A口是对PC6、B口是对PC2置位而实现的。

方式1既可用中断方式传送数据,也可用查询方式传送数据。

(3)方式2

方式2又称为应答式双向输入/输出方式、只有A组具有这种方式。

方式2的功能相当于是方式1的输入和输出功能的结合。

在此方式下,C口的PC3~PC7五条线固定作为应答控制线和中断请求线,各应答信号线功能与方式1下同名信号线相同。

当A口工作于方式2时,B口可按方式0或方式1工作;而C口剩余线的功能则因B口工作方式的不同而异:

B口按方式1工作时,用作应答控制线和中断请求线;B口按方式0工作时,可用作数据端口线。

方式2的数据传送,也是既可用中断方式,亦可用查询方式。

3.8255的控制字和状态字

8255内部有两种控制字,即工作方式控制字和C口按位置位/复位控制字。

工作方式控制字用于设置各端口的工作方式、规定接口功能;而按位置位/复位控制字是专门用于对C口的任何一位实现置“1”或置“0”的控制字。

格式分别如图7.2、图7.3所示。

当8255工作在方式1或方式2时,从C口可以读出各有关信号的状态。

状态字格式可参阅有关书籍,此处从略。

关于控制字要说明几点:

①设置方式控制字时,A口、B口作为整体设置,而C口要分成上、下两部分分别设置。

但三个端口的工作方式均由一个控制字规定。

②C口按位置位/复位控制字不是送到C口地址,而是送到控制寄存器地址;且一个控制字只能使C口一位置位或复位。

③方式控制字和按位置位/复位控制字均写入同一个控制寄存器地址,二者通过最高位D7来区别。

D7=1为方式控制字,D7=0为按位置位/复位控制字。

7.2.4基本人机交互接口

1.键盘与键盘接口

键盘是微型计算机中最基本的输入设备,是人机交互的纽带。

按功能差别,键盘分为编码键盘和非编码键盘。

编码键盘能自动检测按键,并以串/并方式将按键所对应的功能码自动送给CPU。

而非编码键盘只提供键盘的行列矩阵,按键的识别和键值的确定、输入等均由主机软件完成。

对上述两种键盘,要求重点和熟练掌握非编码键盘的接口方法。

而对有触点按键组成的非编码键盘,其接口必须具备去抖动、防串键、识别被按键和产生键码四个基本功能。

其中关键是放按键的识别和键码的产生,它们一般合在一起完成,即只要识别到有键按下,就通过计算或查表产生该键的键码。

按键的识别方法主要有两种:

·线反转法:

通过行、列颠倒两次扫描来识别闭合键。

此法需两个可编程双向I/O端口。

·行/列扫描法:

由程序逐行/列对键盘进行扫描,通过检测列/行状态来确定闭合键。

此法需输入、输出端口各一个。

实际中以行/列扫描法应用较广,因此主要要求掌握它。

2.LED显示器接口

IED显示器是指由发光二极管LED显示字段构成的显示器件,常用的有7段/8段LED显示器。

LED显示器接口有一位和多位之分。

前者较简单,只需在8段LED显示器与MPU之间加一个8位锁存器即可。

而多位LED显示器接口通常有两种方法:

静态显示法和动态显示法。

(1)静态显示法

静态显示法是各位独立驱动的显示方式,相当于多个一位LED显示器接口的组合。

按字段译码方式不同又有软件译码和硬件译码之分,软件译码每位用一个8位并行输出口驱动,而硬件译码每两位用一个8位并行输出口和2个7段/8段译码器驱动。

(2)动态显示法

即动态扫描、分时循环显示的一种多位显示方法。

其原理是利用人眼视觉的滞后效应,使各个数码管轮流显示,每个数码管每次显示1ms左右,造成视觉上的稳定显示。

实现人眼看上去的各位“同时”显示。

以8位LED显示器为例,接口只需两个8位输出口。

一个用于输出显示段码,另一个用于输出显示位码。

这种方法的优点是可简化硬件,降低成本,减小功耗,应用最广泛,因此要求熟练掌握。

3.打印机接口

打印机是微机系统中主要的硬拷贝输出设备,种类繁多,不同打印机的内部结构、打印原理和控制电路有所不同,但接口的原理是相似的。

要求重点掌握并行打印机的接口原理及方法。

(I)Centronics并行接口标准

打印机从外部接口特性看,可分为串行打印机和并行打印机两类。

前者采用RS—232—C串行接口标准,后者采用Centronics并行接口标准。

目前多数打印机为并行打印机,所以主要要求学握基于Centronics标准的并行打印机接口原理与方法。

Centronics标准定义了36芯插头座。

其中最主要的是8位并行数据线,两根握手联络信号线

和一根忙线BUSY。

它们的工作时序如图7.4所示。

图7.4并行打印机接口时序

(2)并行打印机接口方法

由图7.4可知,采用Centronics接口标准的并行打印机工作过程为:

当主机往打印机输出打印数据时,首先查询“忙”信号(BUSY),如果“不忙”,才能向打印机输出数据。

在把数据送到数据线上后,先发

信号通知打印机;打印机接到选通信号后,先发出“忙”信号,再从接口接收数据。

当数据接收完并存入内部的打印缓冲器后,便送出

信号,表示打印机已准备好接收新数据,同时在

脉冲的后沿使BUSY撤消。

7.3典型题型及例题精解

本单元内容主要涉及可编程并行接口芯片8255A的接口特性、工作方式、应用编程,以及几种常用人机交互设备的基本工作原理和接口原理、方法。

其考核题型主要是有关8255A的接口特性、工作方式和常用人机交互接口基本原理的简答题、选择题、填空题、判断题,以及8255A的编程、应用和人机交互接口分析、设计等方面的综合应用题。

例7.1填空题

1.8255A把(A口和C口的上半部分)和(B口和C口的下半部分)分别称为A组和B组,可组成两个独立的并行接口。

2.8255A中,A组有(3)种工作方式,它们是(方式0、方式1和方式2),B组有

(2)种工作方式,它们是(方式0和方式1)。

当A组工作于方式2时,B组可以工作于(方式0或方式1)。

3.当8255A的PC4~PC7全部为输出线时,表明8255A的A端口的工作方式是(方式0)。

4.8255A工作于方式0时,(A、B和C)口输入没有锁存能力。

5.8255芯片工作于方式1的输入模式时,该芯片与外设的联系信号有(

和IBF)。

6.当数据从8255的端口C往数据总线上读出时,8255的几个控制信号

、A1、A0、

分别是(0、1、0、0、1)。

7.现行PC机中,台式打印机与主机的接口大多采用(Centronics)接口。

设计算机的每个I/O端口为8位。

现有一个64健的键盘,如果采用线性键盘结构,至少需要(8)个端口;如果采用矩阵键盘结构,至少需要

(2)个端口。

分析:

如果采用线性键盘结构,64个键就是64位。

因此需要8个8位的端口。

如果采用矩阵键盘结构,用8×8矩阵结构,则只需要两个端口,一个用作行/列输出,一个用作列/行输入。

9.在矩阵式键盘结构中,识别被按键位置的方法有(行/列扫描法和线反转法)。

10.对于共阴极连接的7段数码显示器,如果要使某一段发光,则需要在对应的段输入引脚上输入(TTL高电平)。

例7.2选择题

1.并行接口和串行接口的区别主要表现在之间的数据传输前者是并行,后者是串行。

A.接口与MPUB.接口与外设C.接口与MPU和外设

2.8255A工作方式中具有中断请求功能的是:

A、方式0B、方式1C、方式2

3.一台微机化仪器采用8255A芯片作数据传送接口,并规定使用I/O地址的最低两位作芯片内部寻址,已知芯片A口地址为0F4H,则当CPU执行输出指令访问0F7H端口时,其操作为。

A.数据从端口C送数据总线B.数据从数据总线送端口C

C.控制字送控制寄存器D.数据从数据总线送端口B

4.并行接口芯片8255A与打印机的连线如图7.5所示,当A15~A2=00000000110000时,经地址译码器输出使

=0。

(1)口A的工作方式应为

A.方式0B.方式1C.方式2D.方式0或方式1均可

(2)口C的工作方式应为

A.方式0B.方式1

C.方式2D.方式0或方式2均可

(3)I/O传送的控制方式为方式。

A.无条件传送B.查询或中断

C.中断D.查询

(4)8255口C的地址为。

A.00C0HB.00C1HC.00C2HD.00C3H

(5)8255口A的地址为。

A.00C0HB.00C1HC.00C2HD.00C3H

分折:

根据图中打印机与8255A的握手信号线的连接关系,可知8255A并没有用固定的应答线,也未使用中断,所以口A只可能工作在方式0;而口C在作为一个独立端口时,只有方式0一种工作方式。

所以A口、C口均工作在方式0。

在方式0下,I/O同步控制方式可以是无条件传送或查询式传送,由图中打印机与8255A使用两条非固定握手信号线,可知I/O同步控制方式是查询式,即只有打印机非“忙”时,才能输出数据。

关于口地址的计算方法参见上题,但此题中要注意:

最低两位地址线A1、A0并没有对应地接到芯片的内部端口选择线A1A0上,而是颠倒了顺序。

5.当8255A被设定成方式1时,其功能相当于。

A.0线握手并行接门B.1线握手并行接口

C.2线握手并行接口D.多线握手并行接口

分析:

8255A在方式1下,无论输入还是输出均使用二根握手联络信号,输入使用

和IBF;而输出使用

6.8255A有两种控制字,其中工作方式控制字一定。

A.不等于80HB.小于等于80HC.大于等于80H

7.8255A工作在方式1的输入状态时,可以通过信号知道端口是否已经准备好了输入的数据。

A.READYB.

C.

D.INTR

分折:

当外部输入设备通过工作在方式1的8255A与CPU相连接时,如果外部设备的输人数据已经送到端口的数据输入缓冲器锁存,则IBF变高,此时若中断是允许的,即INTE为高时,则INTR也变高,可通过INTR向CPU发出中断请求或查询INTR状态,来判明外设数据是否难备好,所以选D。

8.当8255A的端口A和端口B都工作在方式1输入时,端口C的PC7和PC6。

A.被禁止使用B.只能作为输入使用

C.只能作为输出使用D.可以设定为输入或输出使用

9.PC系列机键盘常采用单片机作为键盘控制器,它通过一条5芯电缆向主机提供键的。

A.BCD码B.二进制码C.扫描码D.ASCII码

分折:

PC系列机键盘是属于非编码键盘与编码键盘之间的一种键盘,内部的单片机能自动识别键的按下与释放,自动生成相应的扫描码,并以串行方式送往主机箱。

需要说明的是这种扫描码只是键的行列位置码,并没有提供与键的含义和功能直接对应的键值或键码,键码(ASCII码)的产生需由主机通过软件完成。

所以,从这个角度看,PC键盘又不具备编码键盘的特征。

例8.3判断题

1.8255A工作于方式2时,A口、B口均作为双向数据传送端口,C口各位作为它们的应答控制线。

(×)

2.在微机系统中,一般都要为键盘、显示器、打印机等人机交互设备在内存或接口中建立一个相应的数据缓冲区。

这类I/O缓冲区的操作与堆栈一样,也是先进后出、后进先出。

(×)

分析:

键盘、显示器、打印机等人机交互设备的数据缓冲区采用的是队列结构,其进出原则是先进先出。

3.8255工作在方式1或方式2时,其状态字通过读控制端口获得。

(×)

分析:

8255的状态字应通过读C端口获得。

4.微机系统中,各模块发出的总线请求、总线忙、中断请求之类的控制信号,一般采用OC门作为输出驱动电路。

(√)

分析:

I/O端口线不外乎有OC输出的I/O端口线、三态输出的I/O端口线和伪双向I/O端口线三类。

其中OC输出的I/O端口线有一个十分重要的特性,即多个信号在端口总线上直接相连时能够实现几个低电平有效信号的“线或”功能,也即不管哪个模块的输出端有低电平(有效)输出,这根线上的信号状态都有效。

所以,特别适合于传输低电平有效的“多源合一”式总线信号。

因此,微机系统中,各模块发出的总线请求、总线忙、中断请求之类的控制信号,一般采用OC门作为输出驱动电路。

而与OC输出的I/O端口相比,三态输出的I/O端口在没有I/O操作时其输出端是处于第三态——高阻态,对所连的外总线没有影响,这一特性特别适合于多数据源利用公共总线传输数据的需要。

所以,对于总线的接口,数据总线、地址总线和大部分控制总线都是采用三态方式。

5.对多位LED显示器,既可采用各位独立驱动的显示方式,又可采用各位动态扫描、分时显示的方法。

(√)

例7.4接口电路8255A工作于方式1中,CPU如何以中断形式将输入设备的数据读入。

答:

当外设涟备好数据送至8255A的端口数据线时,向8255A发选通信号

;8255A利用该信号把端口数据锁存至锁存器,并使IBF变为高送给外设,表明数据已经锁存但尚未读走。

同时,在INTR允许中断状态下,IBF变高也使INTR变高,向CPU发中断请求。

CPU接受中断请求后,在中断服务程序中,执行一条读端口指令,将存于缓冲器中的数据读走。

同时,

信号的下降沿使INTR复位,上升沿使IBF复位。

又可开始下—个输入过程。

例7.5如图7.6所示,CPU检测开关S0~S7的通断状态,并在LED0~LED7对应位上显示(开关闭合时对应灯亮),问:

(1)Ul是,U2是。

A.译码器B.D/A转换器

C.三态缓冲器D.采样保持器

E.锁存器F.光藕

(2)编写完成检测开关状态并显示的子程序片段(U1、U2均为同相I/O口)。

解:

(1)由图可知U2用于输入开关状态,其输出直接与数据总线相连,所以要采用三态缓冲器,以避免总线冲突。

U1用于输出控制LED7~LED0显示,应具有锁存功能,以保证正确显示。

所以,U1是锁存器(E)、U2是三态缓冲器。

(2)MOVDX,80H

INAL,DX;读人S0~S7的通断状态

NOTAL;状态位按位求反

OUTDX,AL;状态写入,驱动LED

例7.6分析图7.7所示的电路,指出其中的错误并说明其后果,图中三态门为PC微型机的输入接口,其地址为100H。

解:

这是一个用三态门接口输入开关状态的接口电路。

图中存在三处错误:

(1)使用

参数译码,得到的是一个输出口,而不是输入口。

应改为

(2)图中使用“或非”门进行地址译码,除了A9~A0=100H这—种状态外,其他组合均使“或非”门输出低电平,即大部分时间,三态门是直通的,这将使开关输入状态直接送上数据总线,从而导致总线冲突。

应将“或非”门改为“或”门。

(3)开关K的位置接错。

当开关K闭合时,反向器输入为高电平;开关K打开时,反向器输入端悬空,而悬空亦常解释为高电平且状态不稳定,因而无法获得正确的开关状态。

正确接法见图7.8。

例7.7两按钮K1和K2如图7.9所示。

若给定接口地址E000H~E00FH可任意选用。

(1)试自定接口芯片,将此两按钮接到8086/8088的系统总线上,画出连接图。

(2)编写程序,实现如下功能:

若K1、K2均未按下,则程序等待;若K1按下,则程序转向PGR1;若K2按下,则程序转向PGR2;若Kl、K2同时按下,则程序转向NEXT。

当Kl、K2同时按下时,允许有30ms的时间差。

解:

这是一个简单的接口问题,可选用三态门作输入接口、门电路作地址译码。

电路连接如图7.10所示。

由图可知,此接口占用E000H~E00FH范围的地址,编程时可任选其中一个地址。

当按钮未按下时,三态门输入为高电平;而当按钮按下时,三态门输入则为低电平。

由此可编制识别按键,控制程序转移的驱动程序如下:

START:

MOV

DX,0E000H

;读按钮状态

NOT

AL

TEST

AL,03H

;有按钮按下?

JZ

START

;无,等待

CALL

DELAY

;延时20ms去抖动

IN

AL,DX

;读按钮状态

NOT

AL

AND

AL,03H

;有按钮按下?

JZ

START

;无,等待

CMP

AL,03H

;K1、K2同时按下?

JZ

NEXT

;是,转NEXT

CMP

AL,01H

;K1按下?

JZ

PRG1

;是,转PRG1

JMP

PRG2

;K2按下,转PRG2

分析:

设计按钮或键盘接口时,要考虑去抖动问题。

同样考虑两个按钮同时按下时,也需要延时检测,因为两个按钮实际上不可能做到真正的同时,总有十几到几十ms的时间差。

这是一个实际的工程问题,在真正的工程应用中必须加以考虑。

例7.8PC系列微机应用系统以8255A作为接口,采集一组开关S7~S0的状态,然后它通过一组发光二极管LED7~LED0显示出来,(Si闭合,对应LEDi亮;Si断开,对应LEDi灭),电路连接如图7.11所示。

已知8255A的A、B两组均工作在方式0。

(1)写出8255A四个端口地址;

(2)写出8255A的工作方式控制字;

(3)画出实现给定功能的汇编语言程序流程图,并编写程序。

解:

由图可知:

8255A的A口工作在方式0出,B口工作在方式0入。

当:

A9A8A7A6A5A4A3A2=11001000时,74LS138的

输出低电平,选中8255A。

由此可解:

(1)8255AA口、B口、C口和控制口地址分别为:

320H,321H、322H、323H。

(2)8255A的工作方式控制字:

82H(未用的位为0)。

(3)程序流程图如图7.12所示,程序如下:

MOV

AL,1000×01×B

MOV

DX,323H

OUT

DX,AL

;8255A初始化

DEC

DX

DEC

DX

IN

AL,DX

;读B口

NOT

AL

;状态值按位求非

DEC

DX

OUT

DX,AL

;状态写入A口,驱动LED

HLT

例8.9某由软件译码的多路复用4位LED显示器接口电路,如图7.13所示。

图中4个7段LED复用一个8255A的端口A和一个反向驱动器。

为使LED显示器的各位能显示不同的数字,各个显示器不同时发亮,每个LED显示器的公共阴极由8255A端门B的一条输出线控制,只有阴极为低电平时,该LED显示器才能发亮。

在接口电路中数据和数位控制均有规律地不断更新(即扫描或刷新)。

对每个LED显示器来说只按顺序固定显示某一定的短暂时间(例如1ms),当刷新速度够大时,由于视觉暂留现象,感觉4个LED显示器同时发亮且无闪烁感。

若待显示字符为分离的BCD代码(在数据段DISBUF为首的存贮单元),其相应的显示代码表已存贮在数据段中DISCODE为首的存贮单元,试分析该接口电路,回答问题,完成该接口电路的刷新显示程序的编程(若每个LE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1