微机原理88255的应用ppt课件.ppt

上传人:小飞机 文档编号:1973684 上传时间:2022-12-29 格式:PPT 页数:59 大小:1.62MB
返回 下载 相关 举报
微机原理88255的应用ppt课件.ppt_第1页
第1页 / 共59页
微机原理88255的应用ppt课件.ppt_第2页
第2页 / 共59页
微机原理88255的应用ppt课件.ppt_第3页
第3页 / 共59页
微机原理88255的应用ppt课件.ppt_第4页
第4页 / 共59页
微机原理88255的应用ppt课件.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《微机原理88255的应用ppt课件.ppt》由会员分享,可在线阅读,更多相关《微机原理88255的应用ppt课件.ppt(59页珍藏版)》请在三一办公上搜索。

1、第8章 输入/输出接口,I/O接口是计算机与外设交换信息的中间桥梁。,8.1 输入/输出接口8.1.1 输入/输出接口的交换信息 CPU与外设交换的信息: 数据信息:数字量、开关量、模拟量。 状态信息:BUSY,READY等,反映外设的状态。 控制信息:CPU发出的命令如读写等。,8.1.2 输入/输出的控制方式 CPU与外设数据传送方式:程序控制方式(无条件传送和有条件传送);中断控制方式;直接存储器存取方式。,1、程序控制-无条件传送: 当需要与外设交换数据时,直接执行I/O指令,开始接/发数据。例 1:无条件输入,O,O,O,O,O,+ 5V,K,&,&,1,D0,A0,A7,A8,A1

2、5,IOR,.,MOV DX , FFF7H IN AL, DX TEST AL, 01 JZ ,K闭合 D0 = 0, K 打开 D0 = 1,A2,A3,A4,.,.,O,例 2 无条件输出,1,1,1,D0D7,A0,A7,A8,A15,IOW,O,O,O,O,+5V,+5V,D0 D7,CP,O 0,O 7,74LS273,有锁存功能,MOV AL ,81HMOV DX ,0000HOUT DX ,AL,O,无条件传送方式(简单接口),三态缓冲器,地址译码器,O,&,O,O,O,地址总线,M/IO,RD,去CPU,数据(来自外设),输入加三态缓冲器,锁存器,地址译码器,O,O,O,O,

3、数据总线,数据(来自CPU),地址总线,M/IO,WR,到外设去,输出加锁存器,&,1、程序控制-查询方式(条件传送),查询方式输入过程的流程图,开始,初始化,数据是否准备好?,输入一个字节到CPU,数据处理并送内存缓冲区,N,(1)CPU从状态口中读取状态字(2)CPU检测状态字,满足条件,CPU从数据口输入(输出)数据(3)不满足条件,CPU重新读取状态字,外设,74273,1,1,1,&,1,.,.,D0 D7,D0,IOR,A0,A7,A8,A15,IOW,O,.,.,74244,CP,D0,D7,O0,O7,BUSY,O,8位缓冲/总线驱动器,8位D锁存器CP负脉冲输出上升沿锁存,状

4、态,数据,CPU向外设输出数据,先查状态BUSY(BUSY=0,外设忙),BUSY=1时,才能由数据口输出数据,MOV DX,0FFHA1:IN AL,DX AND AL,01H JZ A1 MOV AL,BL OUT DX,AL,数据缓冲器,锁存器,输入设备,三态缓冲器,地址译码,CLK,D,Q,CLR,地址总线,数据,选通,+5V,M/IO,RD,图 8-2 查询输入接口电路,2.中断控制当外设需要与CPU进行数据交换时,由外设向CPU发出一个中断请求信号,CPU响应中断请求后,在中断服务程序中完成信息交换。,3. DMA控制方式当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请

