《16位微机原理及接口技术》课件第7章.ppt

上传人(卖家):momomo 文档编号:8089523 上传时间:2024-11-24 格式:PPT 页数:271 大小:4.12MB
下载 相关 举报
《16位微机原理及接口技术》课件第7章.ppt_第1页
第1页 / 共271页
《16位微机原理及接口技术》课件第7章.ppt_第2页
第2页 / 共271页
《16位微机原理及接口技术》课件第7章.ppt_第3页
第3页 / 共271页
《16位微机原理及接口技术》课件第7章.ppt_第4页
第4页 / 共271页
《16位微机原理及接口技术》课件第7章.ppt_第5页
第5页 / 共271页
点击查看更多>>
资源描述

1、第七章 I/O接口技术及接口芯片 7.1 系统与总线接口系统与总线接口 7.2 可编程定时器可编程定时器/计数器计数器8253及使用及使用 7.3 可编程并行接口可编程并行接口8255 7.4 可编程串行接口可编程串行接口8250的使用的使用 7.5 键盘接口键盘接口 7.6 显示器与打印机接口显示器与打印机接口 7.7 接口应用实例接口应用实例 7.1 系统与总线接口系统与总线接口7.1.1 总线技术总线技术 总线是一组公用导线,一些数据源中的任何一个都可以利用它传送数据到另一个或多个目的地。总线是分时复用的,在特定时间周期内,总线只能为一个源专用,从属于一个源。也就是说,总线是一组能为多个

2、部件分时共享的公共信息传送线路,分时和共享是总线的两个特点。第二章中已详细介绍了微处理器的结构,微处理器的外部结构表现为数量有限的输入/输出引脚,这些引脚构成了微处理器级总线。微处理器通过微处理器级总线和其他逻辑线路连接组成微机的主机板系统,形成系统级总线,简称系统总线。存储器和I/O设备通过接口电路连接在系统总线上,形成一个完整的微型计算机系统。总线分为地址总线、数据总线和控制总线。微处理器级总线和系统级总线之间的接口电路称为总线控制逻辑,总线控制逻辑中的驱动器和接收器是用来提高总线的驱动能力和承受负载的能力的。7.1.2 PC系统总线系统总线 PC系统采用8086/8088微处理器。该处理

3、器要用40个引脚的双列直插式陶瓷封装,均要用分时复用的地址/数据总线。这些引脚具有两种功能,分时作为数据线或地址线使用。微处理器有两种工作方式:最小方式和最大方式。最小方式用于由单微处理器组成的小系统,由8086/8088直接产生小系统所需的全部控制信号。最大方式用于多微处理器系统,8086/8088不直接提供用于存储器或I/O读写的读写命令等控制信号,只是将操作类型的状态信息输出,由总线控制器8088对状态信息进行译码而产生相应的控制信号。7.1.3 总线技术接口总线技术接口 1.总线周期总线周期 图7-1 8088 读总线周期 地址输出状态输出地址输出地址输出数据输入一个总线周期T1T2T

4、3T4CLKA19S8 A16/S3A15 A8AD7 AD0ALEMIO/RDRDT/DEN图7-2 8088 写总线周期 地址输出状态输出地址输出地址输出数据输出一个总线周期T1T2T3T4CLKA19S8 A16/S3A15 A8AD7 AD0ALEMIO/WRRDT/DEN 2.锁存器与驱动器锁存器与驱动器 在形成8088系统总线时,常用到具有三态输出的信号锁存器8282和8283。8282 和8283除前者是反向输出,后者是正向输出外,其他性能完全一样,其引线如图7-3所示。其中的OE 为输出允许信号,低电平有效,正常输出。高电平使DO0DO7处于三态。STB为锁存信号,高电平有效。

5、该锁存器与后面提到的74LS374十分类似。图7-3 总线锁存器 STBDI0 DI7OEDO0 DO7图7-4 双向三态门驱动 11A0A1A7TB0B1B7OE 3.系统总线的形成系统总线的形成(1)在最小模式下。在最小模式下。图7-5 8088 最小模式下总线形成 时钟发生器A19A16ALEA15A8AD0AD78283STBOE8283STBOE8283STBOEABTOERDT/DENMXMN/VCCMIO/RDWRCLKREADYRESETMIO/RDWRA19A16A15A88088A7A0D0D7 (2)在最大模式下。为了实现最大模式下工作,形成系统总线时要使用厂家提供的总线

