常见外设接口及应用_第1页
常见外设接口及应用_第2页
常见外设接口及应用_第3页
常见外设接口及应用_第4页
常见外设接口及应用_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

常见外设接口及应用第1页,共67页,2023年,2月20日,星期四8.1可编程并行通信接口芯片8255A8.1.18255A芯片引脚定义与功能8.1.28255A寻址方式8.1.38255A的控制字8.1.48255A的工作方式8.1.5时序关系8.1.68255A的应用举例第2页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能8255A是一个40脚封装双列直插式芯片。第3页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能D7-D0:8位双向数据线,连接CPU与8255A片内的三态双向数据总线缓冲器。A1-A0:2位地址线,用于选择3个I/O端口和一个控制端口。RD#:读控制线,低电平有效。WR#:写控制线,低电平有效。CS#:片选端,低电平有效。RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种势态一直维持,直到用方式命令才能改变,使其进入用户所需的工作方式。第4页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能

8255A芯片内部包含3个8位端口,其中:

端口A:包含一个8位数据输出锁存/缓冲存储器和一个8位数据输入锁存器

端口B:包含一个8位数据输入/输出、锁存/缓冲存储器和一个8位数据输入缓冲存储器;

端口C:包含一个8位输出锁存/缓冲存储器和一个输入缓冲存储器(输入无锁存)。

实际使用时,可以把A口、B口、C口分成两个控制组:A组和B组。

A组控制电路控制端口A和端口C的高4位(PC7~PC4)。

B组控制电路控制端口B和端口C的低4位(PC3~PC0)。第5页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能8255A的内部结构分为3部分:CPU接口、内部逻辑、外设接口第6页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能第7页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能1、数据端口A、B、C8255A的3个8位I/O端口A、B、C是和外设一边相连的输入/输出接口。在实际使用中,A口和B口通常只作为独立的输入或输出数据端口使用。C口的功能和使用比较特殊。它除了可以作数据口使用外,还可以用来配合A口和B口工作,作为专用联络信号线,可以实现按位控制。第8页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能2、A组控制和B组控制部件这两组控制部件是8255A的内部控制逻辑,其内部有控制寄存器与状态寄存器,它们完成两个功能:一是接收来自CPU通过内部数据总线送来的控制字,以选择两组端口的工作方式;二是接收来自读/写控制逻辑电路的读/写命令,以决定两组端口的读/写操作。第9页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能3、读/写控制逻辑电路读/写控制逻辑电路是和CPU一边相连的控制电路,负责管理8255A的数据传输过程。它接收片选信号CS#与来自地址总线的地址信号A1、A0以及控制总线的信号RESET、WR#、RD#,将它们组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令送给这两个部件,再由它们完成对数据信息、状态信息和控制信息的传输。第10页,共67页,2023年,2月20日,星期四8.1.18255A芯片引脚定义与功能4、数据总线缓冲器数据总线缓冲器是连通CPU数据总线的一个双向三态8位数据缓冲器,8255A正是通过它来输入/输出数据的;此外,CPU发给8255A的控制字以及由外设输入CPU的状态信息等,也都是通过该部件传递的。8.1.18255A芯片引脚定义与功能第11页,共67页,2023年,2月20日,星期四8.1.28255A寻址方式8255A有3个I/O端口和一个控制端口,它们通过地址线A1、A0,读写控制线RD#、WR#以及片选线CS#进行寻址并实现相应的操作。第12页,共67页,2023年,2月20日,星期四8.1.28255A寻址方式8.1.28255A寻址方式第13页,共67页,2023年,2月20日,星期四8.1.38255A的控制字8255A在初始化编程时,是利用OUT指令由CPU输出一个控制字到控制端口的控制寄存器来控制其工作的。

两种类型的控制字:1、方式选择控制字2、端口C置位/复位控制字第14页,共67页,2023年,2月20日,星期四8.1.38255A的控制字第15页,共67页,2023年,2月20日,星期四8.1.38255A的控制字第16页,共67页,2023年,2月20日,星期四8.1.38255A的控制字

