qs微机原理第09章1-8255.ppt

上传人:本田雅阁 文档编号:2894401 上传时间:2019-06-02 格式:PPT 页数:33 大小:379.52KB
返回 下载 相关 举报
qs微机原理第09章1-8255.ppt_第1页
第1页 / 共33页
qs微机原理第09章1-8255.ppt_第2页
第2页 / 共33页
qs微机原理第09章1-8255.ppt_第3页
第3页 / 共33页
qs微机原理第09章1-8255.ppt_第4页
第4页 / 共33页
qs微机原理第09章1-8255.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《qs微机原理第09章1-8255.ppt》由会员分享,可在线阅读,更多相关《qs微机原理第09章1-8255.ppt(33页珍藏版)》请在三一文库上搜索。

1、第九章 微型计算机常用接口技术,9.1 内容 可编程接口芯片:并行接口芯片8255A,4学时,微机系统多采用大规模集成电路接口芯片。利用这种芯片构成的接口电路,在不改变硬件的情况下,可通过编程改变其功能、工作方式等,使用起来非常灵活 。,可编程并行接口芯片8255A,并行通信与接口 并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。 Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便

2、,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。,9.1.1 8255A的结构与引脚,9.1.1 8255A的结构与引脚,8255A由以下几部分组成: 1三个数据端口A,B,C: 这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。 A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的 锁存功能。 B口:也是一个独立的8位I/O口,仅有输出数据的锁存功能。 C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立 的4位I/O口。也是仅对输出数据进行锁存。 2A组和B组的控制电路 这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有

3、控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。 A组控制电路用来控制A口及C口的高4位; B组控制电路用来控制B口及C口的低4位。,9.1.1 8255A的结构与引脚,3数据总线缓冲器 8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。 4读/写控制逻辑 读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。,9

4、.1.1 8255A的结构与引脚,8255A的引脚: 引脚信号可以分为两组:面向CPU的信号; 面向外设的信号。 1面向CPU的引脚信号及功能 D0-D7:8位,双向,三态数据线,用来连接系统数据总线; RESET:复位信号,高电平有效,输入,用来清除8255A的内 部寄存器,并置A口,B口,C口均为输入方式; :片选,输入,用来决定芯片是否被选中; :读信号,输入,控制8255A将数据或状态信息送给CPU; :写信号,输入,控制CPU将数据或控制信息送到8255A; A1,AO:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A内部共有4

5、个端口:A口,B口,C口和控制口。片选,读/写A1,A0这几个信号的组合决定了8255A的所有具体操作 :,9.1.1 8255A的结构与引脚,2面向外设的引脚信号及功能 PA0PA7:A组数据信号,用来连接外设; PB0PB7:B组数据信号,用来连接外设; PC0PC7:C组数据信号,用来连接外设或者作为控制号。,9.1.2 8255A的控制字与状态字,1.方式选择控制字用于定义端口的工作方式,控制字有8位:,实例,9.1.2 8255A的控制字与状态字,2. C口置位复位控制字,此控制字只对C口有效,该控制字紧跟在方式控制字后定义,它被写入控制口,不是写入C口。在方式1和方式2时要用到这个

6、控制字。,9.1.2 8255A的控制字与状态字,3. 8255A的状态字 8255A的状态字为查询方式提供了状态标志位。8255A工作于方式1或方式2时的状态字可通过读端口C得到。状态字为查询方式提供了状态标志位,如输入缓冲器满信号IBF,输出缓冲器满信号OBF等。 (1)、方式1的状态字格式,方式1输入状态字格式: A组 B组 方式1输出状态字格式: A组 B组,要注意的是:端口C的状态字各位含义与相应外部引脚信号并不完全相同。INTEA和INTEB是内部控制信号,通过向控制口写入“端口C置1/置0控制字”来设定的,设定后,就会在状态字中反映出来。 (2)、方式2状态字格式 方式2状态字也

7、是从端口C读取,其格式如下图所示: 其中:INTE1是输出中断允许位,INTE2是输入中断允许位。如前所述,它们也是利用“端口C置1/置0控制字”来使其置位或复位的。 A口工作于方式2时,B口可以工作在方式1和方式0;若B口方式0,则端口C的PC2-PC0用于数据的输入输出;若B口工作在方式1,则PC2-PC0提供输入或输出的状态。,D7,D0,A组,组,9.1.2 8255A的控制字与状态字,9.1.3 8255A的工作方式,8255A有三种工作方式,用户可以通过编程来设置。 方式0:简单输入/输出;查询方式;A,B,C三个端口均可。 方式1:选通输入/输出;中断方式;A ,B,两个端口均可

