微型计算机原理及应用课件:第7章 并行接口_第1页
微型计算机原理及应用课件:第7章 并行接口_第2页
微型计算机原理及应用课件:第7章 并行接口_第3页
微型计算机原理及应用课件:第7章 并行接口_第4页
微型计算机原理及应用课件:第7章 并行接口_第5页
已阅读5页,还剩84页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第7章 并行接口并行通信:在微型计算机和外设或其它计算机之间的信息交换中,把一个字符的各数位用几根数据线同时进行传输。并行接口:实现并行通信的接口并行接口电路的实现:通用的TTL芯片,如:74LS373、74LS244和74LS245等可编程并行接口芯片,如:8255A 简单并行接口7.1可编程并行接口8255A7.2键盘接口7.3LED显示器接口7.47.1 简单并行接口采用通用的TTL芯片,是一种不可编程的接口芯片,它电路结构简单、功能单一,硬件接好后,功能固定,无法改变。简单并行接口的种类7.1.1简单并行接口的应用7.1.27.1.1 简单并行接口的种类基本部件为三态缓冲器和数据锁存器

2、。通常包括上述两种部件之一或兼具这两种部件的接口电路都可作为简单的并行接口。三态缓冲器接口1数据锁存器接口2兼具数据锁存器和三态缓冲器的接口31.三态缓冲器接口使用最多、最典型的是:74LS244:单向的8位缓冲器/驱动器74LS245:双向的8位总线收发器。由于三态门具有“通断”控制能力的这个特点,故可利用其作输入接口。利用三态门作为输入信号接口时,要求信号源能够将信号保持足够长的时间直到被CPU读取,这是因为三态门本身没有对信号的保持或锁存能力。 图7.1图7.1 74LS244的逻辑功能图和引脚图2.数据锁存器接口数据输出接口通常采用具有信息存储能力的双稳态触发器来实现。数据锁存器接口主

3、要是指带有一定控制端的触发器和数据锁存器,最简单的可用D触发器构成。例如,常用的8位触发器组成的74LS273芯片。 74LS273共有8个数据输入端(1D8D)和8个数据输出端1Q8Q。S为复位端,低电平有效,CP为脉冲输入端,在每个脉冲的上升沿将输入端D的状态锁存在Q输出端,并将此状态保持到下一个时钟脉冲的上升沿。74LS273常作为并行输出接口。 图7.2图7.2 74LS273的逻辑功能图和引脚图3.兼具数据锁存器和三态缓冲器的接口最典型的是74LS373芯片,它是具有三态缓冲功能的数据锁存器,由一个8位的锁存器和一个8位三态缓冲器构成。 功能类似的还有Intel公司的8212输入/输

4、出接口芯片。 图7.3图7.3 74LS373的逻辑功能图和引脚图使能端G有效时,将D端数据锁存到触发器。当输出允许端OE有效时,将锁存的数据送到输出端Q。 7.1.2 简单并行接口的应用例7.1例7.2例7.1图7.4是使用三态缓冲器74LS244构成的开关接口电路。74LS244的端口地址为80H。试编写一段程序,实现每隔5分钟检测一次开关S1S8的通断状态,检测100次结束,并把检测结果保存到以2000H开始的一段存储区域中。程序段图7.4 由74LS244构成的开关接口例7.1的程序段 MOV BX,2000H MOV CX,100LOP: IN AL,80H;80H是I/O端口地址

5、MOV BX,AL INC BX CALL DELAY5M;延时5分钟 LOOP LOP 图7.4例7.2图7.5是采用锁存器74LS373的发光二级管LED接口电路。74LS373的端口地址为40H。试编写一段程序,控制8个LED发光管间隔发光,每隔5秒钟变换发光状态(亮变灭,灭变亮),工作10小时结束。程序段图7.5 由74LS373构成的LED接口例7.2的程序段由图7.5可看出,输出为0时,LED亮,为1时,LED灭,由于要求8个LED间隔发光,所以可输出初始值为01010101B=55H;另外,每隔5秒变换发光状态,10小时结束,所以需变换的次数为106060/5=7200。程序段如