5、求,DMA接收到这一请求后,向CPU发出总线请求;若CPU响应DMA的请求,并把总线使用权赋给DMA控制器,数据可直接在DMA控制器操纵下进行。,8.2 并行通信与并行接口,8.2.1并行通信 并行通信,多路信号同时进行传输。其特点:传输速度快,信息率高,通常用在传输距离较短和数据传输率较高的场合。,8.2.2并行接口 实现并行通信的接口就是并行接口。典型的并行接口和外部设备连接如图8-4,其中控制寄存器接收CPU的控制命令,状态寄存器提供各种状态供CPU查询。,控制寄存器,输入缓冲寄存器,输出缓冲寄存器,状态寄存器,片选,A1、A2,地址译码,中断请求,准备好,RST,RD,WR,DB,CP

6、U,输入数据准备好(STB),数据输入回答(IBF),输入数据,数据输出,数据输出准备好,数据输出回答,输入设备,输出设备,图8-4 并行接口连接外部设备的示意图,1.并行接口的输入过程:外设将数据传送给接口,并使“STB” 有效。接口收到数据后,使“IBF”有效。同时,“输入准备好”状态位有效,或向CPU发中断请求。,2、并行接口的输出过程:外设取走数据后,“输出准备好”状态位有效,或发一个中断请求;当输出的数据到达输出缓冲寄存器后,接口会自动向外设发送一个信号通知外设。外设收到数据后,并往接口发一个“数据输出回答”信号。,8.3可编程并行通信接口芯片8255A,8255A 可为CPU与外设

7、之间提供并行输入/输出的通道,可以通过软件来设置其工作方式。,8.3.18255A的内部结构及其功能 由8255A的内部结构图可见,8255A由以下几部分组成:1、并行输入/输出端口A、端口B和端口C,且各端口相互独立;PC口还具有按位置位/复位功能。,3、数据总线缓冲存储器,2、A组和B组控制部件,4、读/写控制部件,A组控制,B组控制,端口C(上半部),端口C下半部,端口B,O,O,O,数据总线缓冲器,读 / 写控制逻辑,端口A,数据总线,D0 D7,RDWRA0A1,RESET,CS,PA0 PA7,PC4 PC7,PC0 PC3,PB0 PB7,CPU接口,外设接口,内部结构图,1、P

8、A、PB和PC口;PC口具有按位置位/复位功能。,内部数据总线,2、A组和B组控制部件,3、数据总线缓冲存储器,4、读/写控制部件,8255与系统的连接示意图,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8255,A口,B口,C口,D0D7,外 设,8.3.2 8255A芯片的控制字及其工作方式,8255A中的端口的工作方式有:方式0、方式1和方式2。,D0,D1,D2,D3,D4,D5,D6,D7,PC3 PC01:输入0:输出,B口 1:输入 0:输出,B组工作方式 0:方式0 1:方式1,PC7 PC4 1:输入 0:输出,A口 1:输入 0:输出,

9、A组工作方式00:方式001:方式11:方式2,D7 = 1特征位,B组,A组,1、控制字( A1A0 = 11),(1)定义工作方式控制字,方式控制字及状态字,利用软件编程确定3个端口工作于何种方式下;C端口可以按位操作。当其工作于方式0下且作为输出口时,一般需要对作为输出的位设置初始状态(即初始化),(2)C口的置位/复位字,D0,D1,D2,D3,D4,D5,D6,D7,1:置位0:复位,C口选择,000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7,任选(可1可0),D7 = 0(特征位),例:若把C口的PC2引脚清0,PC5

10、引脚置成高电平输出,请写出其控制字。,使PC2清0的控制字:0000,0100B或 02H,使PC5置1的控制字:0000,1010B或 0AH,(1) 工作方式0:PA、PB和PC的基本输入/输出方式。它只完成简单的并行输入/ 输出操作。,2、 工作方式方式0:基本I/O方式(查询时,任选C口做连络信号)方式1:选通方式(固定C口做连络信号)方式2:双向方式(只用于A口),在方式0工作时,CPU可以采用无条件读写方式与8255A交换信息。,在基本输入/输出下工作时,输出的数据被锁存,而输入的数据是不锁存的。,方式0:,相当于三个独立的8位简单接口各端口既可设置为输入口,也可设置为输出口,但不

