微机原理及应用:第7章 并行接口和并行通信_第1页
微机原理及应用:第7章 并行接口和并行通信_第2页
微机原理及应用:第7章 并行接口和并行通信_第3页
微机原理及应用:第7章 并行接口和并行通信_第4页
微机原理及应用:第7章 并行接口和并行通信_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章 并行通信和并行接口 并行通信就是把一个字符的各数位用几条线同时进行传输,并行通信的信息实际传输速度快、信息率高,距离增加电缆开销大。和串行通讯不同,当前还没有标准化,也没有对同步传输和异步传输作严格定义。实行并行通信的接口就是并行接口,可设计成单独输入、单独输出、既输入又输出。 并行接口中应该有一个控制寄存器用来接收CPU的命令,有一个状态寄存器提供各种状态位供CPU查询,还必须有相应的输入输出缓冲寄存器。输入过程中,外设将数据送给接口,并使数据输入准备好高电平,接口接收数据并使数据输入回答高电平,以撤销数据和数据输入准备好 图7.0并行接口连接外设示意图 在输出过程中,每当外设从接口

2、取走一个数据后,接口就会将状态寄存器中的“输出准备好”状态位置1.当CPU输出的数据到达接口的输出缓冲寄存器后,接口会自动清除“输出准备好”状态位,并将数据送往外设,与此同时,接口往外设发送一个“数据输出准备好”启动外设接收数据. 7.1可编程并行通信接口8255A8255A是Intel系列的并行接口芯片,由于它是可编程的,可通过软件来设置芯片的工作方式,与外设相连时通常不需要附加电路,使用方便。7.1.1 8255A的内部结构 8255A的内部结构框图见图7.1 由以下几部分组成:数据端口A、B、C 有3个8位数据端口,端口A、B、C。可用软件将它们设为输入或输出端口,但3口各有特点。端口A

3、端口A对应1个8位数据输入锁存器和1个8位输出锁存器缓冲器。 端口B端口B对应1个8位数据输入缓冲器和1个8位数据输出锁存器缓冲器。端口C端口C对应1个8位数据输入缓冲器和1个8位数据输出锁存器缓冲器。在使用中,A、B常作为独立的输入或输出口,C口配合他们的工作。 1. A组控制和B组控制一方面接收芯片内部总线上的控制字,一方面接收来自读写命令,据此决定两组端口的工作方式和读写操作。A组控制电路控制A口和端口C的高4位,B组控制B和C的低4位。2. 读写控制逻辑电路接收CS、A1、A0、RESET、WR、RD,组合后得到对A、B组的控制命令 数据总线缓冲器 是一个双向3态的8位数据缓冲器,82

4、55由此输入输出数据、状态、命令。7.1.2 8255A的芯片引腿信号图7.2是8255A的芯片引腿信号,除电源和地外,可分为两组: 图7.2是8255A的芯片引腿信号,除电源和地外,可分为两组: 和外设一边相连的 PA7PA0:A口数据信号PB7PB0:B口数据信号PC7PC0:C口数据信号1. 和CPU一边相连的RESET:复位信号,高电平到来时所有内部寄存器被清零,3口均输入。 D7D0:8255的数据线,和CPU系统数据总线相连。CS:片选信号由某几位地址线组合选中8255,有效时RD、WR才起作用。RD、WR:芯片读出和写入信号,控制CPU与8255之间交换数据。A1、A0:端口选择

5、信号,8255内部有3个数据端口和1个控制口,8086的16位数据线中低8位与8255相连,故4口均为偶地址,A2连A1,A1连A0,CPU的A0赋0,即可保证.表5.4 8255A的控制信号与传输动作的关系 7.1.3 8255A的控制字8255A可以通过指令在控制端口中设置控制字来决定它的工作.控制字分为两类:芯片各端口的方式选择控制字(D71为方式字标识符特征位),可使3个数据端口(分两组)工作在不同方式,A组:A口和C口高4位B组:B口和C口低4位 端口C置1置0控制字(D70为置1置0字标识符)方式选择控制字 图7.3 方式选择控制字的格式 8255A有3种基本工作方式方式0:基本的

6、输入输出方式方式1:选通的输入输出方式方式2:双向传输方式A口可有3种工作方式;B口可方式0和方式1;C口配合A、B口的工作同一组的两个口可分别输入输出,不要求一致。 例子:方式选择控制字的使用,8086系统中有两个8255芯片J1、J2。两片8255A在8086系统中的连接 J1 、J2的片选信号CS通过38译码器74LS138来供给。例子:要求J1各端口工作于如下方式A口:方式0,输出; B口:方式0,输入;C口高4位:输出; C口低4位输入J1的方式控制字如下图 J1的方式控制字如下图 也就是83H,应写入J1的控制口0026H如果又要求J2的A口:方式0,输入; B口:方式1,输出C高

