资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
BUPT 第九章微型计算机常用接口技术微型计算机常用接口技术 9.1 内容内容n可编程接口芯片:可编程接口芯片:并行接口芯片并行接口芯片8255A 4学时学时微微机机系系统统多多采采用用大大规规模模集集成成电电路路接接口口芯芯片片。利利用用这这种种芯芯片片构构成成的的接接口口电电路路,在在不不改改变变硬硬件件的的情情况况下下,可可通通过过编编程程改改变变其其功功能能、工工作作方式等,使用起来非常灵活方式等,使用起来非常灵活 。BUPT可编程并行接口芯片可编程并行接口芯片8255A 并行通信与接口并行通信与接口并并行行通通信信就就是是把把一一个个字字符符的的各各位位同同时时用用几几根根线线进进行行传传输输。传传输输速速度度快快,信信息息率率高高。电电缆缆要要多多,随随着着传传输输距距离离的的增增加加,电电缆缆的的开开销销会会成成为为突突出出的的问问题题,所所以以,并并行行通通信信用用在在传传输输速速率率要要求求较较高高,而而传传输输距距离离较较短短的的场场合合。Intel 8255A是是一一个个通通用用的的可可编编程程的的并并行行接接口口芯芯片片,它它有有三三个个并并行行I/O口口,又又可可通通过过编编程程设设置置多多种种工工作作方方式式,价价格格低低廉廉,使使用用方方便便,可可以以直直接接与与Intel系系列列的的芯片连接使用,在中小系统中有着广泛的应用。芯片连接使用,在中小系统中有着广泛的应用。BUPT9.1.1 8255A的结构与引脚的结构与引脚 BUPT9.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工工作作方方式式的的电电路路,这这些些控控制制电电路路内内部部设设有有控控制制寄寄存存器器,可可以以根根据据CPU送送来来的的编编程程命命令令来来控控制制8255A的的工工作作方方式式,也也可可以以根根据据编编程程命命令令来来对对C口口的的指指定定位位进行置进行置/复位的操作。复位的操作。A组控制电路用来控制组控制电路用来控制A口及口及C口的高口的高4位;位;B组控制电路用来控制组控制电路用来控制B口及口及C口的低口的低4位。位。BUPT9.1.1 8255A的结构与引脚的结构与引脚 3数据总线缓冲器数据总线缓冲器8位位的的双双向向的的三三态态缓缓冲冲器器。作作为为8255A与与系系统统总总线线连连接接的的界界面面,输输入入/输输出出的的数数据据,CPU的的编编程程命命令令以以及及外外设设通通过过8255A传传送送的的工工作作状状态态等等信信息息,都都是是通通过它来传输的。过它来传输的。4读读/写控制逻辑写控制逻辑读读/写写控控制制逻逻辑辑电电路路负负责责管管理理8255A的的数数据据传传输输过过程程。它它接接收收片片选选信信号号及及系系统统读读信信号号、写写信信号号、复复位位信信号号RESET,还还有有来来自自系系统统地地址址总总线线的的口口地地址址选选择择信号信号A0和和A1。BUPT9.1.1 8255A的结构与引脚的结构与引脚 8255A的引脚的引脚:引脚信号可以分为两组:引脚信号可以分为两组:面向面向CPU的信号的信号; 面向外设面向外设的信号。的信号。1面向面向CPU的引脚信号及功能的引脚信号及功能D0-D7:8位,双向,三态数据线,用来连接系统数据总线;位,双向,三态数据线,用来连接系统数据总线;RESET:复复位位信信号号,高高电电平平有有效效,输输入入,用用来来清清除除8255A的的内内部寄存器,并置部寄存器,并置A口,口,B口,口,C口均为输入方式;口均为输入方式; :片选,输入,用来决定芯片是否被选中;:片选,输入,用来决定芯片是否被选中; :读读信信号号,输输入入,控控制制8255A将将数数据据或或状状态态信信息息送送给给CPU; :写写信信号号,输输入入,控控制制CPU将将数数据据或或控控制制信信息息送送到到8255A;A1,AO:内内部部口口地地址址的的选选择择,输输入入。这这两两个个引引脚脚上上的的信信号号组组合合决决定定对对8255A内内部部的的哪哪一一个个口口或或寄寄存存器器进进行行操操作作。8255A内内部部共共有有4个个端端口口:A口口,B口口,C口口和和控控制制口口。片片选选,读读/写写A1,A0这几个信号的组合决定了这几个信号的组合决定了8255A的所有具体操作的所有具体操作 :BUPT9.1.1 8255A的结构与引脚的结构与引脚 A1 A0 操操 作作 数数 据据 传传 送送 方方 式式 0 0 1 0 0 读读 A 口口 A口数据口数据 数据总线数据总线 0 0 1 0 1读读 B 口口 B口数据口数据 数据总线数据总线 0 0 1 1 0读读 C 口口 C口数据口数据 数据总线数据总线 0 1 0 0 0 写写 A 口口数据总线数据数据总线数据 A口口 0 1 0 0 1写写 B口口数据总线数据数据总线数据 B口口 0 1 0 1 0 写写 C 口口数据总线数据数据总线数据 C口口 0 1 0 1 1 写控制口写控制口 数据总线数据数据总线数据 控制口控制口 2 2面向外设的引脚信号及功能面向外设的引脚信号及功能 PA0PA7PA0PA7:A A组数据信号,用来连接外设;组数据信号,用来连接外设; PB0PB7PB0PB7:B B组数据信号,用来连接外设;组数据信号,用来连接外设; PC0PC7PC0PC7:C C组数据信号,用来连接外设或者作为控制号。组数据信号,用来连接外设或者作为控制号。 BUPT 9.1.2 8255A的控制字的控制字与状态字1.方方式式选选择择控控制制字字用用于于定定义义端端口口的的工工作作方方式式,控控制制字字有有8位位:实例BUPT 9.1.2 8255A的控制字的控制字与状态字2. C口置位复位控制字口置位复位控制字 此此控控制制字字只只对对C C口口有有效效,该该控控制制字字紧紧跟跟在在方方式式控控制制字字后后定定义义,它它被被写写入入控制口控制口,不是写入,不是写入C C口。在方式口。在方式1 1和方式和方式2 2时要用到这个控制字。时要用到这个控制字。BUPT 9.1.2 8255A的控制字的控制字与状态字3. 8255A的状态字的状态字8255A的的状状态态字字为为查查询询方方式式提提供供了了状状态态标标志志位位。8255A工工作作于于方方式式1或或方方式式2时时的的状状态态字字可可通通过过读读端端口口C得得到到。状状态态字字为为查查询询方方式式提提供供了了状状态态标标志志位位,如如输输入入缓缓冲冲器器满满信信号号IBF,输输出出缓缓冲冲器器满满信信号号OBF等。等。 (1)、方式、方式1的状态字格式的状态字格式BUPT 方式方式1输入状态字格式输入状态字格式: A组组 B组组方式方式1输出状态字格式输出状态字格式: A组组 B组组D7D6D5D4D3D2D1D0I/OI/OIBFAINTEA AINTRA AINTEB BIBFBINTRB BD7D6D5D4D3D2D1D0OBFAINTEAI/OI/OINTRAINTEBOBFBINTRBBUPT 要要注注意意的的是是:端端口口C的的状状态态字字各各位位含含义义与与相相应应外外部部引引脚脚信信号号并并不不完完全全相相同同。INTEA和和INTEB是是内内部部控控制制信信号号,通通过过向向控控制制口口写写入入“端端口口C置置1/置置0控控制制字字”来来设设定定的的,设设定定后后,就就会在状态字中反映出来。会在状态字中反映出来。 (2)、方式、方式2状态字格式状态字格式 方式方式2状态字也是从端口状态字也是从端口C读取,其格式如下图所示:读取,其格式如下图所示: 其其中中:INTE1是是输输出出中中断断允允许许位位,INTE2是是输输入入中中断断允允许许位位。如如前前所所述述,它它们们也也是是利利用用“端端口口C置置1/置置0控控制制字字”来来使使其其置位或复位的。置位或复位的。 A口口工工作作于于方方式式2时时,B口口可可以以工工作作在在方方式式1和和方方式式0;若若B口口方方式式0,则则端端口口C的的PC2-PC0用用于于数数据据的的输输入入输输出出;若若B口工作在方式口工作在方式1,则,则PC2-PC0提供输入或输出的状态。提供输入或输出的状态。OBFAINTE1IBFAINTE2INTRAD7D0A组组 9.1.2 8255A的控制字的控制字与状态字BUPT 9.1.3 8255A的工作方式的工作方式 8255A有有三三种种工工作作方方式式,用用户户可可以以通通过过编编程程来来设设置。置。方方式式0:简简单单输输入入/输输出出;查查询询方方式式;A,B,C三三个端口均可。个端口均可。方方式式1:选选通通输输入入/输输出出;中中断断方方式式;A ,B,两两个端口均可。个端口均可。方方式式2:双双向向输输入入/输输出出;中中断断方方式式。只只有有A端端口口才有。才有。工工作作方方式式的的选选择择可可通通过过向向控控制制端端口口写写入入控控制制字字来来实现。实现。 BUPT 9.1.3 8255A的工作方式的工作方式 1方式方式0:适用于无条件传送和查询方式的接口电路适用于无条件传送和查询方式的接口电路为为一一种种简简单单的的输输入入/输输出出方方式式,没没有有规规定定固固定定的的应应答答联联络络信信号号,可可用用A,B,C三三个个口口的的任任一一位位充充当当查查询询信信号号,其其余余I/O口口仍仍可可作作为为独独立立的的端端口口和和外外设设相相连连。方方式式0的的控控制制字字:最最高高3位位是是100,其其它它D2位位为为0,D4、D3、D1、D0这这4位位可可为为任任意,他们有意,他们有16种组合。种组合。BUPT 9.1.3 8255A的工作方式的工作方式 2方式方式1 方方式式1是是一一种种选选通通I/O方方式式,A口口和和B口口仍仍作作为为两两个个独独立立的的8位位I/O数数据据通通道道,可可单单独独连连接接外外设设,通通过过编编程程分分别别设设置置它它们们为为输输入入或或输输出出。而而C口口则则要要有有6位位(分分成成两两个个3位位)分分别别作作为为A口口和和B口口的的应应答答联联络络线线,其其余余2位位仍可工作在方式仍可工作在方式0,可通过编程设置为输入或输出。可通过编程设置为输入或输出。(1) 方式方式1的输入组态和应答信号的功能的输入组态和应答信号的功能:C口的口的PC3-PC5用作用作A口的应答联络线,口的应答联络线, PC0-PC2则作用则作用B口的应答联络线,口的应答联络线,PC6PC7则可作为方式则可作为方式0使用。使用。应答联络线的功能如下:应答联络线的功能如下:BUPT 9.1.3 8255A的工作方式的工作方式 A A口口B B口口:PC4PC4 PC2 PC2 IBF IBF:PC5PC5 PC1 PC1 INTR INTR: PC3 PC0 PC3 PC0 INTE INTE: PC4 PC4置置1 1 PC2PC2置置1 1 :选通输入。用来将外设输入的数据:选通输入。用来将外设输入的数据打入打入82558255A A的输入缓冲器。的输入缓冲器。IBFIBF:输入缓冲器满。作为输入缓冲器满。作为STBSTB的回答信号的回答信号INTRINTR:中断请求信号。中断请求信号。INTRINTR置位的条件是置位的条件是STBSTB为高且为高且IBFIBF为高且为高且INTEINTE为高。为高。INTEINTE:中断允许。对中断允许。对A A口来讲,是由口来讲,是由PC4PC4置置位来实现,对位来实现,对B B口来讲,则是由口来讲,则是由PC0PC0置位来实现。事先将其置位。置位来实现。事先将其置位。方式1输入组态 BUPT9.1.3 8255A的工作方式的工作方式(2) 方式方式1的输出组态和应答信号功能的输出组态和应答信号功能:C口的口的PC3、PC6、PC7用作用作A口的应答联络线,口的应答联络线, PC0-PC2则作用则作用B口的应答联络线,口的应答联络线, PC4PC5则可作为方式则可作为方式0使用。使用。应答联络线的功能如下:应答联络线的功能如下:BUPT 9.1.3 8255A的工作方式的工作方式 :输输出出缓缓冲冲器器满满。当当CPU已已将将要要输输出出的的数数据据送送入入8255A时时有效,用来通知外设可以从有效,用来通知外设可以从8255A取数。取数。:响响应应信信号号。作作为为对对 的的响响应应信信号号,表表示示外外设设已已将将数数据据从从8255A的输出缓冲器中取走。的输出缓冲器中取走。INTR:中断请求信号。中断请求信号。INTR置位的条件是置位的条件是ACK为高且为高且OBF为高且为高且INTE为高。为高。INTE:中中断断允允许许。对对A口口来来讲讲,由由PC6的的置置位位来来实实现现,对对B口口仍是由仍是由PC2的置位来的置位来实现。实现。方式1的输出组态 BUPT 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。BUPT 9.1.3 8255A的工作方式的工作方式 方式方式2的应用场合的应用场合方方式式2是是一一种种双双向向工工作作方方式式,如如果果一一个个并并行行外外部部设设备备既既可可以以作作为为输输入入设设备备,又又可可以以作作为为输输出出设设备备,并并且且输入输出动作不会同时进行。输入输出动作不会同时进行。方式方式2和其它方式的组合和其它方式的组合 方式方式2和方式和方式0输入的组合:控制字:输入的组合:控制字:11XXX01T 方式方式2和方式和方式0输出的组合:控制字:输出的组合:控制字:11XXX00T 方式方式2和方式和方式1输入的组合:控制字:输入的组合:控制字:11XXX11X 方式方式2和方式和方式1输出的组合:控制字:输出的组合:控制字:11XXX10X 其中其中X表示与其取值无关,而表示与其取值无关,而T表示视情况可取表示视情况可取1或或0。 BUPT9.1.4 8255A的编程及应用 对对8255A的编程涉及到的编程涉及到两个内容两个内容:写控制字设置写控制字设置工作方式工作方式等信息,等信息,使使C口的指定位口的指定位置位置位/复位复位的功能。的功能。例例: 利利用用8255A的的A口口方方式式0与与微微型型打打印印机机相相连连,将将内内存存缓缓冲冲区区BUFF中的字符打印输出。试完成相应的软硬件设计。中的字符打印输出。试完成相应的软硬件设计。首首先先我我们们分分析析一一下下打打印印机机的的工工作作。微微型型打打印印机机和和主主机机之之间间的的接接口口通通常常采采用用并并行行接接口口。它它的的工工作作流流程程是是:主主机机将将要要打打印印的的数数据据送送上上数数据据线线,然然后后发发选选通通信信号号。打打印印机机将将数数据据读读入入,同同时时使使BUSY线线为为高高,通通知知主主机机停停止止送送数数。这这时时,打打印印机机内内部部对对读读入入的的数数据据进进行行处处理理。处处理理完完以以后后使使ACK有有效,同时使效,同时使BUSY失效,通知主机可以发下一个数据。失效,通知主机可以发下一个数据。 入入出出BUPT9.1.4 8255A的编程及应用 硬件连线如下图硬件连线如下图 说明:说明:由由PC0PC0充当打印机的选通信号充当打印机的选通信号,通过对,通过对PC0PC0的置位的置位/ /复位来产生选通。同时,由复位来产生选通。同时,由PC7PC7来接收打印机发出的来接收打印机发出的“BUSYBUSY”信号作为能否输出的查询信号作为能否输出的查询。82558255A A的的控制字控制字为:为:10001000 10001000 即即8888H H A A口方式口方式0 0,输出;,输出;C C口高位方式口高位方式0 0输入,低位方式输入,低位方式0 0输出输出PC0PC0置位置位: 00000001 : 00000001 即即 0101H HPC0PC0复位:复位: 00000000 00000000 即即 0000H H8255A8255A的的4 4个口地址分别为:个口地址分别为:0000H H,01H01H,02H02H,03H03H。控制字BUPT9.1.4 8255A的编程及应用 编制程序如下:编制程序如下:DADA SEGMENTBUFF DB This is a print program!,$DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART:MOV AX, DATA MOV DS, AX MOV SI,OFFSET BUFF MOV AL, 88H ;8255A初始化,初始化,A口方式口方式0,输出,输出 OUT 03H, AL ; C口高位方式口高位方式0输入,低位方式输入,低位方式0输出输出 MOV AL, 01H; OUT 03H,AL ;使使PC0置位,即使选通无效置位,即使选通无效BUPT9.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 OUT 03H,AL ;产生选通信号产生选通信号 INC SI ;修改指针,指向下一个字符修改指针,指向下一个字符 JMP WAITBUPTDONE: 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 CODE ENDSEND STARTBUPT9.1.4 8255A的编程及应用 例例: 将将上上例例中中8255A的的工工作作方方式式改改为为方方式式1,采采用用中中断断方方式式将将BUFF开开始始的的缓缓冲冲区区中中的的100个个字字符符从从打打印印机机输输出出。(假假设设打印机接口仍采用打印机接口仍采用Centronics标准)标准)分分析析:仍仍用用PC0作作为为打打印印机机的的选选通通,打打印印机机的的作作为为8255A的的A口口,8255A的的中中断断请请求求信信号号(PC3)接接至至系系统统中中断断控控制制器器8259A的的IR3,其它硬件连线同上例。其它硬件连线同上例。 BUPT9.1.4 8255A的编程及应用 8255A的控制字为:的控制字为:1010XXX0 PC0置位置位: 00000001 即即 01HPC0复位:复位: 00000000 即即 00HPC6置置位位: 00001101 即即 0DH ,允允许许8255A的的A口输出中断口输出中断由由硬硬件件连连线线可可以以分分析析出出,8255A的的4个个口口地地址址分分别别为:为:00H,01H,02H,03H。假假设设8259A初初始始化化时时送送ICW2为为08H,则则8255A A口口的的中中断断类类型型码码是是0BH,此此中中断断类类型型码码对对应应的的中中断断向量应放到中断向量表从向量应放到中断向量表从2CH开始的开始的4个单元中。个单元中。BUPT 主程序:主程序: 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 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 ;撤消选通撤消选通 BUPT9.1.4 8255A的编程及应用 STI ;开中断开中断NEXT: HLT ;等待中断等待中断 LOOP NEXT ;修改计数器的值,指向下一个要输出的字符修改计数器的值,指向下一个要输出的字符 HLT中断服务子程序如下:中断服务子程序如下:ROUTINTR:MOV AL,DI OUT 00H,AL ;从从A口输出一个字符口输出一个字符 MOV AL,00H OUT 03H,AL ;产生选通产生选通 INC AL MOV 03H,AL ;撤消选通撤消选通 INC DI ;修改地址指针修改地址指针 IRET ;中断返回中断返回BUPT9.1.4 8255A的编程及应用 例例:将将外外设设开开关关的的二二进进制制状状态态从从A口口输输入入,并并由由B口口输输出出到到LED显示器。显示器。BUPT9.1.4 8255A的编程及应用 图中图中LED是是8段发光二极管,当某段中流过电流,则该段发光。从段发光二极管,当某段中流过电流,则该段发光。从图中可看出,图中可看出,8个发光二极管采用共阳极接法,当个发光二极管采用共阳极接法,当B口的某位输出高口的某位输出高时,连接该位的那一段亮。所以输出数字的二进制编码如下:时,连接该位的那一段亮。所以输出数字的二进制编码如下: 数字数字 发光的相应段发光的相应段 编码编码 0 a、b、c、d、e、f 00111111=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=71HBUPT9.1.4 8255A的编程及应用 8255A端端口口地地址址为为D0-D3H,A口口工工作作于于方方式式0输输入入,B口口工工作作于于方方式式0输输出出,程序片段如下:程序片段如下:START: moval, 90H;设置方式选择字设置方式选择字 out0D3H, alAA: inal, 0D0H;读端口读端口A andal, 0FH;取端口取端口A低低4位位 movbx, offset LEDTAL;取取LED显示代码表首地址显示代码表首地址 xlat;查表,查表,AL(BX+AL) out0D1H, al;从端口从端口B输出输出LED显示代码显示代码 movax, 1000;延迟延迟 BB: decax jnzBB jmpAA;返回到返回到AA hlt LEDTALDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,67H,77H,7CH,39H,5EH,79H,71HBUPT作业
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号