6、控制器8288。总线形成如图7-6所示。如前所述,当系统总线形成以后,构成微型机的内存及各种接口就可以直接与系统总线相连接,从而构成所需微型机系统。在PC/XT微型计算机中,8088 CPU同样是工作在最大模式下的。但是,与图7-6不同的是,在形成的PC/XT 总线上能够实现DMA传送数据。这就要求所形成的总线在CPU工作时,能够顺利地完成对总线上的内存或接口的访问。当以DMA方式工作时,总线形成及驱动电路能够使它们的信号输出端呈高阻让出总线,以便DMA控制利用该总线实现数据的传送。图7-6 8088 最大模式下总线形成 MXMN/8283STBOEDEN82888283STBOE8283ST

7、BOE8286B0B7TA0A71A19A16A15A8A7A0D0D7AIOWCAMWCIOWCIORCMRDCOEA19A16A15A8AD0AD70S1S2S0S1S2SRDT/ALE8088系统总线信号时钟发生器图7-7 PC/XT微型机总线形成简图 8088CPULS373OEGLS244ELS373OEGLS245DRE1CENAEN8288IOWMEMWIORMEMRMWTCINTAD0 D7A0 A7A8 A11A12 A19A16 A19A12 A15A8 A11AD0 AD7AD0 AD70S1S2SDQCLKQ1&LOCK0S1SHRQDMACLKALEDENRDT7.2

8、 可编程定时器可编程定时器/计数器计数器8253及使用及使用 7.2.1 定时器系统概述定时器系统概述 每个微处理器厂家都研制并提供与本厂的微处理器配合工作的定时器/计数器接口芯片。微机系统在实时控制及数据采集中,都可以用这类器件,它可以作为计数器对外部事件记数,也可以作为实时时钟对各种设备实现定时控制,早期的有Z-80CTC,Motorola的6840和6520,Intel公司80系列的8253等。7.2.2 8253的内部结构和工作原理的内部结构和工作原理 8253定时/计数器的内部框图如图7-8所示,外部引线如图7-9所示。由图7-8可以看出:8253有三个结构相同又相互独立的计数单元,

9、我们称其为计数器0、计数器1和计数器2。每个计数单元包括:一个8位的控制寄存器,用程序控制其工作方式;一个16位的计数寄存器和一个16位的输出锁存器;一个16位的计数工作单元,受控制寄存器控制。8253与总线的连接线主要是:D0D7为双向数据线,用以传送数据(计数器的计数值)和控制字。CS为片选信号,低电平有效。只有当它有效时,才能选中该芯片进行读/写操作。RD,WR为读写控制信号。A1、A0为8253计数器和控制寄存器选择信号:A1 A0 0 0 选择计数器 0 0 1 选择计数器 1 1 0 选择计数器 2 1 1 选择控制寄存器 A1,A0与其他控制信号CS,RD,WR一起,完成对825

10、3的寻址和读/写操作。CLK02是各计数器的时钟输入端。GATE02为门控信号,是计数器的输入控制信号,用来控制计数器的工作。OUT02为计数器输出信号,用来产生不同工作方式时的输出波形。8253计数器最基本的操作是:接收由数据线传来的控制字和计数初值,对CLK时钟脉冲进行减1操作,其计数工作受GATE门控信号控制。最后输出由控制寄存器控制的操作方式所产生的相应信号。图7-8 8253内部结构 片内总线数据总线缓冲器读/写逻辑控制寄存器计数器0计数器1计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D0D7RDWRCSA0A1图7-9 8253 引线图 C

11、SRDWR876543212223192021911101514131816172412CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2VCC地D0D1D2D3D4D5D6D7A0A17.2.3 8253的工作方式的工作方式 1.8253的工作方式的工作方式 (1)方式0:记数结束产生中断。在方式0下,记数器对CLK输入信号进行减法记数,每一个时钟周期计数器减1。当设定该方式后,计数器的输出OUT变低。设置装入记数值时也要使输出OUT变低。当计数减到零计数结束时,输出OUT变高。该输入信号也可以作为中断请求信号来使用。如果在计数过程中修改计数值,则写入第一个字节使