8、。 方式2:双向输入/输出;中断方式。只有A端口才有。 工作方式的选择可通过向控制端口写入控制字来实现。,9.1.3 8255A的工作方式,1方式0:适用于无条件传送和查询方式的接口电路 为一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。方式0的控制字:最高3位是100,其它D2位为0,D4、D3、D1、D0这4位可为任意,他们有16种组合。,9.1.3 8255A的工作方式,2方式1 方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输

9、出。而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。 (1) 方式1的输入组态和应答信号的功能: C口的PC3-PC5用作A口的应答联络线, PC0-PC2则作用B口的应答联络线, PC6PC7则可作为方式0使用。 应答联络线的功能如下:,9.1.3 8255A的工作方式,A口 B口 : PC4 PC2 IBF: PC5 PC1 INTR: PC3 PC0 INTE: PC4置1 PC2置1, :选通输入。用来将外设输入的数据 打入8255A的输入缓冲器。 IBF:输入缓冲器满。作为STB的回答信号 INTR:中断请求信号。

10、INTR置位的条件是 STB为高且IBF为高且INTE为高。 INTE:中断允许。对A口来讲,是由PC4置 位来实现,对B口来讲,则是由PC0 置位来实现。事先将其置位。,方式1输入组态,9.1.3 8255A的工作方式,(2) 方式1的输出组态和应答信号功能: C口的PC3、PC6、PC7用作A口的应答联络线, PC0-PC2则作用B口的应答联络线, PC4PC5则可作为方式0使用。 应答联络线的功能如下:,9.1.3 8255A的工作方式, :输出缓冲器满。当CPU已将要输出的数据送入8255A时 有效,用来通知外设可以从8255A取数。 :响应信号。作为对 的响应信号,表示外设已将数据从

11、 8255A的输出缓冲器中取走。 INTR:中断请求信号。INTR置位的条件是ACK为高且OBF 为高且INTE为高。 INTE:中断允许。对A口来讲,由PC6的置位来实现,对B口 仍是由PC2的置位来 实现。,方式1的输出组态,9.1.3 8255A的工作方式,3方式2 方式2为双向选通I/O方式,只有A口才有此方式。这时,C口有5根线用作A口的应答联络信号,其余3根线可用作方式0,也可用作B口方式1的应答联络线。 方式2:就是方式1的输入与输出方式的组合,各应答信号的功能也相同。而C口余下的PC0PC2正好可以充当B 口方式1的应答线,若B口不用或工作于方式0,则这三条线也可工作于方式0。

12、,9.1.3 8255A的工作方式,方式2的应用场合 方式2是一种双向工作方式,如果一个并行外部设备既可以作为输入设备,又可以作为输出设备,并且输入输出动作不会同时进行。 方式2和其它方式的组合 方式2和方式0输入的组合:控制字:11XXX01T 方式2和方式0输出的组合:控制字:11XXX00T 方式2和方式1输入的组合:控制字:11XXX11X 方式2和方式1输出的组合:控制字:11XXX10X 其中X表示与其取值无关,而T表示视情况可取1或0。,9.1.4 8255A的编程及应用,对8255A的编程涉及到两个内容: 写控制字设置工作方式等信息, 使C口的指定位置位/复位的功能。 例: 利

13、用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。试完成相应的软硬件设计。 首先我们分析一下打印机的工作。微型打印机和主机之间的接口通常采用并行接口。它的工作流程是:主机将要打印的数据送上数据线,然后发选通信号。打印机将数据读入,同时使BUSY线为高,通知主机停止送数。这时,打印机内部对读入的数据进行处理。处理完以后使ACK有效,同时使BUSY失效,通知主机可以发下一个数据。,入,入,出,出,9.1.4 8255A的编程及应用,硬件连线如下图,说明: 由PC0充当打印机的选通信号,通过对PC0的置位/复位来产生选通。同时,由PC7来接收打印机发出的“BUSY”信号

14、作为能否输出的查询。 8255A的控制字为:10001000 即88H A口方式0,输出;C口高位方式0输入,低位方式0输出 PC0置位: 00000001 即 01H PC0复位: 00000000 即 00H 8255A的4个口地址分别为:00H,01H,02H,03H。,控制字,9.1.4 8255A的编程及应用,编制程序如下: DADA SEGMENT BUFF DB This is a print program!,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX, DATA MOV DS, AX MOV SI

15、,OFFSET BUFF MOV AL, 88H ;8255A初始化,A口方式0,输出 OUT 03H, AL ; C口高位方式0输入,低位方式0输出 MOV AL, 01H; OUT 03H,AL ;使PC0置位,即使选通无效,9.1.4 8255A的编程及应用,WAIT: IN AL, 02H TEST AL, 80H ;检测PC7是否为1即是否忙 JNZ WAIT ; 为忙则等待 MOV AL,SI CMP AL,$ ;是否结束符 JZ DONE ; 是则输出回车 OUT 00H,AL ;不是结束符,则从A口输出 MOV AL,00H OUT 03H, AL MOV AL, 01H OU