例1、将8255A设定为:

1、A组为方式0,组B为方式1。2、A口输入,B口输出,PC7~PC4输出,PC3~PC0输入。3、设8255A的4个端口地址范围为0060H~0063H。

则初始化编程时的程序段为:

MOVDX,0063H ;8255A控制口地址 MOVAL,10010101B ;设定初始化方式选择控制字 OUTDX,AL ;送控制字到控制口第17页,共67页,2023年,2月20日,星期四8.1.38255A的控制字例2、设8255A端口地址范围为300H~303H,若要置8255APC5的状态为1,则设置端口C置位/复位控制字的程序段为:

MOVDX,0303H ;8255A控制口地址MOVAL,00001011B;由C口置位/复位控制字设定PC5=1OUTDX,AL ;送控制字到控制口第18页,共67页,2023年,2月20日,星期四8.1.38255A的控制字例3、设8255A控制端口地址为037FH,若要使8255A的PC7产生一个负脉冲,用作打印机接口的选通信号,则设置端口C置位/复位控制字的程序段为:

MOVDX,037FH;8255A控制口地址MOVAL,00001110B;由C口置位/复位控制字设定PC7=0OUTDX,AL ;送控制字到控制口NOP ;延长负脉冲宽度NOPMOVAL,00001111B;由C口置位/复位控制字设定PC7=1OUTDX,AL8.1.38255A的控制字第19页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式8255A有3种工作方式:方式0(基本输入/输出方式);方式1(选通输入/输出);方式2(双向选通输入/输出,仅适合于A口)。

这些工作方式由初始化编程时设置方式选择控制字来选择。第20页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式A口可选择方式0、方式1和方式2;B口可选择方式0和方式1;C口只能以方式0工作。

当A口方式1/方式2或B口选择方式1时,C口某些位配合A口或B口工作,作为A口/B口与外设联络用的输出控制信号或输入状态信号,而C口的其余各位仍用方式0工作。第21页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式方式0

方式0:基本的输入/输出工作方式,只能完成简单的并行输入/输出操作。

方式0的特点:

(1)没有固定的联络信号,一般采用无条件传送或查询方式传送与CPU交换数据。(2)有4个独立的并口,16种不同的输入/输出组态。(3)所有端口都是单向传输端口。第22页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式第23页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式方式1

方式1:选通输入/输出方式或应答方式。它在使用端口A和端口B进行输入/输出时,一定要利用端口C所提供的选通信号和应答信号来配合输入/输出操作。第24页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式

方式1的特点:(1)需要固定的联络线(联络信号)配合A口和B口使用。(2)如果A口和B口都工作在方式1,则C口中就有6位(分为两组3位)联络线来联络与控制操作,各联络信号线之间有着固定的时序关系。C口的其余2位,仍可作为输入或输出线。(3)联络信号可供CPU查询或向CPU申请中断。(4)所有端口都是单向传输端口。第25页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式STB#:选通输入信号IBF:输入缓冲器满信号INTR:中断请求信号INTE:中断允许信号中断方式查询方式PC4查询第26页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式PC2第27页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式第28页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式端口A和端口B为输入方式

STB#:选通输入信号,低电平有效。外设送给8255A的选通信号,当它有效时,就把来自外设的一个8位输入数据送到8255A的端口A或端口B的输入缓冲器中。第29页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式

IBF:输入缓冲器满信号,输出信号,高电平有效。IBF是8255A输出的状态信号,当它有效时,表示当前已有一个新的数据进入端口A或端口B的输入缓冲器中,即缓冲器已满,8255A此刻不能再接收别的数据。

IBF信号是对STB#的响应信号,由STB#信号置位。它可以由CPU通过查询C口的PC5或PC1位获得。当CPU查得PC5(或PC1)=1时,表示输入缓冲器数据已满,CPU可以从A口(或B口)读入输入数据。