12、原先的计数停止,写入第二个字节后,开始以新写入的计数值重新计数。上面所说的计数过程受到计数器的门控信号GATE的控制。当GATE为高电平时,允许计数,若GATE为低电平则禁止计数。(2)方式1:可编程单稳。当计数器的计数值装入计数器后,要由门控信号GATE上升沿启动计数。同时,计数器的OUT输出为低电平。当计数结束时,OUT输出为高电平。这样可以从计数器的OUT输出端得到一个由GATE上升沿开始,直到计数结束的负脉冲。若要再次获得一个所希望宽度的负脉冲,则需要重新装入计数值并启动GATE来达到。如果在形成单个负脉冲的计数过程中改变计数值,则不会影响正在进行的计数。而新的计数值只有在前面负脉冲形

13、成后,又出现GATE上升沿时才对它进行计数。但是,若形成单个负脉冲的计数过程中又出现新的GATE上升沿,则当前计数停止,而后面的计数是以新装入的计数值开始工作的,这里的负脉冲宽度包括前面计数未结束的部分,故负脉冲加宽。(3)方式2:频率发生器。在方式2下,计数器装入初值,开始工作,计数器的输出OUT将连续输出一个时钟周期宽的负脉冲。两负脉冲之间的时钟周期数就是计数器装入的计数值。这样一来就可以利用不同的计数值达到对时钟脉冲的分频,而分频输出就是OUT输出。在这种方式下,门控信号GATE用作控制信号。当GATE为低电平时,强迫OUT输出高电平,当GATE为高电平时,分频开始进行。(4)方式3:方

14、波发生器。在方式3下,可以得到对称的方波,由OUT输出。当装入计数值为N时,若N为偶数,则完成N/2计数时OUT为高;完成另外N/2计数时OUT为低,一直进行下去。若N为奇数,则(N+1)/2计数时OUT保持高电平;而(N-1)/2计数期间OUT为低电平。在此方式下,GATE信号为低电平时,强迫OUT输出高电平。当GATE为低电平时,产生对称方波。在产生方波过程中,若装入新的计数值,则方波的下一个电平将反映新计数值所规定的方波宽度。(5)方式4:软件触发选通。设置方式4后,输出OUT立即变为高电平,一旦装入计数值,计数立即开始。当计数结束时,由OUT输出一个宽度为一个时钟周期的负脉冲。注意:计

15、数开始并不受GATE控制。此方式同样受GATE信号控制。只有当GATE为高电平时,计数才进行;当GATE为低电平时禁止计数。若在计数过程中装入新的计数值,计数器在对当前计数结束送出负脉冲后立即以新的计数值开始计数。(6)方式5:硬件触发选通。在设置方式5后,OUT输出为高电平。计数由GATE的上升沿开始进行,当计数结束时由输出OUT送出一个宽度为一个时钟周期的负脉冲。在此方式下,GATE的电平高低不影响计数,只是由GATE的上升沿启动计数开始。若计数结束前,又出现GATE上升沿,则计数从头开始。从8255的六种工作方式中可以看到,门控信号GATE十分重要。而且不同的工作方式其作用不一样。现将各

16、种方式下GATE的作用列于表7-1中。2.8253的控制字的控制字 8253的内部有一个8 位的控制寄存器,通过对其编程实现对三个计数器工作方式的控制,控制字格式为 SC1 SC0 计数器选择(D7 D6)0 0 计数器00 1 计数器11 0 计数器21 1 非法 RL1 RL0 计数长短选择(D5 D4)0 0 将计数器中的数据锁存于缓冲器0 1 计数器低8位字节的读或写1 0 计数器高8位字节的读或写1 1 选低8位和高8位字节的读或写 M2 M1 M0 工作方式选择(D3 D2 D1)0 0 0 方式00 0 1 方式1 1 0 方式2 1 1 方式31 0 0 方式41 0 1 方式

17、5 BCD位(D0)用来定义所使用的计数值是二进制代码还是BCD代码。因为每个计数器都是16位的,允许使用二进制数0000HFFFFH或十进制数000999。由于计数器为减1操作,故当初始值为0时计数值最大。3.8253的初始化的初始化 由于8253的每个计数器都有独立的地址,控制字中又有SC1、SC0两位指定计数器,这就使得8253的编程初始化十分简便。对计数器的编程可按任意顺序进行,并只对用到的计数器编程。当一个计数器长度不够时,可以将两个或三个计数器串联使用,即一个计数器的输出OUT信号作为一个计数器的CLK时钟输入。还可将多个8253串联起来使用。通常在使用中要编程对计数器初始化。先写