7、:输出 C低:配合B口;控制字为下图 也就是94H,应写入J2控制口2E初始化程序如下:MOV AL,83HMOV DX,0026H OUT DX,ALMOV AL,94HMOV DX,002EHOUT DX,AL 2. 端口C置1置0控制字端口C的数位常常作为控制位使用,可用置1置0指令单独设置.当8255收到写入控制口的控制字时,测试D7=1 ? ,D7=0则为置1置0控制字格式见图7.5所示 置1置0控制字格式见图7.5所示 几点说明: C口置1置0控制字尽管对C口操作,但要写入控制口地址。OUT PORTCONTROL, AL置1置0控制字D0位决定了置1还是置0,D00则置0,1置1

8、 置1置0控制字的D3、D2、D1位决定了对C口中哪一位进行操作置1置0控制字的D6、D5、D4位不影响此操作,但D70。 例子:置PC7=1、PC3=0,操作如下:MOVAL,0FH对PC7置1的控制字0 000 111 1MOVDX,002EH;控制口地址送DXOUTDX,AL;对PC7进行置1操作MOVAL,06H;对PC3置0的控制字0 000 011 0OUTDX,AL;对PC3进行置0操作 8255A的工作方式 1. 方式0方式0的工作特点方式0也叫基本输入输出方式,端口C还可分成两个4位口,4个口分别输入输出,16种组合。方式0的输入输出时序方式0的时序比较简单,输入时,要满足:

9、要求CPU在发出读信号前,先发出地址信号,使CS A1 A0有效启动8255 CPU发出读信号前,外设已将数据送到8255的输入缓冲器中8255在读信号有效后经过tRD时间,可使数据在数据总线上得到稳定,3要求 3要求 在整个读出期间,地址信号保持有效 输入数据必须保持到读信号消失后才消失 要求读脉冲的宽度至少为300ns要求易于满足(8086配备地址锁存器),要求取决于输入设备。难怪方式0不常用,无应答信号,太不牢靠了。 图7.6 是方式0输出时序(也较简单) 地址信号必须在写信号前tAW时间 写脉冲宽度至少要有400ns 数据必须在写信号结束前tDW时间就能出现在数据总线上,且保持tWD时

10、间方式0的使用场合方式0的使用场合有两种,一种是同步传送,一种是查询式传送。 同步传送时,发送方和接收方的动作由一个时序信号来管理,所以双方知道对方的动作,不需要应答动作,即CPU不需要查询外设状态。查询式传送时,方式0没有固定的应答信号,可以指定C口的高或低4位作为控制输出口,另外4位读入外设的状态。 方式1 方式1的工作特点 也叫选通的输入输出方式,A或B口输入输出时,必须用C口提供的选通信号和应答信号,且应答含义固定。方式1有如下特点: A、B口均可工作于方式1,可输入可输出。 A或B口方式1时,需C口3位配合其工作,其余位仍可输入输出。如A、B口均工作于方式1,需C口6位配合他们工作,

11、余下2位输入输出 方式1输入情况下有关信号的规定和输入时序当A口方式1时,PC3作为中断请求信号输出端INTRA PC4作为选通信号输入端STBA, PC5作为输入缓冲器满信号输出IBFA当B口方式1时,PC0作为中断请求信号输出端INTRB PC1作为输入缓冲器满信号输出IBFB PC2作为选通信号输入端STBB, 这些数位和信号之间的对应关系随工作方式而定,不需程序员干预。当A、B口均工作在方式1时,C口6位配合工作,PC6、PC7输入输出。图7.8是A、B均工作于方式1输入时,各控制信号示意图 各控制信号说明如下: STB(strobe)外设发出的选通信号输入8255,外设将数据送到82

12、55缓冲器 IBF(Input buffer full):缓冲器满信号,供CPU查询,由STB置位,RD上升沿复位INTR:8255送往CPU的中断请求,在STB和IBF均为高时被置1 RD下降沿复位 INTE:中断允许(屏蔽)信号,无引出端,由C口置1置0 控制,PC41则A口允许中断,PC21则B口允许中断 图7.9 是方式1的输入时序 方式1输出情况下有关信号和输出时序A口方式1输出时,PC7作为输出缓冲器满信号OBFA输出端 PC6作为外设接收数据后的响应信号ACKA PC3作为中断请求信号输出端INTRA B口方式1输出时,PC1作为输出缓冲器满信号OBFB输出端 PC2作为外设接收

