1、方式0既可实现无条件传送,也可使用查询式传送,还可对C口实现按位操作。无条件传送的特点是只要或有效,就在8255与MPU之间交换数据,而不管此时数据是否稳定。方式0查询式传送时,使用A口或B 口作为数据口,没有固定的应答线,而是由程序设定C口作为应答的控制和状态信息通道。对C口的按位置位复位操作则是通过写控制端口实现的。需要说明的是,在方式0下,A口、B口和C口的输出均有锁存能力,但它们工作于输入时全无锁存能力,也就是说外设的数据要一直加在这些接口上,必须保持到被CPU读走。(2)方式1方式1又称为选通或应答输入输出方式。A、B两组都有此种工作方式。在此方式下,A口和B口为输入或输出数据端口;
2、C口的某些位固定为A口和B口的应答控制线和中断请求线,不能用程序加以改变,但要注意输入和输出使用的应答控制线有所不同,且输入与输出、A口与B口所用信号对应于C口的引脚也各不相同。方式1输入使用、和INTR三个信号,其中:是外设给8255的选通信号,表示外设的数据已准备好,当变为低电平时,数据锁存入A口或B口。 IBF是8255给外设的应答信号,表示输入缓存器满,它由信号的下降沿置位,由CPU发出的信号复位。 INTR为中断请求输出信号,高电平有效。数据锁存后,可发中断请求,但该中断请求能否发生要由内部中断允许位INTE控制。 INTE的开启可由对C口的按位置复位操作完成,但要注意A口是对PC4
3、置位,而B口是对PC2置位。方式1输出则使用是输出缓存器满。该信号是8255发给外设的数据选通信号,变低电平表示CPU已将数据送至8255,并锁存在相应端口上。是响应输入。这是外设对8255发出的的响应信号,变低,表明外设已从8255的端口接收到CPU输出的数据。 INTR与输入时相同,为中断请求输出信号,高电平有效。当和同时变高时,INTR变高可发出中断信号,但中断请求能否发生还受内部中断允许位INTE控制。此时,INTE的开启,A口是对PC6、B口是对PC2置位而实现的。方式1既可用中断方式传送数据,也可用查询方式传送数据。(3)方式2方式2又称为应答式双向输入输出方式、只有A组具有这种方
4、式。方式2的功能相当于是方式1的输入和输出功能的结合。在此方式下,C口的PC3PC7五条线固定作为应答控制线和中断请求线,各应答信号线功能与方式1下同名信号线相同。当A口工作于方式2时,B口可按方式0或方式1工作;而C口剩余线的功能则因B口工作方式的不同而异:B口按方式1工作时,用作应答控制线和中断请求线;B口按方式0工作时,可用作数据端口线。方式2的数据传送,也是既可用中断方式,亦可用查询方式。38255的控制字和状态字8255内部有两种控制字,即工作方式控制字和C口按位置位复位控制字。工作方式控制字用于设置各端口的工作方式、规定接口功能;而按位置位复位控制字是专门用于对C口的任何一位实现置
5、“1”或置“0”的控制字。格式分别如图7.2、图7.3所示。当8255工作在方式1或方式2时,从C口可以读出各有关信号的状态。状态字格式可参阅有关书籍,此处从略。 关于控制字要说明几点: 设置方式控制字时,A口、B口作为整体设置,而C口要分成上、下两部分分别设置。但三个端口的工作方式均由一个控制字规定。 C口按位置位复位控制字不是送到C口地址,而是送到控制寄存器地址;且一个控制字只能使C口一位置位或复位。方式控制字和按位置位复位控制字均写入同一个控制寄存器地址,二者通过最高位D7来区别。D71为方式控制字,D70为按位置位复位控制字。7.2.4 基本人机交互接口1键盘与键盘接口键盘是微型计算机
6、中最基本的输入设备,是人机交互的纽带。按功能差别,键盘分为编码键盘和非编码键盘。编码键盘能自动检测按键,并以串并方式将按键所对应的功能码自动送给CPU。而非编码键盘只提供键盘的行列矩阵,按键的识别和键值的确定、输入等均由主机软件完成。对上述两种键盘,要求重点和熟练掌握非编码键盘的接口方法。而对有触点按键组成的非编码键盘,其接口必须具备去抖动、防串键、识别被按键和产生键码四个基本功能。其中关键是放按键的识别和键码的产生,它们一般合在一起完成,即只要识别到有键按下,就通过计算或查表产生该键的键码。按键的识别方法主要有两种:线反转法:通过行、列颠倒两次扫描来识别闭合键。此法需两个可编程双向IO端口。
7、行列扫描法:由程序逐行/列对键盘进行扫描,通过检测列行状态来确定闭合键。此法需输入、输出端口各一个。实际中以行列扫描法应用较广,因此主要要求掌握它。2LED显示器接口IED显示器是指由发光二极管LED显示字段构成的显示器件,常用的有7段/8段LED显示器。LED显示器接口有一位和多位之分。前者较简单,只需在8段LED显示器与MPU之间加一个8位锁存器即可。而多位LED显示器接口通常有两种方法:静态显示法和动态显示法。(1)静态显示法静态显示法是各位独立驱动的显示方式,相当于多个一位LED显示器接口的组合。按字段译码方式不同又有软件译码和硬件译码之分,软件译码每位用一个8位并行输出口驱动,而硬件
8、译码每两位用一个8位并行输出口和2个7段8段译码器驱动。(2)动态显示法即动态扫描、分时循环显示的一种多位显示方法。其原理是利用人眼视觉的滞后效应,使各个数码管轮流显示,每个数码管每次显示1ms左右,造成视觉上的稳定显示。实现人眼看上去的各位“同时”显示。以8位LED显示器为例,接口只需两个8位输出口。一个用于输出显示段码,另一个用于输出显示位码。这种方法的优点是可简化硬件,降低成本,减小功耗,应用最广泛,因此要求熟练掌握。3打印机接口打印机是微机系统中主要的硬拷贝输出设备,种类繁多,不同打印机的内部结构、打印原理和控制电路有所不同,但接口的原理是相似的。要求重点掌握并行打印机的接口原理及方法
9、。(I)Centronics并行接口标准打印机从外部接口特性看,可分为串行打印机和并行打印机两类。前者采用RS232C串行接口标准,后者采用Centronics并行接口标准。目前多数打印机为并行打印机,所以主要要求学握基于Centronics标准的并行打印机接口原理与方法。Centronics标准定义了36芯插头座。其中最主要的是8位并行数据线,两根握手联络信号线和一根忙线BUSY。它们的工作时序如图7.4所示。图7.4 并行打印机接口时序(2)并行打印机接口方法由图7.4可知,采用Centronics接口标准的并行打印机工作过程为:当主机往打印机输出打印数据时,首先查询“忙”信号(BUSY)
10、,如果“不忙”,才能向打印机输出数据。在把数据送到数据线上后,先发信号通知打印机;打印机接到选通信号后,先发出“忙”信号,再从接口接收数据。当数据接收完并存入内部的打印缓冲器后,便送出信号,表示打印机已准备好接收新数据,同时在脉冲的后沿使BUSY撤消。7.3 典型题型及例题精解本单元内容主要涉及可编程并行接口芯片8255A的接口特性、工作方式、应用编程,以及几种常用人机交互设备的基本工作原理和接口原理、方法。其考核题型主要是有关8255A的接口特性、工作方式和常用人机交互接口基本原理的简答题、选择题、填空题、判断题,以及8255A的编程、应用和人机交互接口分析、设计等方面的综合应用题。例7.1
11、 填空题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的PC4PC7全部为输出线时,表明8255A的A端口的工作方式是(方式0)。4.8255A工作于方式0时,(A、B和C)口输入没有锁存能力。5.8255芯片工作于方式1的输入模式时,该芯片与外设的联系信号有(和IBF)。6.当数据从8255的端口C往数据总线上读出时,8255的几
12、个控制信号、A1、A0、分别是(0、1、0、0、1)。7.现行PC机中,台式打印机与主机的接口大多采用(Centronics)接口。设计算机的每个I/O端口为8位。现有一个64健的键盘,如果采用线性键盘结构,至少需要(8)个端口;如果采用矩阵键盘结构,至少需要(2)个端口。分析:如果采用线性键盘结构,64个键就是64位。因此需要8个8位的端口。如果采用矩阵键盘结构,用88矩阵结构,则只需要两个端口,一个用作行列输出,一个用作列/行输入。9在矩阵式键盘结构中,识别被按键位置的方法有(行列扫描法和线反转法)。10. 对于共阴极连接的7段数码显示器,如果要使某一段发光,则需要在对应的段输入引脚上输入
13、(TTL高电平)。例7.2 选择题1. 并行接口和串行接口的区别主要表现在 之间的数据传输前者是并行,后者是串行。A接口与MPU B接口与外设 C接口与MPU和外设28255A工作方式中具有中断请求功能的是: 。A、方式0 B、方式1 C、方式23一台微机化仪器采用8255A芯片作数据传送接口,并规定使用I/O地址的最低两位作芯片内部寻址,已知芯片A口地址为0F4H,则当CPU执行输出指令访问0F7H端口时,其操作为 。 A数据从端口C送数据总线 B数据从数据总线送端口C C控制字送控制寄存器 D数据从数据总线送端口B4并行接口芯片8255A与打印机的连线如图7.5所示,当A15A20000
14、0000 1100 00时,经地址译码器输出使0。(1) 口A的工作方式应为 A. 方式0 B.方式1 C.方式2 D.方式0或方式1均可(2) 口C的工作方式应为 A方式0 B方式1 C方式2 D方式0或方式2均可(3)IO传送的控制方式为 方式。 A无条件传送 B查询或中断 C中断 D查询(4)8255口C的地址为 。A00C0H B00C1H C00C2H D. 00C3H(5)8255口A的地址为 。 A00C0H B00C1H C00C2H D00C3H分折:根据图中打印机与8255A的握手信号线的连接关系,可知8255A并没有用固定的应答线,也未使用中断,所以口A只可能工作在方式0
15、;而口C在作为一个独立端口时,只有方式0一种工作方式。所以A口、C口均工作在方式0。在方式0下,I/O同步控制方式可以是无条件传送或查询式传送,由图中打印机与8255A使用两条非固定握手信号线,可知I/O同步控制方式是查询式,即只有打印机非“忙”时,才能输出数据。关于口地址的计算方法参见上题,但此题中要注意:最低两位地址线A1、A0并没有对应地接到芯片的内部端口选择线A1A0上,而是颠倒了顺序。5当8255A被设定成方式1时,其功能相当于 。 A0线握手并行接门 B. 1线握手并行接口 C2线握手并行接口 D. 多线握手并行接口8255A在方式1下,无论输入还是输出均使用二根握手联络信号,输入
16、使用和IBF;而输出使用。6. 8255A有两种控制字,其中工作方式控制字一定 。A . 不等于80H B小于等于80H C大于等于80H78255A工作在方式1的输入状态时,可以通过信号 知道端口是否已经准备好了输入的数据。AREADY B C DINTR当外部输入设备通过工作在方式1的8255A与CPU相连接时,如果外部设备的输人数据已经送到端口的数据输入缓冲器锁存,则IBF变高,此时若中断是允许的,即INTE为高时,则INTR也变高,可通过INTR向CPU发出中断请求或查询INTR状态,来判明外设数据是否难备好,所以选D。8当8255A的端口A和端口B都工作在方式1输入时,端口C的PC7
17、和PC6 。 A. 被禁止使用 B只能作为输入使用 C只能作为输出使用 D可以设定为输入或输出使用9. PC系列机键盘常采用单片机作为键盘控制器,它通过一条5芯电缆向主机提供键的 。 ABCD码 B二进制码 C. 扫描码 DASCII码PC系列机键盘是属于非编码键盘与编码键盘之间的一种键盘,内部的单片机能自动识别键的按下与释放,自动生成相应的扫描码,并以串行方式送往主机箱。需要说明的是这种扫描码只是键的行列位置码,并没有提供与键的含义和功能直接对应的键值或键码,键码(ASCII码)的产生需由主机通过软件完成。所以,从这个角度看,PC键盘又不具备编码键盘的特征。例8.3 判断题18255A工作于
18、方式2时,A口、B口均作为双向数据传送端口,C口各位作为它们的应答控制线。()2 在微机系统中,一般都要为键盘、显示器、打印机等人机交互设备在内存或接口中建立一个相应的数据缓冲区。这类IO缓冲区的操作与堆栈一样,也是先进后出、后进先出。键盘、显示器、打印机等人机交互设备的数据缓冲区采用的是队列结构,其进出原则是先进先出。3. 8255工作在方式1或方式2时,其状态字通过读控制端口获得。8255的状态字应通过读C端口获得。4微机系统中,各模块发出的总线请求、总线忙、中断请求之类的控制信号,一般采用OC门作为输出驱动电路。()IO端口线不外乎有OC输出的I/O端口线、三态输出的I/O端口线和伪双向
19、I/O端口线三类。其中OC输出的I/O端口线有一个十分重要的特性,即多个信号在端口总线上直接相连时能够实现几个低电平有效信号的“线或”功能,也即不管哪个模块的输出端有低电平(有效)输出,这根线上的信号状态都有效。所以,特别适合于传输低电平有效的“多源合一”式总线信号。因此,微机系统中,各模块发出的总线请求、总线忙、中断请求之类的控制信号,一般采用OC门作为输出驱动电路。而与OC输出的I/O端口相比,三态输出的I/O端口在没有IO操作时其输出端是处于第三态高阻态,对所连的外总线没有影响,这一特性特别适合于多数据源利用公共总线传输数据的需要。所以,对于总线的接口,数据总线、地址总线和大部分控制总线
20、都是采用三态方式。5对多位LED显示器,既可采用各位独立驱动的显示方式,又可采用各位动态扫描、分时显示的方法。例7.4 接口电路8255A工作于方式1中,CPU如何以中断形式将输入设备的数据读入。答:当外设涟备好数据送至8255A的端口数据线时,向8255A发选通信号;8255A利用该信号把端口数据锁存至锁存器,并使IBF变为高送给外设,表明数据已经锁存但尚未读走。同时,在INTR允许中断状态下,IBF变高也使INTR变高,向CPU发中断请求。CPU接受中断请求后,在中断服务程序中,执行一条读端口指令,将存于缓冲器中的数据读走。同时,信号的下降沿使INTR复位,上升沿使IBF复位。又可开始下个
21、输入过程。例7.5 如图7.6所示,CPU检测开关S0S7的通断状态,并在LED0LED7对应位上显示(开关闭合时对应灯亮),问:(1) Ul是 ,U2是 。 A译码器 BDA转换器 C. 三态缓冲器 D. 采样保持器 E锁存器 F光藕(2) 编写完成检测开关状态并显示的子程序片段(U1、U2均为同相IO口)。解:(1)由图可知U2用于输入开关状态,其输出直接与数据总线相连,所以要采用三态缓冲器,以避免总线冲突。U1用于输出控制LED7LED0显示,应具有锁存功能,以保证正确显示。所以,U1是锁存器(E)、U2是三态缓冲器。(2)MOV DX,80HIN AL,DX ;读人S0S7的通断状态N
22、OT AL ;状态位按位求反OUT DX,AL ;状态写入,驱动LED例7.6 分析图7.7所示的电路,指出其中的错误并说明其后果,图中三态门为PC微型机的输入接口,其地址为100H。这是一个用三态门接口输入开关状态的接口电路。图中存在三处错误:(1)使用参数译码,得到的是一个输出口,而不是输入口。应改为(2)图中使用“或非”门进行地址译码,除了A9A0100H这种状态外,其他组合均使“或非”门输出低电平,即大部分时间,三态门是直通的,这将使开关输入状态直接送上数据总线,从而导致总线冲突。应将“或非”门改为“或”门。(3)开关K的位置接错。当开关K闭合时,反向器输入为高电平;开关K打开时,反向
23、器输入端悬空,而悬空亦常解释为高电平且状态不稳定,因而无法获得正确的开关状态。正确接法见图7.8。例7.7 两按钮K1和K2如图7.9所示。若给定接口地址E000HE00FH可任意选用。(1) 试自定接口芯片,将此两按钮接到80868088的系统总线上,画出连接图。(2) 编写程序,实现如下功能:若K1、K2均未按下,则程序等待;若K1按下,则程序转向PGR1;若K2按下,则程序转向PGR2;若Kl、K2同时按下,则程序转向NEXT。当Kl、K2同时按下时,允许有30ms的时间差。这是一个简单的接口问题,可选用三态门作输入接口、门电路作地址译码。电路连接如图7.10所示。由图可知,此接口占用E
24、000HE00FH 范围的地址,编程时可任选其中一个地址。当按钮未按下时,三态门输入为高电平;而当按钮按下时,三态门输入则为低电平。由此可编制识别按键,控制程序转移的驱动程序如下:START:MOVDX,0E000H读按钮状态NOTALTESTAL,03H有按钮按下?JZSTART无,等待CALLDELAY延时20ms去抖动INAL,DXANDCMPK1、K2同时按下?NEXT是,转NEXTAL,01HK1按下?PRG1是,转PRG1JMPPRG2K2按下,转PRG2设计按钮或键盘接口时,要考虑去抖动问题。同样考虑两个按钮同时按下时,也需要延时检测,因为两个按钮实际上不可能做到真正的同时,总有
25、十几到几十ms的时间差。这是一个实际的工程问题,在真正的工程应用中必须加以考虑。例7.8 PC系列微机应用系统以8255A作为接口,采集一组开关 S7S0的状态,然后它通过一组发光二极管LED7LED0显示出来,(Si闭合,对应LEDi亮;Si断开,对应LEDi灭),电路连接如图7.11所示。已知8255A的A、B两组均工作在方式0。(1)写出8255A四个端口地址;(2)写出8255A的工作方式控制字;(3)画出实现给定功能的汇编语言程序流程图,并编写程序。由图可知:8255A的A口工作在方式0出,B口工作在方式0入。当:A9A8A7A6A5A4A3A211001000时,74LS138的输
26、出低电平,选中8255A。由此可解:(1)8255A A口、B口、C口和控制口地址分别为:320H,321H、322H、323H。(2)8255A的工作方式控制字:82H(未用的位为0)。(3)程序流程图如图7.12所示,程序如下:AL,100001BDX,323HOUTDX,AL8255A初始化DECDX读B口状态值按位求非状态写入A口,驱动LEDHLT例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