18、入控制字,接着写入计数值。两个字节的计数值先写入低字节,后写入高字节。其过程如图7-10所示。图 7-10 8253初始化顺序 写方式控制字(计数器0)写方式控制字(计数器1)写方式控制字(计数器2)写计数值低字节(计数器1)写计数值高字节(计数器1)写计数值低字节(计数器2)写计数值高字节(计数器2)写计数值低字节(计数器0)写计数值高字节(计数器0)4.8253的寻址及连接的寻址及连接 1)寻址寻址 8253占用4个接口地址,地址由CS、A0、A1来确定。同时,再配合RD、WR控制信号,可以实现对8253的各种读/写操作。上述信号的组合功能由表7-2来说明。表表7-2 各寻址信号组合功能各

19、寻址信号组合功能 从表7-2中可以看到,对8253的控制字,任一计数器均可以以它们各自的地址写操作。只是要注意在写入某一计数器计数值时,应根据相应控制中RL1和RL0的编码来写。当其编码是11时,一定要装入两个字节的计数值,且先写入低字节,再写入高字节。若此时只写了一个字节就去写其他计数器或控制字,则写入的字节将被解释为前面计数值的高字节。从而产生错误。当对8253的计数器进行读操作时,可以读出计数值,具体实现方法有如下两种。(1)使计数器停止计数时,先写入控制字,规定好RL1和RL0的状态也就是规定读一个字节还是两个字节。若其编码为11,则一定读两次,先读出计数值低8位,再读出高8位。若读一

20、次,同样会出错。为了使计数器停止计数,可用GATE门控信号或自己设计的逻辑电路。(2)计数过程中读计数值。这时读出当前的计数值并不影响正在计数的计数器的工作。为做到这一点,首先写入8253一个特定的控制字:SC1 SC0 0 0 ,这是控制字的一种形式。其中两比特SC1和SC0与控制器中的定义一样。后面两位刚好定义RL1和RL0为0 0。将此控制字写入8253后,就可将选中的计数器的当前计数值存入锁存器中。而后,利用读计数器操作两条输入指令即可把16位计数值读出。2)连接 为了用好8253,读者必须能够熟练地将它连接到系统总线上。下面就是8253与8088系统连接的例子,如图7-11所示。通过

21、译码器,使8253占用FF04HFF07H 4个接口地址。假如在连接中采用了部分地址译码方式,使A0不参加译码,则8253的每一个计数器和控制器分别占用两个接口地址。图7-11 8253与8088总线连接 D0D7A1A0A1A074LS138ABCG1&CLK0CLK1CLK2GATE0GATE2GATE1OUT0OUT1OUT2CS1YAG2BG2IORIOWA2A3A4A5A6A7A8A9A10A11A12A13A14A15IORIOW系统总线信号RDWRD0D7 图7-12所示是8253用于PC机的例子,采用的仍然是外设接口地址的部分译码方式,74LS138译码器的控制端G1有5个信号

22、译码的来源。当CPU执行程序时译码输出为高电平,保证G1输入有效。图中HRQ为DMA请求线,高电平有效。由于采用部分地址译码,8253占用外设接口地址040H05FH,在使用时只要选择其中4个合适的地址,分别代表计数器和控制字寄存器的地址即可工作。图7-12 8253在PC机系统中的连接简图 A1A0RDWRLS138BG2&CBA2YAG2G1IORIOWA1A0A8A9S0S1S2LOCKHRQA7A6A5CLK0CLK1CLK2PCLK2CS8253OUT0OUT1OUT2GATE2GATE0GATE15 VD0D7D0D7系统总线信号7.2.4 应用举例应用举例 PC机中有一片8253

23、,其分配的I/O地址为040H043H,加在计数器CLK端的是系统中主频(4.77 MHz)的4分频脉冲信号(1.19318 MHz)。计数器0用以产生实时时钟信号。计数器1用以形成动态存储器(RAM)刷新的定时信号。计数器2用以产生驱动扬声器的信号,发出多种声音。DATA SEGMENT MESS DB PRESS S OR P OR CTRL-C,0AH,0DH,$MESS1 DB PLEASE ENTER 1-8,0AH,0DH,$MESS2 DB YOU PRESS WRONG KEY,0AH,0DH,$FREQ DW 5421,4828,4552,4056,3614,3614 DW