11、能同时实现输入及输出C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口常用于连接简单外设(适于无条件或查询方式),方式0的应用:常使A端口和B端口作为8位数据的输入或输出口,使C口的某些位作状态输入,8255芯片的应用,芯片与系统的连接芯片的初始化相应的控制程序,(2)方式1:选通输入/输出方式,在这种工作方式下,A、B两个口的数据输入/输出操作要在选通信号控制下完成。C口的六位数据线作为联络,剩下的两位可作数据位使用。,方式1输入。A、B两个口都设置为方式1输入的情况如图所示。,例1:要把A口指定为1方式,输入,B口指定为1方式,输入,C口上半部定为输出,写出初始程序?,方式命令字

12、?,假定8255A命令控制口的地址为303H,则8255A的初始化为:,MOVDX,303HMOVAL,0B6HOUTDX,AL,10110110B或0B6H。,1方式下输入的联络信号线定义:,A口方式 1 ,输入,B口方式 1 ,输入,INTEA,PA0 PA7,PC4,PC5,PC3,STB,IBF,INTR,I / O,PC6、PC7,O,RD,STB:选通输入,外设发出IBF:输入缓冲器满,8255发出INTE:中断允许,PC4=1,使INTE A=1;INTR:中断请求,当INTE=1,IBF=1,STB时,INTR = 1,INTEB,PB0 PB7,PC2,PC1,PC0,STB

13、,IBF,INTR,I / O,O,RD,PC2=1,使INTE B=1,1方式下输入的时序:,A口方式 1 ,输入,INTEA,PA0 PA7,PC4,PC5,PC3,STB,IBF,INTR,I / O,PC6、PC7,O,RD,STB:选通输入,外设发出,IBF:输入缓冲器满,8255发出。INTE:中断允许,PC4=1,使INTEA=1INTR:中断请求,当INTE=1,IBF=1,,STB,IBF,INTR,RD,数据,当PA口设置为工作方式1时,如何使A端口的PC4置位/复位?,1方式下输出的联络信号线定义:,A口方式 1 ,输出,B口方式 1 ,输出,INTEA,PA0 PA7,

14、PC6,PC7,PC3,OBF,ACK,INTR,I / O,PC4、5,O,WR,INTEB,PB0 PB7,PC2,PC1,PC0,ACK,OBF,INTR,I / O,O,WR,ACK:外设应答OBF:输出缓冲器满INTE:中断允许,设置PC6=1,使INTEA=1;PC2=1,使INTEB=1;INTR:中断请求,当INTE = 1且OBF = 1时,INTR = 1, 1方式下输出的时序:,A口方式 1 ,输出,INTEA,PA0 PA7,PC6,PC7,PC3,OBF,ACK,INTR,I / O,PC4、5,O,WR,ACK:外设应答OBF:输出缓冲器满INTE:中断允许,设置P

15、C6=1,使INTEA=1;PC2=1,使INTEB=1;INTR:中断请求,当INTE = 1且OBF = 1时,INTR = 1,WR,OBF,INTR,ACK,在方式1下,有2种方法实现与外设交换信息。1、通过查询PC端口的状态实现与外设交还信息。例:在方式1的输入时,通过查询IBF位或INTR位;当IBF为高电平时,表明外设输入了新的数据,通知CPU来读数据。在方式1的输出时,通过查询OBF位或INTR位,当OBF为高电平时,表明外设外设处于空闲状态,这时CPU可以输出新的数据。在实际编程中,查INTR位,可靠性更高。 2、通过引入中断来实现与外设交还信息。把INTR作为中断请求信号,

16、利用中断服务程序来实现CPU与外部设备交换信息。,方式1的应用:,方式1主要用于中断控制方式下的输入输出C口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口,(3)工作方式2:带选通的双向传送方式。 8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向行通信。 当端口A工作于方式2时,允许端口B工作方式0或方式1完成输入/输出功能。,(4)关于两个命令的讨论方式命令是对8255A的3个端口的工作方式进行指定,用到8255A,一定要先初始化。按位置位/复位命令只是对PC口的输出进行控制,使用它并不影响已经建立的工作方式。D7特征位,用以区别两个不同的命令。按位置