13、数据后的响应信号ACKB PC0作为中断请求信号输出端INTRB含义也固定,A、B均为方式1输出时,C口仅剩PC4、PC5输入输出由D3位决定。 图7.10为方式1输出时控制信号和状态信号说明如下:OBF输出缓冲器满8255送往外设,通知外设取走数据.由WR上升沿置”0”,ACK使其恢复”1” 图7.10为方式1输出时控制信号和状态信号 ACK(acknowledge):外设响应信号外设送8255,表明CPU通过8255输出的数据已送到外设。INTR(Interrupt request):中断请求信号当外设取走数据,ACK有效后,8255向CPU发新的中断请求 INTE(Interrupt e

14、nable):中断允许信号为“1”时端口处于中断允许状态,由软件设置,PC6=1则INTEA1 PC2=1则INTEB1 图7.11是方式1的输出时序 工作在方式1的端口可以采用中断方式与CPU联系。 方式1的使用场合(比方式0有效)在方式1下,规定一个端口作为输入或输出端口的同时,自动规定了有关的控制信号和状态信号,适合能提供应答信号的外设进行中断式传输。 1. 方式2方式2的工作特点方式2也叫双向传输方式,这种方式只适合于A口。C口5位配合A口工作方式2工作时的控制信号和状态信号 图7.12方式2的控制字和有关信号 各控制信号含义如下: INTRA:中断请求,无论输入输出,一个动作完成时8

15、255向CPU发这一请求 STBA:外设送8255的选通信号,此信号将外设送8255的数据打入锁存器IBFA:8255送往CPU的状态信息,通知CPU取数,IBF可供CPU查询。 OBFA:输出缓冲器满,8255通知外设取数。 ACKA1:外设对 OBFA的响应信号,开启输出缓冲器,送出数据,否则高阻。 INTE 1: 1时允许8255由INTR往CPU发中断请求信号,PC6=INTE1 INTE: 1时A口输入中断允许,PC4=INTE1方式2的时序方式2的时序相当于方式1的输入和输出时序的组合。对于输出过程,CPU响应中断,过程对于输入过程, 见图上方式2的使用场合方式2也叫双向传输方式,

16、若某外设既可输入又可输出,如磁盘驱动器可连A口 方式2与其它方式组合 方式2与方式0输入组合 方式2与方式0输出组合 方式2与方式1输入的组合方式2与方式1输出的组合 8255A的应用举例例1:8255A作为连接打印机的接口,工作于方式0A口传送字符,方式0输出,C口方式0,PC2接BUSY,PC6输出负脉冲STB。设8255端口地址为:A: 00D0H B:00D2H C:00D4H 控制口:00D6HPP: MOV AL,81H ; 1 00 0 0 0 0 1BOUT 0D6H,ALMOV AL,0DH 用置1置0方式使PC6为1STBOUT 0D6H,AL; 0 000 110 1B

17、LPST:IN AL,0D4HAND AL,04HJNZ LPST ;如不为0,BUSY=1,打印机忙MOV AL,CLOUT 0D0H,AL;如不忙,则把CL中字符送端口AMOV AL,0CH; 0 000 110 0BOUT 0D6H,AL ;使STB为0 INC ALOUT 0D6H,AL ;再使STB为1。 。 例2:8255A工作于方式1,作为用中断方式工作的Centronic 360字符打印机的接口,图7.15 所示 口地址: A:0C0H B:0C2H C:0C4H D:0C6H要用中断方式,置1置0使INTE=1MAIN:MOV AL,0A0H;主程序段 1 01 0 000

18、0BOUT 0C6H,AL;8255控制字MOV AL,01;PC0=1,选通无效 0 000 000 1BOUT 0C6H,ALXOR AX,AXMOV DS,AX ;设置中断向量1000H:2000H至2CH,2DHMOV AX,2000H MOV WORD PTR02CH,AXMOV AX,1000HMOV WORD PTR02EH,AXMOV AL,0DH;允许8255中断 0 000 110 1BOUT 0C6H,ALSTI 中断子程序 :中断子程序必须装在1000:2000处,中断子程序如下:INTRUPT:MOV AL,DI;送字符 OUT 0C0H,AL MOV AL,00;

19、PC0=0 0 000 000 0BOUT 0C6H,ALINC ALOUT 0C6H,AL : ;后续处理IRET 7.6键盘和LED显示对于廉价小系统,如以单板机为基础的仪器,常用键盘和LED显示实现输入输出。数据、内存地址、命令、指令等。LED(light emitting diode)7.6.1键盘设计键盘的基本工作原理 图7.16最简单的键盘结构图7.17键盘的矩阵式结构 矩阵式键盘工作时,就是按照读入行线和列线上的电平来识别闭合键。7.6.2键的识别为了识别键盘上的闭合键,通常采用两种方法:行扫描法和行反转法。1. 行扫描法的原理行扫描法识别闭合键的原理如下:先使0行接地,其余行为