24、4056,4552,4828,5421,4828,4828 DW 5421,5421 DW 5421,4828,4552,4056,3614,3614 DW 2710,3417,4056,4056,3 DUP(4552)DW 4056,4552,3614,3614 DW 4 DUP(2710),3614,4 DUP(3042)DW 3614,4056,4056,4552,4552,3042 DW 3614,3614 DW 4 DUP(2710),2415,2710,4 DUP(3042)DW 3614,4056,4552,4552,4828,5421 DW 6085,5421,3 DUP(40

25、56),3614,0 TIME DW 3 DUP(25),12,12,4 DUP(25),25 DW 25,4 DUP(12),100 DW 3 DUP(25),3 DUP(12),25,25,12 DW 3 DUP(25),4 DUP(12),100,12,25 DW 12,25,25,12,25,12,25,12,12 DW 3 DUP(25),12,12,100 DW 2 DUP(12,25,12,25,12,12),25 DW 25,12,12,25,100 DW 2 DUP(12,12,12,12,25,12,12,100)DW 4 DUP(12),25,25,12,25,12 DW

26、 25,25,4 DUP(12)DW 25,3 DUP(12),88,20 DUP(0),0YINJIE DW 4452,4056,3614,3417,3042,2710,2415,2280,0YANSHI DW 10 DUP(30)KEY DB 0DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC FARSTART:PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AXSTART1:MOV AH,09H MOV DX,OFFSET MESS INT 21H MOV AH,01H INT 21H CM

27、P AL,S JZ START2 CMP AL,P JZ START3 CMP AL,Q JZ START4 START2:CALL YANZOU JMP START1START3:CALL SOUND1 JMP START1START4:MOV AH,4CH INT 21HMAIN ENDP SOUND1 PROC NEAR LOOP1:MOV DX,OFFSET MESS1 MOV AH,09H INT 21H S2:MOV AH,01H INT 21H MOV KEY,AL CMP KEY,Q JZ S6 CALL DELAY2 JMP S2 S6:RET SOUND1 ENDP DEL

28、AY2 PROC NEAR S:MOV SI,OFFSET YINJIE MOV DI,OFFSET YANSHI MOV AL,KEY CMP AL,1 JB WRONG CMP AL,8 JA WRONG1 MOV AH,0 SUB AX,31H ROL AX,1 ADD SI,AX MOV AL,0B6H OUT 43H,AL MOV AX,SI OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H MOV AH,AL OR AL,3 OUT 61H,AL PUSH AX MOV BX,DI MOV CL,2 ROL BX,CLWAIT3:MOV CX,10

29、000 DELAY3:LOOP DELAY3 DEC BX JNZ WAIT3 POP AX MOV AL,AH OUT 61H,AL RETWRONG:MOV DX,OFFSET MESS2 MOV AH,09H INT 21H JMP SOUND1 WRONG1:CMP KEY,S JZ WRONG2 JMP WRONGWRONG2:CALLYANZOU JMP SOUND1DELAY2 ENDPYANZOU PROC NEAR MOV SI,OFFSET FREQ MOV DI,OFFSET TIME MOV AL,0B6H OUT 43H,AL SOUND:MOV AX,SI CMP

30、AX,0 JE DONE OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H MOV AH,AL OR AL,3 OUT 61H,AL MOV BX,DI MOV CL,2 ROL BX,CL WAIT1:MOV CX,10000 DELAY:LOOP DELAY DEC BX JNZ WAIT1 MOV AL,AH OUT 61H,AL INC SI INC SI INC DI INC DI JMP SOUNDDONE:RETYANZOU ENDPCODE ENDS END START 7.3 可编程并行接口可编程并行接口8255 7.3.1 并行接口技术概述

31、并行接口技术概述 8255是Intel为其80系列微处理器生产的通用可编程并行输入/输出接口。它具有很强的功能,在使用中可利用软件编程来指定它的功能。因此,8255获得了广泛的应用。7.3.2 8255的内部结构和外部引脚的内部结构和外部引脚 1.外部引线外部引线 8255的外部引线如图7-13所示。D0D7:双向数据信号线,用来传送数据和控制字。RD:读信号线,与其他信号线一起实现对8255的读操作。通常接系统总线的IOR信号。WR:写信号线,与其他信号一起实现对8255的写操作,通常接系统总线的IOW。CS:片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操