17、位/复位的命令代码只能写入命令口。,方式2的应用:,可使A端口作为双向端口所有用于中断控制方式当A口工作于方式2时,B口可工作于方式1(此时C口的所有位都用作选通控制信号的输入输出),也可工作于方式0(此时C口的剩余位也可工作于方式0),在访问外设时,要用指令IN/OUT,例如:INAL,13H(或INAL,DX)OUT13H,AX(或OUT DX,AL) 实际上,接口电路是外设与CPU交换信息的中间桥梁。一个接口电路可能有多个端口(比如8255A就有3个端口即端口A、端口B和端口C),也就是说,一个接口有多个端口地址。CPU通过访问不同的端口,来实现访问不同的外部设备。通过下面的表来说明82

18、55A的端口地址的用法。,8.3.3 8255A并行接口应用举例,地址 A1 A0 RD WR CS 操作,表 8255A的读定操作控制,0 0 0 0 1 0 端口A CPU,1 0 1 0 1 0 端口B CPU,2 1 0 0 1 0 端口C CPU,0 0 0 1 0 0 CPU 端口A,1 0 1 1 0 0 CPU 端口B,2 1 0 1 0 0 CPU 端口C,3 1 1 0 0 0 CPU 控制寄存器,1 1 0 1 0 非法操作, 1 1 0 数据总线浮空, 1 8255A无效,数据总线浮空,例1:要把A口和B口都指定为1方式,输入,C口上半部定为输出,求其工作方式命令代码?

19、,10110110B或0B6H。,假定8255A命令控制口的地址为303H,则8255A的初始化为:MOV DX,303HMOV AL,0B6HOUTDX,AL,工作方式命令字=?,例2:若要把C口的PC2引脚置成高电平输出,求其命令代码?控制口的地址为303H,控制命令字=?,00000101B或05H,其程序段为:MOV DX,303HMOV AL,05HOUT DX,AL,例3:利用8255A的PC6,产生方波,送到喇叭,使产生不同频率的声音,其原理图如图所示,,SPK PROC MOV DX,303H;命令口 MOV AL,0DH; 置PC6=1 OUT DX,AL CALL DELA

20、Y MOV AL,0CH;置PC6=0 OUT DX,AL CALL DELAY RETSPK ENDP,O,+5V,压电蜂鸣器,7406,PC6,8255A,控制口地址为303H,其程序段为:,若改变DELAY的延时时间,即可改变喇叭发声的频率 。,例4:8255A的0方式及其应用一、特点: 在0方式下不设置专用联络信号线,需要联络时,由用户任意指定C口中的哪根线完成某种联络功能。 由于无固定的专用联络信号,由用户根据数据传送的要求决定输入/输出的操作过程。1、要求: 为某应用系统配置一个并行打印机接口,通过采用查询方式把存放在BUF缓冲的256个字符(ASCII码)送去打印。,2、分析:

21、查询方式时,打印机与CPU之间传送数据的过程是: 首先查询BUSY。若BUSY=1,打印机忙,则等待;若BUSY=0,打印机不忙,则送数据。 把数据送到打印机的数据线上,此时打印机并未收到数据。 再送出一个数据选通信号(负脉冲)给打印机,把数据总线上的数据打入到打印机的内部缓冲器。 打印机在收到数据后,发出“忙”(BUSY=1)信号,表明打印机正在处理输入的数据。等到输入的数据处理完毕,打印机撤消“忙”信号,即置BUSY=0。 最后送出一个回答信号ACK给主机,表示上一个字符已经处理完毕。如此重复工作,直到把全部字符打印出来。,图8-9 8255A并行打印机口电路框图,8255A 打印机插座,

22、接口驱动程序。打印机驱动程序的流程是根据打印接口标准的时序要求拟定的。,3、设计: 电路设计包括硬件接口电路和软件驱动程序两部分。 打印机接口电路。打印机接口电路原理框图如图8-9所示,驱动程序的程序段如下:CODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100HSTART: MOV AX,CODE MOV DS,AX MOV DX,303H ;8255A命令口 MOV AL,10000001B ;工作方式字 OUT DX,AL MOV AL,00001111B ;PC7位置高 OUT DX,AL MOV SI,OFFSET BUF ;打印字符的内存首址 MOV