6、下: MOV CX,7200 MOV AL,55HLOP: OUT 40H,AL;40H是I/O端口地址 CALL DELAY5S;延迟5秒钟 XOR AL,0FFH LOOP LOP 7.2 可编程并行接口8255A8255A的内部结构和引脚特性7.2.18255A的控制字7.2.28255A的工作方式7.2.38255A的编程及应用7.2.47.2.1 8255A的内部结构和引脚特性8255A的内部结构18255A的引脚特性21.8255A的内部结构图7.6数据总线缓冲器数据端口A、B、CA组和B组控制电路读/写控制逻辑图7.6 8255A的内部结构1)数据总线缓冲器一个双向三态的8位缓冲

7、器用作8255A同数据总线相连的缓冲部件。CPU通过执行输入/输出指令实现对缓冲器发送或接收操作。8255A的控制字和状态字也是通过该缓冲器传送的。图7.62)数据端口A、B、C三个8位的数据端口PA、PB、PC,用户可以用软件将它们设置为输入或输出端口。端口A(PA口)有一个8位的数据输入锁存器和一个8位的数据输出锁存器/缓冲器。所以,端口A作为输入或输出时,数据均受到锁存。故端口A可以用在数据双向传输的场合。端口B(PB口)和端口C(PC口)分别有一个8位的数据输入缓冲器和一个8位的数据输出锁存器/缓冲器。只有端口B和端口C用作输出端口时,数据才受到锁存。图7.63)A组和B组控制电路82

8、55A的三个数据端口分为两组来控制。端口A及端口C的高4位为A组端口B及端口C的低4位为B组这两组控制电路用来决定A组和B组的工作方式 。图7.64)读/写控制逻辑完成对数据信息的传输控制。控制信号和传输动作的对应关系如表7.1所示。 图7.62.8255A的引脚特性PA7PA0:端口A的数据输入/输出引脚,和外设相连。PB7PB0:端口B的数据输入/输出引脚,和外设相连。PC7PC0:端口C的数据输入/输出引脚,和外设相连。D7D0:双向三态数据线,和系统数据总线相连。A1、A0:端口选择信号。 当A1A0=00时,选中端口A; 当A1A0=01时,选中端口B; 当A1A0=10时,选中端口

9、C; 当A1A0=11时,选中控制端口。 2.8255A的引脚特性对8088CPU来讲,其外部数据总线为8条,不论其选中奇地址还是偶地址读写,在一个总线周期内都能完成。此时可将8255A的A1、A0对应连接到8088系统总线的A1、A0上,则8255A各个端口地址为相邻地址。对8086CPU来讲,其外部数据总线为16条,其中数据总线的低8位总对应一个偶地址,高8位总对应一个奇地址。在8255A和8086CPU相连时,若将8255A的数据线D7D0接到8086CPU数据总线低8位上时,就要求8255A的端口地址应为偶地址,这样才能保证对8255A的端口读写能在一个总线周期内完成。故将8255A的

10、A1和A0分别和8086系统总线的A2和A1对应相连,而将8086地址总线的A0总设为0,即8255A端口地址为4个相邻的偶地址。 8255A的控制端口用来接收控制字,从而决定8255A的工作方式。7.2.2 8255A的控制字8255A的控制字有两种:方式选择控制字端口C置1/置0控制字这两个控制字均写入8255A的控制口。 1.方式选择控制字方式选择控制字用来决定8255A三个数据端口各自的工作方式。其格式如图7.8所示。8255A有3 种基本工作方式:方式0:基本输入/输出工作方式方式1:选通的输入/输出工作方式方式2:双向传输方式例子图7.8 8255A的方式选择控制字例子在一个808