32、作。图7-13 8255 引线图 151015202125303540PA3PA2PA1PA0RDCS地A1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3 A0、A1:口地址选择信号线。8255内部有3个口(A口、B口、C口)和一个控制寄存器供软件编程选择。A0、A1的不同编码可分别选择上述3个口和一个控制寄存器,具体规定如下:A1 A0 选 择 0 0 A 口 0 1 B 口 1 0 C 口 1 1 控制寄存器 通常A0、A1分别接总线的A0、A1地址线(对808

33、8)。它们与CS一起共同决定8255的地址。RESET:复位输入信号,高电平有效。复位后,8255的A 口、B 口、C口均被定为输入。PA0PA7:A口的输入/输出信号线。该口是输入还是输出或双向,是由软件编程来决定的。PB0PB7:B 口的输入/输出信号线。可利用软件编程来规定它们是输入还是输出。PC0PC7:由工作方式来决定,PC0PC7可作为输入/输出线或控制和状态线使用。2.内部结构内部结构 图7-14 8255内部结构框图 A组控制A组端口A(8)A组端口上半部(4)B组端口下半部(4)B组端口B(8)内部逻辑外设接口数据总线缓冲器B组控制读/写控制逻辑DBRDA0WRA1RESET

34、CSOIOIOIOIPA7 PA0PC7 PC4PC3 PC0PB7 PB0 从图7-14中可以看到,左边的信号与系统总线相接,而右边是与外设相连接的三个口。三个口均为8位。其中A口、B口输入/输出均有锁存能力。C口输出有锁存能力,输入没有锁存能力,在使用上要注意到这一点。为了控制方便,将8255的三个口分成A、B两组。其中A 组包括A 口的8条线PA0PA7和C口的高4位 PC4PC7。B组包括B口的8条线PB0PB7和C口的低4位 PC0PC3。A组和B组分别由软件编程来加以控制。7.3.3 8255的控制字和工作方式的控制字和工作方式 1.8255的工作方式的工作方式 1)工作方式0,即

35、基本输入/输出方式 在方式0下,A口的8条线,B口的8条线,C口的高4位对应的4条线和低4位对应的4条线这四部分分别定义为不同的输入/输出。因为上述四部分的输入或输出是可以相互独立来定义的,则它们的输入/输出可有16种不同的组合,例如A口、B口、C口的高4位,C口的低4位均为输出;A口为输入,B口、C口高4位为输出等等。在这种方式下,定义为输出的口均可锁存数据,而定义为输入的口则无锁存能力。而且,在方式0下,C口还有按位置位和复位的能力。2)工作方式1,即选通输入/输出方式 在方式1下,A口和B口仍作为数据的输出或输入口,而同时要利用C口的某些位作为控制和状态信号,从而实现这种工作方式。当82

36、55工作于方式1时,A口和B口可任意由程序指定为是输入口还是输出口。为了阐述问题方便,我们分别以A口、B口均为输入或均为输出加以说明。将来实际应用时,A口、B口的输入或输出完全可以由软件编程来指定。当在方式1下,A口和B口均工作在输出状态时,要利用C口的6条线作为控制和状态信号线来实现,其定义如图7-15所示。为了实现A口或B口的方式1工作,必须利用C口的一些引线来实现。如图所示的那样,A口和B口所使用的C口的引线是固定不变的。例如,A口一定利用PC3和PC7。C口所提供的控制信号的含义是:(1)OBF:输出缓冲器满信号,低电平有效。用来告诉外设,在规定的接口上,CPU已输出一个有效数据,外设

37、可以从该接口上去取此数据。(2)ACK:外设响应信号,低电平有效。用来通知接口外设已经将数据接收,并使OBF1。图7-15 方式1下的A、B口均为输出的信号定义 A口B口PC7PC6PC3PC0PC2PC1OBFAACKAINTRAINTRBACKBOBFB8255PA0PA7PB0PB7 (3)INTR:中断请求信号,高电平有效。当利用对C 口的位操作命令使PC61(或PC21),且ACK1,OBF=1时,INTR 有效。也就是当外设已从口获得数据,使口的缓冲器变空而且使口允许中断时,中断请求就发生了。在方式1下,某口的输出过程若利用中断方式进行,则从CPU响应中断开始。进入中断服务程序,C

38、PU向接口写数据,IOW脉冲将数据锁存在接口上。同时,去掉INTR信号并使OBF有效。有效的OBF通知外设接收数据。一旦外设将数据接收,就送出一个有效的ACK脉冲。该脉冲使OBF无效。同时,产生一个新的中断请求,请求CPU向外设输出下一个数据。在方式1,A口、B口为输出口时,它们的中断允许位分别为PC6和PC2。图7-16 方式1下A、B口均为输入的信号定义 A口B口PC4PC5PC3PC0PC1PC2STBAINTRAINTRBSTBB8255IBFAIBFBPA0PA7PB0PB7 在这里提醒读者注意,当两个口同时为方式1输出时,使用C 口的6条线,剩下的两条线还可以用程序指定它们的数据传