23、 CX,0FFH ;打印字符的个数,LL:MOVDX,302H ;PC口地址INAL,DX ;查BUSY=0?ANDAL,04HJNZ LL ;忙,则等待;不忙,则向A口送数。MOVDX,300H ;PA口地址MOVAL,SI ;从内存取数OUTDX,AL ;送数到A口MOVDX,303H ;8255A命令口MOVAL,00001110B;置STB=0OUTDX,ALNOPNOPMOVAL,00001111B;置STB=1OUTDX,ALINCSILOOPLLMOVAX,4C00HINT21HBUFDB定义256个ASCII字符代码CODEENDSENDSTART,规定8255并行接口地址为F

24、FE0HFFE3H,试将其连接到8086的系统总线上。若希望8255的3个口24跳线均为输出,且输出方波,试编程序。INI55:MOVDX,0FFE3HMOVAL,10000000BOUTDX,AL,MOVAL,00HGOON:MOVDX,0FFE0HOUTDX,ALINCDXOUTDX,ALINCDXOUTDX,ALCALLDELAYNOTALJMPGOON,8255A工作方式 :,三种式作方式:方式,方式,方式,方式0:无条件输入或输出方式,直接传送方式,无任何联络线。三个端口为8位独位的输入输出接口,输出锁存,输入缓冲。,8255A工作方式 :,IBF:输出高电平有效,通知外设数据未取走

25、。,INTRA:中断请求,输出高电平向CPU申请中断。,PC6PC7按位操作,输入或输出。,方式1: 1、应答式输出或输入,(带联络线)分为A组或B组。 2、输入输出均锁存。,PC4对外是输入信号,不受置位复位的影响。,8255A工作方式 :,方式1 A口输入操作:,8255A工作方式 :,方式1 B口输入操作:,IBF:输出高电平有效,通知外设数据未取走。,INTRB:中断请求,输出高电平向CPU申请中断。,8255A工作方式 :,方式1 A口输出操作:,INTRA:中断请求,输出高电平向CPU申请中断。,8255A工作方式 :,方式1 B口输出操作:,INTRB:中断请求,输出高电平向CP

26、U申请中断。,8255A工作方式 :,方式2及操作: 1、应答式双向输出输入,输入输出均锁存。 2、只有A组能工作在方式2,此时B口可工作在方式0,未用的C口可按位操作。,IBF:输出高电平有效,通知外设数据未取走。,INTRA:中断请求,输出高电平向CPU申请中断。,PC0PC2按位操作,输入或输出。,8255用作查询式打印机接口电路连接和打印机各信号的时序如图所示,8255的端口地址为380H383H,工作于方式0,试编写一段程序,将数据区中变量DATA的8位数据送打印机打印,并写上注释。,8255工作方式: A口:方式0输出, C口:上半口输出,下半口输入 方式字:1000 0001B=

27、81H,算法:(1)查询BUSY=1忙,=0空(2)A口输出数据(3)PC7低电平锁存数据到打印机,8255A的应用:,MOVAL,81H;初始化8255MOVDX,383HOUTDX,ALPC2:DECDXINAL,DX ;PC2=1忙,=0送数据TESTAL,0000 00100JNZPC2MOVAL,DATA;数据送入A口MOVDX,380HOUTDX,ALMOVDX,383HMOVAL,0000 1110B;PC7置0,接收数据打印 OUTDX,ALNOPMOVAL,0000 1111B;PC7置1OUTDX,AL,8255A的应用:,1、8255A的三个端口在使用时有什么差别? 2

28、、8255用作查询式打印机接口时的电路连接和打印机各信号的时序如图所示,8255的端口地址为80H83H,工作于方式0,试编写一段程序,将数据区中变量DATA的8位数据送打印机打印,程序以RET指令结束,并写上注释。3、若用共阴极LED数码管作显示器,它的接口连接图如图所示。写出显示7的段选码。,44矩阵键盘,8255A的应用:,键盘接口:编码和非编码,编码键盘提供按键的编码信息。非编码键盘由一组开关组成,由程序识别按建并分配实际意义。如图所示为8255A组成的非编码键盘接口电路。图中端口A工作在方式0,输出口端口B也工作在方式0、输入口。,检测键盘输入:1)检测有按下的键?a.端口A输出全“