IBF将由RD#信号的上升沿复位(变为低电平)。第30页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式

INTR:8255送往CPU的中断请求信号,高电平有效。

当STB#结束(回到高电平时)和IBF为高电平,且有相应的中断允许信号(即INTE为高电平)时,则8255A就把INTR变为有效,以向CPU发中断请求。由RD#信号的下降沿使INTR复位(变为低电平)。INTR通常和8259A的一个中断请求输入端IR相连,通过8259A的输出端INT向CPU发中断请求。第31页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式

INTE:中断允许信号。它是在8255A内部的一个控制中断允许或禁止的控制信号。INTE没有外部引出端,即没有对片外输入或输出的功能,它只能由软件通过对C口某位的置位或复位来实现对中断请求的允许或禁止。端口A的中断请求INTRA可以通过对PC4的置位或复位加以控制,PC4置1,允许INTRA工作;PC4置0,则屏蔽INTRA。端口B的中断请求INTEB可以通过对PC2的置位或复位加以控制。第32页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式OBF#:输出缓冲器满信号ACK#:外设应答信号INTR:中断请求信号INTE:中断允许信号PC6查询第33页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式第34页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式端口A与B为输出方式

OBF#:输出缓冲器满信号,输出信号,低电平有效。当它有效时,表示CPU已把数据写入端口A或B的输出缓冲器等待输出。当CPU执行OUT指令WR#有效时,表示将数据锁存到输出缓冲器。

由WR#的上升沿把OBF#信号置成低电平。由ACK#的下降沿把OBF#信号复位为高电平。ACK#:外设应答信号,低电平有效。当ACK#有效时,表示8255A中的数据已被外设取走。第35页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式

INTR:中断请求信号,高电平有效。

ACK#信号结束(回到高电平),8255A便向CPU发中断请求信号INTR。

写信号WR#上升沿使INTR复位,变为低电平。

INTE:中断允许信号。

端口A的输出中断请求INTRA可以通过对PC6的置位或复位来加以允许或禁止。端口B的输出中断请求INTRB可以通过对PC2的置位或复位来加以允许或禁止。

第36页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式第37页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式第38页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式例1:设8255A为工作方式1,A口为输出。设置中断允许信号(端口的地址范围为300H~303H)。MOVDX,303H ;置8255A控制口MOVAL,00001101B ;置C口按位控制字,使PC6=1, ;允许发中断请求OUTDX,ALMOVAL,00001100B ;置PC6=0,禁止发中断请求OUTDX,AL第39页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式方式2

方式2为选通双向传输,仅适用于端口A。

方式2控制字格式及含义:

INTRA:中断请求信号,高电平有效。端口A完成一次输入或输出数据操作后,可通过INTRA向CPU发中断请求。

STBA#:输入选通信号,低电平有效。当STBA有效时,把外设输入的数据信号锁存入端口A。

IBFA:输入缓冲器满,高电平有效。当IBFA有效时,表示已有一个数据送入端口A,等待CPU读走。此信号可供CPU作输入查询用。第40页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式

OBFA#:输出缓冲器满,低电平有效。当OBFA有效时,表示CPU已将一个数据写入端口A,通知外设,可以将其取走。

ACKA#:外设应答信号,低电平有效。当ACKA有效时,表示端口A输出的数据已送到外设。

INTE1:A口输出中断允许信号(在片内)。可以由软件通过对PC6的置位或复位来加以允许或禁止。