11、6系统中,若8255A的控制端口地址为0046H,要求将该8255A的端口A工作在方式0,作输出口;端口B工作在方式1,作输入口;端口C 的高4位做输出,低4位设置为输出。方式选择控制字为86H。初始化程序: MOV AL,86H OUT 46H,AL图7.82.端口C置1/置0控制字在用8255A的三个数据端口传送信息的过程中,经常将端口C的某一个数位或几个数位作为控制信号使用,以配合端口A或端口B工作。端口C置1/置0控制字可以设置端口C的某个数位为1或为0,从而完成信息传输过程中的信号设置要求。其格式如图7.10所示。例子图7.10 端口C置1/置0控制字例子要求将端口C的PC6置0,P

12、C3置1,则端口C置1/置0控制字分别为0CH和07H,若8255A的控制端口地址为B0F6H,则程序段如下:MOV DX,0B0F6H MOV AL,0CH OUT DX,AL MOV AL,07H OUT DX,AL 图7.107.2.3 8255A的工作方式3种:方式0、方式1和方式2。端口A可以工作在这3种方式的任何一种。端口B只能工作在方式0或方式1。端口C除作为一般输入/输出口之外,常用作配合端口A和端口B工作的控制联络口。工作方式可以通过向控制口写入方式控制字来设置。方式0-基本的输入输出方式1方式1-选通的输入输出方式2方式2-双向传输方式31.方式0-基本的输入/输出方式各端

13、口工作的输入或输出状态可以任意定义。端口A、B可以被定义为简单的并行输入或输出端口,端口C的高4位和低4位也可以定义为两个独立的4位输入或输出端口。程序通过IN和OUT指令对各个端口进行读写。输入时序输出时序小结图7.11 方式0输入时序图图7.12 方式0输出时序图方式0小结在无条件传送或查询方式时,常使用方式0。若工作在无条件传送方式下,可以对8255A的三个8位并行数据口直接进行读写操作。若工作在查询式传送方式下,可以用端口C的某些数位作为状态信号的输入和控制信号的输出。这只需将端口C的低4位和高4位分别定义为输入和输出即可。 2.方式1-选通的输入/输出方式当8255A的端口A或端口B

14、有一个工作在方式1,则端口C有3位固定地作为数据传送的控制联络信号。由于工作在方式1时,端口C的某些数位自动地转为数据传送的选通和应答信号,故称该方式为选通的输入/输出方式。输入时:A端口输入时对应的控制信号B端口输入时对应的控制信号输入时序中断控制输出时:A端口输出时对应的控制信号B端口输出时对应的控制信号输出时序方式1小结方式1 :A端口输入时对应的控制信号数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器方式1 :B端口输入时对应的控制信号PC2PC1PC0P

15、B7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式1的输入时序STB和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据方式1的中断控制8255A的中断由中断允许触发器INTE控制置位:允许中断;复位:禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的那一位,只要对那一位置位/复位就可以控制INTE触发器。选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2方式1 :A端口输出时对应的控制信

16、号外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器方式1 :B端口输出时对应的控制信号PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器端口A的INTEA对应PC6端口B的INTEB对应PC2方式1的输出时序OBF和ACK是外设和8255A间的一对应答联络信号,为的是可靠地输出数据方式1小结若8255A的某一个端口工作在

17、方式1的输入或输出情况下,端口C中自动提供了相应的数位作为控制信号,尤其是提供了中断请求信号。若外设能给8255A提供选通信号和数据接收应答信号,那么利用端口C提供的信号和CPU联络而形成数据的中断传送方式,会比采用方式0的无条件传送和查询式传送要方便有效。 3.方式2-双向传输方式8255A的数据端口中,只有端口A可以工作在此种方式下。当端口A工作在方式2时,CPU通过8255A既可以向外设发送数据,又可以从外设接收数据,故称为双向传输方式。 方式2的控制信号方式2时序方式2小结方式2的控制信号PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAIN

18、TE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号方式2时序方式2小结由于方式2既可以工作在输入方式,又可以工作在输出方式,所以,若一个并行外设可以输入数据,又可以输出数据,当它和8255A的端口A连接时,可令8255A的端口A工作在方式2。 7.2.4 8255A的编程及应用例7.3例7.4例7.38255A作为连接打印机的接口,如图7.19所示。 端口A作为传送字符的通道,工作于方式0,输出;B端口未用;端口C工作于方式0,PC3作为信号输入端,故PC3PC0为输入方式,PC6作为信号输出,故PC7PC4为输出方式。设需打印的字符已放