20、高电平,再看第0行有无闭合键,如没有一条列线为低电平,说明0行没有键闭合。再1行接地 实际中,一般先快速检查键盘中是否有某个键被按下,先使所有行均为低电平,检查列线。有键按下再查具体哪个键被按下。硬件上,行线和列线的接法如图7.18所示。 行线(输出)和列线(输入)分别和两个8位并口相连。图7.19用扫描法判断闭合键的流程 2. 行反转法的原理图7.5行反转法的工作原理图7.6 行反转法的键盘连接 从图中可以看到,用行反转法时,要将行线接一个并口,先让它工作在输出方式,将列线也接一个并口,先让它工作在输入方式。程序是CPU通过输出端口往各行线上送全部送低电平,然后读入列线的值。如有键按下,必有

21、一列为0然后再对两个并口进行方式设置,使接行线的并口输入,列线并口输出,并将刚才读得的列线值从并口(列)输出,再读取行线的输入值,则闭合行0。由此即可识别按键(与表中键码逐一对比,相等即是)。 如遇多个键闭合的情况,行列值中一定有两个以上的0,表中无此码,判错。抖动和重键问题的解决可以通过软件延时方法很容易解决按键抖动问题,如不解决会错误识别。重键的几种情况 A键先按后放,B键后按先放。 A键先按先放,B键后按后放。A键、B键同时按下,但A键先放。 处理重键问题有两种方法,连锁法和巡回法1. 连锁法连锁法原则是,在所有键释放后,只承认此后闭合的第1个键,对此键闭合时按下的其它键均不作识别,直到

22、所有键释放以后,才读入下一个键。对上述情况只读入A键;A或B键,因机而异;不读或A或B,因人而异 2巡回法 基本原则是:等前面识别的键释放以后,就可以对其它键作识别。只有A闭合时,读入A键。对上述情况只读入A键; 若A、B同一行,读入A键,A、B不在同一行为快速操作,A、B均读 A、B同时按下,A键后放且A键处于较小行号读入A,A键行号大,均读从上面可见,巡回法比较适合快速操作。 键盘编码器的工作原理软件实现键盘扫描、消除抖动和识别重键,CPU的开销太大了。可以用硬件识别键盘并解决抖动和重键问题。键盘编码器AY52376的原理可用于8*11以内的键盘。主要原理是由时钟电路不断产生扫描信号,读出

23、的行列信号与ROM中的编码比较得到键值。解放了CPU。7.4 LED数字显示7.4.1 LED的工作原理 七段发光二极管简称为LED(light emitting diode)是常用数显器件。LED的主要部分是七段发光管图7.20七段式LED显示部件 每段发光时通过的平均电流1020mA,所以共阴极时阳极要加驱动电路。驱动电路可用三极管或小规模集成电路,如DM7407N可驱动4位数。 图7.21 LED的外部连接(共阴) 为了将一个4位二进制数(可能为16进制数也可能为BCD码)在LED上显示出来,就要完成4位二进制数到LED的七位显示代码的转换两种译码方法。一是用专用芯片,如7447带驱动器

24、的专用译码器,但不能对大于9的数译码。二是用软件译码法,利用8086的换码指令XLAT 图7.22用专用译码芯片完成段译码 假定要显示的内容在BUF单元中,LEDADD为代码表首址:DISP:MOV BX,OFFSET BUFMOV AL,BXMOV BX,OFFSET LEDADD XLATMOV DX,PORTOUT DX,ALLEDADD:DB 40H,79H,24H 8.1.1 点阵式显示器件的工作原理除了七段的LED以外,还有一种常用的16进制数字显示器即点阵显示器。图7.23 TIL311点阵显示器 用20个发光二极管组成一个阵列,通过内部译码,将输入的4位二进制数变换为一个代码,使点阵中的某些二极管发光,从而显示数据。7段式LED可靠性不十分好,某一段坏了,会造成误识别。多位显示时,点阵式显示器的优点更突出,象TIL311这样的点阵式显示器,内部有锁存器,在下一个数据送来前,显示管的驱动信号是恒定的,不需要刷新。真正的点阵式显示,流动字幕。 多位显示问题的解决 实际使用时,往往用几个显示管实现多位显示。如果每个LED都占一个独立的IO口,占用通道

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论