INTE2:A口输入中断允许信号(在片内)。可以由软件对PC4的置位或复位来加以允许或禁止。第41页,共67页,2023年,2月20日,星期四8.1.48255A的工作方式8.1.48255A的工作方式第42页,共67页,2023年,2月20日,星期四8.1.5时序关系第43页,共67页,2023年,2月20日,星期四8.1.5时序关系第44页,共67页,2023年,2月20日,星期四8.1.5时序关系第45页,共67页,2023年,2月20日,星期四8.1.5时序关系工作过程(1)当数据端口作为输入工作时,在STB#有效时,由外设把输入数据送入端口,并发出IBF有效信号。当CPU执行IN指令对该数据口进行读入操作后,由RD#的上升沿使IBF复位,为下一次输入数据作好准备。如果该数据端口的中断允许INTE被置位,则在STB#信号回复到高电平时,8255A通过INTR向CPU发中断请求。若CPU响应该中断请求,读取该数据端口的输入数据,则RD#由下降沿使INTR复位,为下一次数据输入请求中断作好准备。第46页,共67页,2023年,2月20日,星期四8.1.5时序关系工作过程(2)当数据端口作为输出口时,在CPU把数据写入端口后,由WR#的上升沿使OBF#有效并使INTR复位。OBF#由8255A输出到外设,并通知外设可以取走端口的输出数据。当外设取走一个数据时,应向8255A发回应答信号ACK#。 ACK#的有效低电平可以使OBF#复位,为下一次输出作好准备。(3)当数据端口既作输入又作输出选通双向传送时,其时序图上所表示的工作过程将是以上输入时序与输出时序的综合。8.1.5时序关系8.1可编程并行通信接口芯片8255A第47页,共67页,2023年,2月20日,星期四课堂练习1、利用8255A(方式0)作为打印机的连接接口,采用查询方式,CPU通过8255A的A口将存放在从BUF单元开始的内存缓冲区中的256个字符(ASCII码)输出给打印机去打印。完成初始化编程和打印一组字符的程序段。(8255A的端口地址范围为0FBD0H~0FBD3H)数据选通信号打印机忙信号第48页,共67页,2023年,2月20日,星期四课堂练习2、8255A工作于方式0,利用8255A将外设开关的二进制状态从端口A输入,经程序转换为对应的LED段选码(字形码)后,再从端口B输出到LED显示器。具体连线图如图(a)所示。LED显示器如图(b)所示。完成初始化及输入、输出控制程序(设8255A的端口地址为:端口A:D0H,端口B:D1H,端口C:D2H,控制口:D3H)。第49页,共67页,2023年,2月20日,星期四课堂练习地址译码地址CPU(8088)RDWRA0A1____D7~D08255ARDWRA0A1____PA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7+5V2K×4K0K1K2K3abcdefgh+5V74LS04LED(a)连线图地址译码地址CPU(8088)RDWRA0A1____D7~D08255ARDWRA0A1____PA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7+5V2K×4K0K1K2K3第50页,共67页,2023年,2月20日,星期四课堂练习3、8255A的端口A(方式1)与打印机相连。利用中断方式向打印机输出一组(字符串长度为256字节)字符。8255的端口地址为300H~303H,8259的端口地址为020H与021H)。完成中断打印输出字符的程序(由主程序MAIN和中断服务子程序SUBP两部分组成)。第51页,共67页,2023年,2月20日,星期四课堂练习4、(选做)设甲、乙两机之间进行并行通信,共传送1KB数据。甲机一方的8255A的PA口采用方式2并用中断方式传送数据。乙机一方8255A的PA口与PB口采用方式0输出与输入,按查询方式传送数据。接口电路的连接如图所示。甲机一侧的8255A的A口作双向传送,既作输出又作输入,它的中断请求线由PC3接到8259A的IR2上。乙机一侧的8255A的A口和B口是单向传送,分别作输出与输入。完成甲机8255A的初始化程序和中断服务程序。第52页,共67页,2023年,2月20日,星期四课堂练习第53页,共67页,2023年,2月20日,星期四课堂练习18255A与打印机接口的初始化程序段MOVDX,0FBD3H;8255A的控制寄存器端口地址MOVAL,10000001B;方式选择控制字(A组方式0:A口输出,;PC7~PC4输出。B组方式0:B口输出,;PC3~PC0输入)OUTDX,AL;控制字送控制口寄存器MOVAL,00001111B;C口置位/复位控制字,使PC7置1OUTDX,AL;C口置位/复位控制字送控制寄存器第54页,共67页,2023年,2月20日,星期四课堂练习1打印一组字符的程序段MOVSI,OFFSETBUF ;取字符串的内存首地址MOVCX,100H ;将打印字符长度作为循环次数PL:MOVDX,0FBD2H ;C口地址INAL,DX ;从C口查询打印机的状态信息 ;BUSY=0?(即PC1=0?)ANDAL,00000010BJNZPL ;若BUSY=1,则循环等待; ;BUSY=0,则向A口送出数据第55页,共67页,2023年,2月20日,星期四课堂练习1打印一组字符的程序段(续) MOVAL,[SI] ;从内存中取一个字符准备输出 MOVDX,0FBD0H ;A口地址送DX OUTDX,AL ;将内存中的一个字符输出到A口 MOVDX,0FBD3H ;控制口地址 MOVAL,00001110H;设定C口按位操作控制字, ;置为低(PC7=0) OUTDX,AL NOP ;使负脉冲宽度延时 NOP MOVAL,00001111B;置为高电平(PC7=1), ;在PC7上生成1个负脉冲 OUTDX,AL第56页,共67页,2023年,2月20日,星期四课堂练习1打印一组字符的程序段(续) INCSI ;指向内存中下一个字符 LOOPPL ;字符数减1,若输出字符未完,则继续 HLT ;若输出字符已完,则暂停第57页,共67页,2023年,2月20日,星期四课堂练习2初始化及输入、输出控制程序如下:DATASEGMENTSSEGCODEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,90H;设置方式选择控制字,A口工作于方式0输入,;B口工作于方式0输出OUT0D3H,ALRDPORTA:INAL,0D0H;读A口ANDAL,0FH;取A口低4位MOVBX,OFFSETSSEGCODE;取LED段选码表首地址XLAT;查表,AL←(BX+AL)第58页,共67页,2023年,2月20日,星期四课堂练习2OUT0D1H,AL;从B口输出LED段选码,显示相应字形符号MOVAX,XXXXH;延时DELAY:DECAXJNZDELAYMOVAH,1;判断是否有键按下INT16HJZRDPORTA;若无,则继续读端口AMOVAH,4CH;否则返回DOSINT21HCODEENDSENDSTART第59页,共67页,2023年,2月20日,星期四课堂练习3主程序MAIN