39、送方向是输入还是输出,而且也可以对它实现位操作方式进行置位或复位;当一个口工作在方式1时,则剩下C 口的5条线也可按照上面所说的情况工作。当在方式1下,A、B口均为输入时,与方式1下两口均为输出类似,为实现选通输入,同样要利用C 口的信号线。其定义如图7-16所示。在A、B口均为输入时所用到的控制信号的定义如下:STB:低电平有效的输入选通信号,由外设提供,利用该信号可将外设数据锁存于8255口的输入锁存器中。IBF:高电平有效的输入缓冲器满信号。当它有效时,表示已有一个有效的外设数据锁存于8255口的锁存器中。可用此信号通知外设数据已锁存于接口中尚未被CPU读走,暂不能向接口输入数据。INT

40、R:中断请求信号,高电平有效。对于A、B 口,可利用位操作命令使PC41或PC2=1,且IBF和STB均为高电平时,可使INTR有效,向CPU提出中断请求。也就是当外设将数据锁存于接口之中,且又允许中断请求发生时,就会产生中断请求。A 口和B口允许中断请求发生时分别使PC4=1或PC2=1。方式1下数据输入过程如下所述:当外设有数据需要输入时,将数据送到8255口上,同时利用输出STB脉冲将数据锁存于口的数据锁存器中。锁存信号STB使IBF有效。如果此时口允许提出中断请求(PC4或PC2为1),则可以产生有效的中断请求信号INTR。CPU响应中断,去读8255的有关接口,则可将数据读到CPU的

41、内部寄存器中,CPU的IOR(外设读控制信号)加到8255上,即可使INTR变为无效,而CPU读接口结束后,IBF变为无效(低电平),表示输入缓冲器已空,可以再次接受外设提供的下一个数据。在方式1下,8255的A口和B口可以均为输入或均为输出;也可以一个输入一个输出;还可以其中一个口工作于方式1而另一个口工作于方式0。这种灵活的工作特点是由其可编程的功能来实现的。3)工作方式2,即双向输入/输出方式 方式2只有8255的A 口才有。在A 口工作于双向输入/输出方式时,要利用C 口的5条线才能实现。此时,B 口只能工作在方式0和方式1下,而C 口剩下的三条线可作为输入/输出线使用或用作B 口方式

42、1之下的控制线。A 口工作于方式2下时,各信号的定义如图7-17 所示(图中未画B口和C口的其他引线)。图7-17 方式2下的信号定义 A口PC7PC6PC4PC5PC3OBFAIBFA8255ACKASTBAINTRAPA0PA7 当A口工作在方式2下时,其控制信号OBF、ACK,STB,IBF及 INTR 与前面的叙述是一样的。所不同的主要是:(1)因为在方式2下A口既作为输出又作为输入,因此,只能当ACK有效时才能打开A 口输出数据三态门,数据由 PA0PA7输出。当ACK无效时,A 口的输出数据三态门呈高阻状态。(2)在方式2下,A 口输入或输出数据均可以引起中断,因此,A口提出的中断

43、请求就由两位C 口的数据来控制。其中利用置位PC6来允许A口的输出中断请求;而利用置位PC4允许A口的输入中断请求。A 口在方式2下的工作过程简要叙述如下:工作在方式2下的A 口,可以认为是方式1的输入和输出相结合而分时工作。其工作过程如方式1的输入和输出过程。值得注意的是,在这种工作方式下,8255与外设之间是通过A口的8条线PA0PA7交换数据的。在PA0PA7上,可能出现8255口输出数据到外设,也可能出现外设通过PA0PA7将数据传送给8255的情况。这就要防止PA0PA7上的数据线竞争问题。在方式2下,A 口在STB过程中锁存数据后,外设即可去掉要输入的数据。而 A口的输出数据是在A

44、CK有效时才将数据输出的,由外设获得输出的数据,完成双向传送的功能。2.方式控制字及状态字方式控制字及状态字 1)控制字 图7-18 8255控制字格式 76543210控制C口低4位1:输入 0:输出控制B口8位1:输入 0:输出方式选择0:方式0 1:方式1控制C口高4位0:输出 1:输入控制A口8位0:输出 1:输入方式选择00:方式001:方式11:方式2功能控制0:位操作1:方式选择 当控制字bit71时,控制字的bit6bit3这四位用来控制A组,即A 口的8位和C口的高4位。而控制字的低3位bit2bit0用来控制B 组,包括B口的8位和C 口的低4位。当控制字的bit70时,指