29、0”到行线上。b.读端口B口,全“1” ,无键闭合;否则,有键按下。2)查找闭合键所在的行编码。a.分别在端口A的每根引线上送出低电平信号。b.读B口,不为 “1”,该行有键按下。3)查闭合键的列编码。B口读人字节中“0”所在的位。即为按下键的列位置。,键盘接口:,PORTA EQU 0300H PORTB EQU 0301H PORTC EQU 0302HPORTCN EQU 0303H MOVDX,PORTCN ;端口A、B方式0 MOVAL,10000010B ;A输出,B为输入 OUT DX,ALWAITK:MOVDX,PORTA ;等待键闭合 MOVAL,0 ;行码送全“0” OUT

30、 DX,AL MOVDX,PORTB ;读列码 IN AL,DX CMP AL,0FFH; JZWAITK ;无键按下,继续等待 MOVBL,0 ;扫描,送键号初值 MOVBH,11111110B ;初始扫描行码FEH MOV CX,8FNDROW:MOVAL,BH ;送行码 MOV DX,PORTA OUTDX,AL ROLBH,1 ;修改行码 MOVDX,PORTB ;读列码 IN AL,DX CMP AL,OFFH JNZFNDCOL ;有键按下,查列号 ADDBL,8 ;指向下一行键号初值 LOOP FNDROW ;8行扫描 JMPDONE ;8行扫描完,无键按下,FNDCOL: RO

31、R AL,1;查所在列 JNC RIGHT INC BL ;键号加1,查下一列 JMP FNDCOLRIGHT:;键的编号在BL中:,现有四种简单外设:(1)一组8位开关;(2)一组8位LED指示灯;(3)一个按钮开关;(4)一个蜂鸣器。要求:(1)用8255A作为接口芯片,将这些外设构成一个简单的微机应用系统,画出接口电路连接图。 (2) 编制几种驱动程序,每个程序必须包括有两种外设共同作用的操作。,8255A的端口地址为30H、32H、34H、36H,要求端口A的PA1控制继电器线圈,用端口C的PC2查询手动开关K1信号,写出8255A初始化和相关控制程序。,1、现有一种存储芯片容量为51

32、24位,若要组成4KB的存储器,需要多少这样的存储芯片?每块芯片需多少寻址线?而4KB存储系统最少需多少寻址线? 2、设8255A的4个端口地址分别为0C0H、0C1H、0C2H和0C3H,要求用按位置位/复位控制字使PC6输出方波信号,试编程实现。3、设8255A接到系统中,端口A、B、C及控制口地址分别为220H、221H、222H及223H,工作在方式0,试编程将端口B的数据输入后,从端口C输出,同时,将其取反后从端口A输出。,4、已知某RAM芯片的存储容量为16KB,ROM芯片的存储容量为4K8位,问每种存储芯片的地址线和数据线分别为多少?用8KB和16K8位的RAM芯片构成48KB的

33、存储器,各需要多少片?5、某I/O接口电路,状态端口地址为286H,数据端口地址为287H,外部输入数据准备好由D7=1给出,用查询方式写出输出数据的程序段。6、对8255A的控制口写入B0H,其端口C的PC5引脚是什么作用的信号线?试分析8255A各端口的工作状态。,7、“由于按位置位/复位命令是对C口进行操作,所以可以写到C口”,这句话对吗?为什么?8、两个16位十进制数(组合的BCD码)相加,结果存放在被加数单元中。试编写子程序,并写明子程序的入口参数和出口参数及必要的注释。9、编写一个汇编语言程序: 要求:设有一个带符号数的字节数组,存放在内存起始地址为FIRST连续的内存单元中,其长度为10H。试求其中绝对值最大的一个数,并将其所在单元的偏移地址记下,存放到RIRST1单元中。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号