微机原理8-8255的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第8章输入/输出接口I/O接口是计算机与外设交换信息的中间桥梁。8.1输入/输出接口8.1.1输入/输出接口的交换信息CPU与外设交换的信息:数据信息:数字量、开关量、模拟量。状态信息:BUSY,READY等,反映外设的状态。控制信息:CPU发出的命令如读写等。8.1.2输入/输出的控制方式CPU与外设数据传送方式:①程序控制方式(无条件传送和有条件传送);②中断控制方式;③直接存储器存取方式。1、程序控制--无条件传送:当需要与外设交换数据时,直接执行I/O指令,开始接/发数据。例1:无条件输入OOOOO+5VK&&≥1D0A0A7A8A15IOR…...MOVDX,FFF7HINAL,DXTESTAL,01JZ…K闭合D0=0,K打开D0=1A2A3A4.....O例2无条件输出≥1≥1≥1D0~D7A0A7A8A15┇┇IOWOOOO+5V+5VD0┇D7CPO0O774LS273有锁存功能MOVAL,81HMOVDX,0000HOUTDX,ALO无条件传送方式(简单接口)三态缓冲器地址译码器O&OOO地址总线M/IORD去CPU数据(来自外设)输入加三态缓冲器锁存器地址译码器OOOO数据总线数据(来自CPU)地址总线M/IOWR到外设去输出加锁存器&1、程序控制---查询方式(条件传送)查询方式输入过程的流程图开始初始化数据是否准备好?输入一个字节到CPU数据处理并送内存缓冲区N(1)CPU从状态口中读取状态字(2)CPU检测状态字,满足条件,CPU从数据口输入(输出)数据(3)不满足条件,CPU重新读取状态字外设74273≥1≥1≥1&≥1..D0~D7D0IORA0A7A8A15IOWO…..….74244CPD0D7~O0O7~BUSYO8位缓冲/总线驱动器8位D锁存器CP负脉冲输出上升沿锁存状态数据CPU向外设输出数据,先查状态BUSY(BUSY=0,外设忙),BUSY=1时,才能由数据口输出数据MOVDX,0FFHA1:INAL,DXANDAL,01HJZA1MOVAL,BLOUTDX,AL数据缓冲器锁存器输入设备三态缓冲器地址译码CLKDQCLR地址总线数据选通+5VM/IORD图8-2查询输入接口电路2.中断控制当外设需要与CPU进行数据交换时,由外设向CPU发出一个中断请求信号,CPU响应中断请求后,在中断服务程序中完成信息交换。3.DMA控制方式当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA接收到这一请求后,向CPU发出总线请求;若CPU响应DMA的请求,并把总线使用权赋给DMA控制器,数据可直接在DMA控制器操纵下进行。8.2并行通信与并行接口8.2.1并行通信并行通信,多路信号同时进行传输。其特点:传输速度快,信息率高,通常用在传输距离较短和数据传输率较高的场合。8.2.2并行接口实现并行通信的接口就是并行接口。典型的并行接口和外部设备连接如图8-4,其中控制寄存器接收CPU的控制命令,状态寄存器提供各种状态供CPU查询。控制寄存器输入缓冲寄存器输出缓冲寄存器状态寄存器片选A1、A2地址译码中断请求准备好RSTRDWRDBCPU输入数据准备好(STB)数据输入回答(IBF)输入数据数据输出数据输出准备好数据输出回答输入设备输出设备图8-4并行接口连接外部设备的示意图1.并行接口的输入过程:外设将数据传送给接口,并使“STB”有效。接口收到数据后,使“IBF”有效。同时,“输入准备好”状态位有效,或向CPU发中断请求。2、并行接口的输出过程:外设取走数据后,“输出准备好”状态位有效,或发一个中断请求;当输出的数据到达输出缓冲寄存器后,接口会自动向外设发送一个信号通知外设。外设收到数据后,并往接口发一个“数据输出回答”信号。8.3可编程并行通信接口芯片8255A8255A可为CPU与外设之间提供并行输入/输出的通道,可以通过软件来设置其工作方式。8.3.18255A的内部结构及其功能由8255A的内部结构图可见,8255A由以下几部分组成:1、并行输入/输出端口A、端口B和端口C,且各端口相互独立;PC口还具有按位置位/复位功能。3、数据总线缓冲存储器2、A组和B组控制部件4、读/写控制部件A组控制B组控制端口C(上半部)端口C下半部端口BOOO数据总线缓冲器读/写控制逻辑端口A数据总线D0~D7RDWRA0A1RESETCSPA0~PA7PC4~PC7PC0~PC3PB0~PB7CPU接口外设接口内部结构图1、PA、PB和PC口;PC口具有按位置位/复位功能。内部数据总线2、A组和B组控制部件3、数据总线缓冲存储器4、读/写控制部件8255与系统的连接示意图D0~D7WRRDA1A0CSDBIOWIORA1A0译码器8255A口B口C口D0~D7外设8.3.28255A芯片的控制字及其工作方式8255A中的端口的工作方式有:方式0、方式1和方式2。D0D1D2D3D4D5D6D7PC3~PC01:输入0:输出B口1:输入0:输出B组工作方式0:方式01:方式1PC7~PC41:输入0:输出A口1:输入0:输出A组工作方式00:方式001:方式11×:方式2D7=1特征位B组A组1、控制字(A1A0=11)(1)定义工作方式控制字方式控制字及状态字•利用软件编程确定3个端口工作于何种方式下;•C端口可以按位操作。当其工作于方式0下且作为输出口时,一般需要对作为输出的位设置初始状态(即初始化)(2)C口的置位/复位字D0D1D2D3D4D5D6D71:置位0:复位C口选择000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7任选(可1可0)D7=0(特征位)例:若把C口的PC2引脚清0,PC5引脚置成高电平输出,请写出其控制字。使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位简单接口•各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出•C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口•常用于连接简单外设(适于无条件或查询方式)方式0的应用:常使A端口和B端口作为8位数据的输入或输出口,使C口的某些位作状态输入8255芯片的应用芯片与系统的连接芯片的初始化相应的控制程序(2)方式1:选通输入/输出方式,在这种工作方式下,A、B两个口的数据输入/输出操作要在选通信号控制下完成。C口的六位数据线作为联络,剩下的两位可作数据位使用。①方式1输入。A、B两个口都设置为方式1输入的情况如图所示。例1:要把A口指定为1方式,输入,B口指定为1方式,输入,C口上半部定为输出,写出初始程序?方式命令字?假定8255A命令控制口的地址为303H,则8255A的初始化为:MOVDX,303HMOVAL,0B6HOUTDX,AL10110110B或0B6H。1方式下输入的联络信号线定义:A口方式1,输入B口方式1,输入INTEAPA0~PA7PC4PC5PC3STBIBFINTRI/OPC6、PC7ORDSTB:选通输入,外设发出IBF:输入缓冲器满,8255发出INTE:中断允许,PC4=1,使INTEA=1;INTR:中断请求,当INTE=1,IBF=1,STB时,INTR=1INTEBPB0~PB7PC2PC1PC0STBIBFINTRI/OORDPC2=1,使INTEB=11方式下输入的时序:A口方式1,输入INTEAPA0~PA7PC4PC5PC3STBIBFINTRI/OPC6、PC7ORDSTB:选通输入,外设发出IBF:输入缓冲器满,8255发出。INTE:中断允许,PC4=1,使INTEA=1INTR:中断请求,当INTE=1,IBF=1,STBIBFINTRRD数据当PA口设置为工作方式1时,如何使A端口的PC4置位/复位?②1方式下输出的联络信号线定义:A口方式1,输出B口方式1,输出INTEAPA0~PA7PC6PC7PC3OBFACKINTRI/OPC4、5OWRINTEBPB0~PB7PC2PC1PC0ACKOBFINTRI/OOWRACK:外设应答OBF:输出缓冲器满INTE:中断允许,设置PC6=1,使INTEA=1;PC2=1,使INTEB=1;INTR:中断请求,当INTE=1且OBF=1时,INTR=1②1方式下输出的时序:A口方式1,输出INTEAPA0~PA7PC6PC7PC3OBFACKINTRI/OPC4、5OWRACK:外设应答OBF:输出缓冲器满INTE:中断允许,设置PC6=1,使INTEA=1;PC2=1,使INTEB=1;INTR:中断请求,当INTE=1且OBF=1时,INTR=1WROBFINTRACK在方式1下,有2种方法实现与外设交换信息。1、通过查询PC端口的状态实现与外设交还信息。例:在方式1的输入时,通过查询IBF位或INTR位;当IBF为高电平时,表明外设输入了新的数据,通知CPU来读数据。在方式1的输出时,通过查询OBF位或INTR位,当OBF为高电平时,表明外设外设处于空闲状态,这时CPU可以输出新的数据。在实际编程中,查INTR位,可靠性更高。2、通过引入中断来实现与外设交还信息。把INTR作为中断请求信号,利用中断服务程序来实现CPU与外部设备交换信息。方式1的应用:•方式1主要用于中断控制方式下的输入输出•C口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口(3)工作方式2:带选通的双向传送方式。8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向行通信。当端口A工作于方式2时,允许端口B工作方式0或方式1完成输入/输出功能。(4)关于两个命令的讨论①方式命令是对8255A的3个端口的工作方式进行指定,用到8255A,一定要先初始化。②按位置位/复位命令只是对PC口的输出进行控制,使用它并不影响已经建立的工作方式。③D7特征位,用以区别两个不同的命令。④按位置位/复位的命令代码只能写入命令口。方式2的应用:•可使A端口作为双向端口所有•用于中断控制方式•当A口工作于方式2时,B口可工作于方式1(此时C口的所有位都用作选通控制信号的输入输出),也可工作于方式0(此时C口的剩余位也可工作于方式0)在访问外设时,要用指令IN/OUT,例如:INAL,13H(或INAL,DX)OUT13H,AX(或OUTDX,AL)实际上,接口电路是外设与CPU交换信息的中间桥梁。一个接口电路可能有多个端口(比如8255A就有3个端口即端口A、端口B和端口C),也就是说,一个接口有多个端口地址。CPU通过访问不同的端口,来实现访问不同的外部设备。通过下面的表来说明8255A的端口地址的用法。8.3.38255A并行接口应用举例地址A1A0RDWRCS操作表8255A的读定操作控制000010端口A→CPU101010端口B→CPU210010端口C→CPU000100CPU→端口A101100CPU→端口B210100CPU→端口C311000CPU→控制寄存器11010非法操作××110数据总线浮空××××18255A无效,数据总线浮空例1:要把A口和B口都指定为1方式,输入,C口上半部定为输出,求其工作方式命令代码?10110110B或0B6H。假定8255A命令控制口的地址为303H,则8255A的初始化为:MOVDX,303HMOVAL,0B6HOUTDX,AL工作方式命令字=?例2:若要把C口的PC2引脚置成高电平输出,求其命令代码?控制口的地址为303H控制命令字=?0

1 / 59
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功