19、在CL寄存器中。8255A的端口地址为:A端口:C000H C端口: C004HB端口:C002H 控制口:C006H工作过程程序段图7.19 8255A作为连接打印机的接口例7.3的工作过程当主机要往打印机输出字符时,先查询打印机忙信号。如果打印机正在处理一个字符或正在打印一行字符,则忙信号为1,反之,则忙信号为0。当查询到忙信号为0时,则可通过8255A往打印机输出一个字符。此时,要将选通信号STB置成低电平,然后再使STB为高电平,这相当于在STB端输出一个负脉冲(初始状态,是高电平) 。图7.19例7.3的程序段PRINT: MOV DX,0C006H MOV AL,81H;控制字 O

20、UT DX,AL MOV AL,0DH OUT DX,AL;STB端送高电平 LP: MOV DX,0C004H IN AL,DX;检测BUSY AND AL,08H JNZ LP;若打印机忙,则等待 MOV AL,CL MOV DX,0C000H OUT DX,AL; 若打印机不忙,将AL中字符送端口 MOV DX,0C006H MOV AL,0CH OUT DX,AL;使STB为低电平 MOV AL,0DH OUT DX,AL;使STB为高电平 ;后续程序段 图7.19例7.48255A工作于方式1,作为用中断方式工作的Centronic360 字符打印机的接口,如图7.20所示。8255

21、A的端口A作为数据通道,工作于方式1。此时PC7自动作为信号输出端,PC6自动作为信号输入端,而PC3自动作为信号输出端。在Centronic360 字符打印机标准定义的信号线中,有2条联络信号线:选通信号STB,响应信号ACKNLG。所需的数据选通脉冲信号STB由CPU控制PC0来产生。在这里没有用到OBF,可将它悬空。PC3连接8259A的中断请求输入端IR3。对应于中断类型号0BH,此中断对应的中断向量放在2CH,2DH,2EH和2FH四个内存单元中,假设8259A在系统程序中已经完成初始化,这部分电路连接图未画出。设8255A的端口地址为:端口:00C0H B端口:00C2HC端口:0

22、0C4H 控制口:00C6H方式控制字为A0H工作过程主程序段中断处理子程序图7.20 8255A作为中断方式打印机接口例7.4的工作过程实际使用时,在此系统中由中断处理程序完成字符输出,而主程序仅仅完成8255A的方式控制字的设置和开放中断。需要指出的是这里开放中断不仅要用STI开放CPU的中断,而且要使8255A的INTE为1。在中断处理程序中,设字符已放在主机的字符输出缓冲区,往A端口输出字符后,CPU用对C端口的置1/置0命令使选通信号为0,从而将数据送到打印机。当打印机接收并打印字符后,发出应答信号,由此清除了8255A的“缓冲器满”指示,并使8255A产生新的中断请求。如果中断是开

23、放的,CPU便响应中断,进入中断处理程序。 图7.20例7.4的主程序段MAIN: MOV AL,0A0H;主程序段 OUT 0C6H,AL MOV AL,01H;使PC0为,让选通无效 OUT 0C6H,ALXOR AX,AX MOV DS,AX MOV AX,2000H MOV WORD PTR 002CH,AX MOV AX,1000H MOV WORD PTR 002EH,AX MOV AL,0DH;使PC6为,允许8255A中断 OUT 0C6H,AL STI ;开放中断 图7.20例7.4的中断处理子程序的主要程序段 ROUTINTR:MOV AL,DI;DI为缓冲区指针,字符送端