45、定该控制字仅对C 口进行位操作按位置位或复位操作。对C 口按置位/复位操作的控制字格式如图7-19所示。如前面工作方式中所叙述,在必要时,可利用C 口的置位/复位控制字来使 C 口的某一位输出0或1。图 7-19 C口位操作控制字格式 D7D6D5D4D3D2D1D00置/复位0:复位1:置位C口的选择D3D2D1选择0 0 0PC00 0 1PC10 1 0PC20 1 1PC31 0 0PC41 0 1PC51 1 0PC61 1 1PC7无关 2)状态字 当8255的A、B 口工作在方式1或方式2时,可以通过读C 口的状态检测A口和B口的状态。当8255的A口和B 口均工作在方式1的输入

46、时,由C 口输入 8 位数据,各位的意义如图7-20所示。图 7-20 A、B口均为方式1输入时的状态字 D7D6D5D4D3D2D1D0I/OI/OIBFINTRINTE中断允许IBFINTEINTRA组状态B组状态图 7-21 A、B口均为方式1输出时的状态字 D7D6D5D4D3D2D1D0I/OINTR INTEINTRA组状态B组状态I/OINTEOBFOBF图 7-22 A口方式2工作时的状态字 D7D6D5D4D3D2D1D0INTRA组状态B组状态INTEOBFIBFINTE由B口的工作方式来决定 3.8255的寻址及连接使用的寻址及连接使用 8255占外设编址的4个地址,即A

47、口、B口、C口和控制寄存器各占一个外设接口地址。对同一个地址分别可以进行读/写操作。例如,读A口可将A口的数据读出;写A口可将CPU的数据写入A口并输出。前面提到8255的片选信号及A0、A1的功能,再加上读/写信号,即可方便地对8255进行寻址。这些信号的功能如表7-4所示。在8255的连接使用中,由于8088只有8条数据线,连接起来是比较方便的,8255的一个连接的实例如图7-23所示。由图7-23可见,8255与8088总线连接是比较容易的。只是图中为了简化起见未画出AEN的形成。这里我们可以认为只要CPU在正常地执行其指令,AEN就为低电平。这样,可以看到在图7-23中,8255是由A

48、9A0 10条地址线来决定其地址的。它所占的地址为380H383H。利用全部地址线A0A15连接两片8255构成外设接口,其连接图如图7-24所示。由图中的译码电路可以看到,两片8255的接口地址分别为FBC0HFBC3H和FBC4HFBC7H。图 7-23 8255与总线连接实例 BG2CBAAG2G1&10YRESETIORIOWA1A0A9A8A7A6AENA5A4A3A2A1A0RDWRRESETCS8255D0D7PA0PA7PC0PC7PB0PB7D0D7图7-24 8255 连接在8088系统中&1A1A0RDWRRESETCS82551A口C口B口&1A1A0RDWRRESET

49、CS8255A口C口B口&GBG2CABRESETIORIOWA1A0A2A15A14A13A12A11A10A9A8A7A6IORIOWA5A4A3A2A0A1IOWIORRESETD0D7D0D7PA0PA7PC0PC7PB0PB7G2ALS138&D0D7D0D7PA0PA7PC0PC7PB0PB7系统总线信号0Y表表7-4 8255 的寻址的寻址 7.3.4 8255的应用举例的应用举例 图 7-25 8255与打印机的连接 PA0PA1PA7PC6PC21D0D1D7BUSYSTROBE打印机系统总线8255 接口将数据传给打印机的输入端D0D7,利用一个负的锁存脉冲(1 s宽度)锁

50、存于打印机内部,打印机进行处理。同时,打印机送出高电平的BUSY信号,表示打印机正忙。一旦BUSY变低,表示打印机又可以接收下一个数据。为了与打印机接口,A口、B口均工作在方式0而用A口的PA0PA7与打印机的D0D7 相连接,C口的PC6用作输出接STROBE,PC2为输入,接打印机的忙信号BUSY。为此,应初始化A口为输出,C口的高4位为输出,C口的低4位为输入,B口保留,暂时未用。因此,在下面的初始化中用B口为输入。MOV AL,10000011BMOV DX,0383HOUT DX,AL 若要将存于AL 中的字符送打印机打印出来,则可以用下面的简单程序来完成:MOV DX,0382H

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

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《16位微机原理及接口技术》课件第7章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|