;设置中断向量MAIN:CLI ;关中断 PUSHDS ;保存原DS MOVAX,SEGSUBP ;为打印驱动子程序入口SUBP ;设置新的中断向量DS:DX MOVDS,AX ;SUBP的段地址送DS MOVDX,OFFSETSUBP;SUBP的偏移地址送DX MOVAH,25H ;设置中断向量的功能号AH MOVAL,0AH ;为8259的IR2建立0AH号中断向量 ;表项 INT21H POPDS ;恢复原DS第60页,共67页,2023年,2月20日,星期四课堂练习3 ;8255初始化MOVDX,303H ;设定8255控制端口地址MOVAL,0A0H ;8255初始化,设置方式选择控制字OUTDX,AL ;控制字送端口MOVAL,00001101B ;设定C口置位/复位控制字OUTDX,AL ;置PC6=1,使INTEA=1,允许8255A产生 ;中断第61页,共67页,2023年,2月20日,星期四课堂练习3 ;设置数据地址和字符数MOVAX,OFFSETDATAMOVSTR_PTR,AX ;设置打印字符串的偏移地址MOVAX,SEGDATAMOVSTR_PTR+2,AX ;设置打印字符串的段地址MOVSTR_NUM,100H ;设置打印字符串的字符数

;引发第一次中断请求STI ;CPU开中断INT0AH┆第62页,共67页,2023年,2月20日,星期四课堂练习3中断服务子程序SUBP

;保护现场SUBP:P

温馨提示

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

评论

0/150

提交评论