24、口 OUT 0C0H,AL MOV AL,00H;使PC0为,产生选通信号 OUT 0C6H,AL INC AL;使PC0为,撤销选通信号 OUT 0C6H,AL IRET7.3 键盘接口键盘的工作原理7.3.1键的识别7.3.27.3.1 键盘的工作原理运用简单结构来设计键盘的缺点:当键盘上的键较多时,引线太多,占用的I/O端口也太多,只能用在仅有几个键的小键盘中。通常使用的键盘结构是矩阵式的。设有mn个键,则采用矩阵式结构只要mn条引线。7.3.2 键的识别为了识别键盘上的闭合键,通常采用行扫描法。矩阵式键盘的行线、列线分别接并行输出口和并行输入口,如图7.23所示。行扫描法识别闭合键的原

25、理图7.23行扫描法识别闭合键的原理先使第0行接地,其余行为高电平,如有某条列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如列线全为高电平,则说明第0行上没有键被按下。此后,再将第1行接地,然后检测列线中是否有变为低电平的线。如此往下逐行扫描,直到最后一行。在扫描过程中,当发现某行有键闭合时,也就是列线中有1位为0时,根据行线位置和列线位置,便能识别此刻闭合的到底是哪一个键。实际上:第一步:判断是否有键按下第二步:判断哪一个键被按下图7.23第一步:判断是否有键按下使输出端口各位均输出为0,即相当于将所有各行都接地。然后,从输入端口读入数据。如读得的数据是FFH,则程序在循环中等待

26、。如果读得的数据不是FFH,则说明必有列线处于低电平,从而可断定必有键被按下。此时,为了消除键的抖动,可以调用延迟程序,然后再判别具体按下的是哪个键。程序段图7.23第一步的程序段 WAIT:MOV AL,00H MOV DX,OUTPORT;输出端口 OUT DX,AL MOV DX,INPORT;输入端口 IN AL,DX AND AL,0FFH CMP AL,0FFH JZ WAIT DONE:CALL DELAY;是,则延迟20ms去抖动 图7.23第二步:判断哪一个键被按下流程图程序段第二步的流程图图7.23第二步的程序段PROG:MOV BL,0 MOV CL,0FEH MOV D

27、L,8 ;计数值为行数 FROW:MOV AL,CL MOV DX, OUTPORT OUT DX,AL ROL AL,1 MOV CL,AL MOV DX, INPORT IN AL,DX CMP AL,0FFH JNZ FCOL MOV AL,BL ADD AL,08H MOV BL,AL DEC DL JNZ FROW JMP DONE FCOL: RCR AL,1 JNC PROCE INC BL JMP FCOL PROCE: ;键命令处理程序 DONE: ;后续处理程序 图7.237.4 LED显示器接口LED显示器的工作原理7.4.1静态显示与动态显示7.4.27.4.1 LED

28、显示器的工作原理七段发光二极管简称为LED,它是一种应用很普遍的显示器件。许多微型机控制系统及数字化仪器中都用LED作为输出显示。LED的主要部分是七段发光管,如图7.25所示。LED显示器有共阳和共阴两种结构,如图7.26所示。LED显示器和8255A之间的连接为了将一个二进制数在一个LED上显示出来,就需要将4位二进制数转换为LED的7位显示代码: 采用专用芯片进行LED段译码软件译码法图7.25 七段LED显示器图7.26 七段LED显示器件内部电路LED显示器和8255A之间的连接CPU通过8255A往LED传输七段代码,8255A的端口本身是8位的,因此,有1位悬空未用。由于LED的

29、一个段发光时,通过的平均电流为10mA左右,所以采用共阴极LED时,阴极接地,而阳极要加驱动电路。用共阴极LED时,如驱动器输出为,则对应的段发光。采用专用芯片进行LED段译码采用专用带驱动器的LED显示器段译码器,可以实现对BCD码的译码,但不能对大于9的二进制数译码。7447有4位输入,7位输出。使用时,只要将7447的输入端与主机系统输出端口的某4位相连,而7447的7位输出直接与LED显示器的ag相接,便可以实现对1位BCD码的显示。 软件译码法下面的程序段用来实现1位数字的LED显示。设要显示数字放在DATA单元中,而LEDADD为代码表首址。DISP: MOV BX,OFFSET DATA MOV AL,BX MOV BX,OFFSET LEDADD XLAT OUT DX,

温馨提示

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

评论

0/150

提交评论