16、T 03H,AL ;产生选通信号 INC SI ;修改指针,指向下一个字符 JMP WAIT,DONE: MOV AL,0DH OUT 00H,AL ;输出回车符 MOV AL, 00H OUT 03H,AL MOV AL, 01H OUT 03H,AL ;产生选通 WAIT1: IN AL, 02H TEST AL, 80H ;检测PC7是否为1即是否忙 JNZ WAIT 1 ; 为忙则等待 MOV AL,0AH OUT 00H,AL ;输出换行符 MOV AL, 00H OUT 03H,AL MOV AL, 01H OUT 03H,AL ;产生选通 MOV AH,4CH INT 21H C

17、ODE ENDS END START,9.1.4 8255A的编程及应用,例: 将上例中8255A的工作方式改为方式1,采用中断方式将BUFF开始的缓冲区中的100个字符从打印机输出。(假设打印机接口仍采用Centronics标准) 分析:仍用PC0作为打印机的选通,打印机的作为8255A的A口,8255A的中断请求信号(PC3)接至系统中断控制器8259A的IR3,其它硬件连线同上例。,9.1.4 8255A的编程及应用,8255A的控制字为:1010XXX0 PC0置位: 00000001 即 01H PC0复位: 00000000 即 00H PC6置位: 00001101 即 0DH

18、,允许8255A的A 口输出中断 由硬件连线可以分析出,8255A的4个口地址分别为:00H,01H,02H,03H。 假设8259A初始化时送ICW2为08H,则8255A A口的中断类型码是0BH,此中断类型码对应的中断向量应放到中断向量表从2CH开始的4个单元中。,主程序: MAIN: MOV AL,0A0H OUT 03H,AL ;设置8255A的控制字 MOV AL,01H ;使选通无效 OUT 03H,AL XOR AX,AX MOV DS,AX MOV AX,OFFSET ROUTINTR MOV WORD PTR 002CH,AX MOV AX,SEG ROUTINTR MOV

19、 WORD PTR 002EH,AX ;送中断向量 MOV AL,0DH OUT 03H,AL ;使8255A A口输出允许中断 MOV DI,OFFSET BUFF ;设置地址指针 MOV CX,99 ;设置计数器初值 MOV AL,DI OUT 00H,AL ;输出一个字符 INC DI MOV AL,00H OUT 03H,AL ;产生选通 INC AL OUT 03H,AL ;撤消选通,9.1.4 8255A的编程及应用,STI ;开中断 NEXT: HLT ;等待中断 LOOP NEXT ;修改计数器的值,指向下一个要输出的字符 HLT 中断服务子程序如下: ROUTINTR:MOV

20、 AL,DI OUT 00H,AL ;从A口输出一个字符 MOV AL,00H OUT 03H,AL ;产生选通 INC AL MOV 03H,AL ;撤消选通 INC DI ;修改地址指针 IRET ;中断返回,9.1.4 8255A的编程及应用,例:将外设开关的二进制状态从A口输入,并由B口输出到LED显示器。,9.1.4 8255A的编程及应用,图中LED是8段发光二极管,当某段中流过电流,则该段发光。从 图中可看出,8个发光二极管采用共阳极接法,当B口的某位输出高 时,连接该位的那一段亮。所以输出数字的二进制编码如下: 数字 发光的相应段 编码 0 a、b、c、d、e、f 001111

21、11=3FH 1 b、c 00000110=06H 2 a、b、d、e、g 01011011=5BH 3 a、b、c、d、g 01001111=4FH 4 b、c、f、g 01100110=66H 5 a、c、d、f、g 01101101=6DH A a、b、c、e、f、g 01110111=77H b c、d、e、f、g 01111100=7CH F a、e、f、g 01110001=71H,9.1.4 8255A的编程及应用,8255A端口地址为D0-D3H,A口工作于方式0输入,B口工作于方式0输出,程序片段如下: START: mov al, 90H ;设置方式选择字 out 0D3H, al AA: in al, 0D0H ;读端口A and al, 0FH ;取端口A低4位 mov bx, offset LEDTAL;取LED显示代码表首地址 xlat ;查表,AL(BX+AL) out 0D1H, al ;从端口B输出LED显示代码 mov ax, 1000 ;延迟 BB: dec ax jnz BB jmp AA ;返回到AA hlt LEDTAL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,67H,77H,7CH,39H,5EH,79H,71H,作业,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1