微型计算机技术第六章8255_第1页
微型计算机技术第六章8255_第2页
微型计算机技术第六章8255_第3页
微型计算机技术第六章8255_第4页
微型计算机技术第六章8255_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机技术及应用

戴梅萼史嘉权编著第六章串并行通讯和接口技术第6章并行通信和并行接口教学重点并行通信与接口

8255A的编程结构

8255A的工作方式

8255A的编程及应用第6章并行通信与接口并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。Intel8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。第6章:6.5并行接口电路8255A具有多种功能的可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器与CPU间、与外设间的接口电路:状态寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路共24个外设引脚,分3个端口、2组控制共三种输入输出工作方式第6章:6.5.18255A的内部结构和引脚数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口BB组端口C下部读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET1.三个数据端口A,B,C

这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。2.A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。3.数据总线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。

4.读/写控制逻辑

读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。1.接口电路的主要作用是什么?它的基本结构如何?2.说明接口电路中控制寄存器与状态寄存器的功能,通常它们可共用一个端口地址码,为什么?3.CPU寻址外设端口的方式通常有哪两种?试说明它们的优缺点。4.在CPU与外部设备接口电路的连接中,通过数据总线可传输哪几种信息?在这里地址译码器起什么作用?习题与思考:6.5.28255A的引脚功能

引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号

1.面向CPU的引脚信号及功能D0~D7:8位,双向,三态数据线,用来与系统数据总线相连;RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;CS:片选,输入,用来决定芯片是否被选中;RD:读信号,输入,控制8255A将数据或状态信息送给CPU;WR:写信号,输入,控制CPU将数据或控制信息送到8255A;A1,A0:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。CS,RD,WR,A1,A0这几个信号的组合决定了8255A的所有具体操作,

表7-18255A的操作功能表CSRDWRA1A0操作数

式00100读A口A口数据→数据总线00101读B口B口数据→数据总线00110读C口C口数据→数据总线01000写A口数据总线数据→A口01001写B口数据总线数据→B口01010写C口数据总线数据→C口01011写控制口数据总线数据→控制口2.面向外设的引脚信号及功能PA0~PA7:A组数据信号,用来连接外设;

PB0~PB7:B组数据信号,用来连接外设;PC0~PC7:C组数据信号,用来连接外设或者作为控制信号。第6章:6.5.38255A的工作方式方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路,A、B、C三个端口均可。方式1:选通输入输出方式适用于查询和中断方式的接口电路,A、B两个端口均可。

方式2:双向选通传送方式适用于与双向传送数据的外设,只有A端口才有。

适用于查询和中断方式的接口电路8255A有三种工作方式,用户可以通过编程来设置

第6章:6.5.28255A的工作方式1.方式0

为一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。方式0的应用场合有两种:一种是同步传送;一种是查询传送。

方式0的特点任何一个端口可作为输入口,也可作为输出口,各端口之间没有规定必然的关系。各个端口的输入或输出,可以有16种不同的组合,所以可以适用于多种使用场合第6章:方式0输入时序datadata输入端口D0~D7RDCS,A1,A0请体会这里8255A的数据缓冲作用第6章:方式0输出时序WRdatadata输出端口D0~D7CS,A1,A08255A对CPU通过它输出给外设的数据进行锁存2.方式1

方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出。而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。第6章:方式1输入引脚:A端口数据选通信号表示外设已经准备好数据输入缓冲器满信号,表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBARDPC6、PC7I/O2第6章:方式1输入引脚:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能RD第6章:方式1输入联络信号STB——选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器IBF——输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器,作为STB的回答信号

INTR——中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据INTR置位的条件是STB为高,且IBF为高,INTE为高。第6章:方式1输入时序dataINTRIBF

data输入端口D0~D7STBRDSTB*和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据第6章:方式1中断控制8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4置位来实现端口B的INTEB对应PC2置位来实现第6章:方式1输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中断允许触发器WR第6章:方式1输出引脚:B端口PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器WR第6章:方式1输出联络信号OBF——输出缓冲器满信号,低有效8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走ACK——响应信号,低有效外设的响应信号,指示8255A的端口数据已由外设接受INTR——中断请求信号,高有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据端口A的INTEA对应PC6端口B的INTEB对应PC2第6章:方式1输出时序

INTR

datadata输出端口D0~D7WROBFACK

OBF*和ACK*是外设和8255A间的一对应答联络信号,为的是可靠地输出数据第6章:方式2双向方式方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据第6章:方式2双向引脚PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号WRRD第6章:方式2双向时序data-out

INTR

data-outdata-indata-inPA0~PA7D0~D7IBF

WROBFACKSTBRD第6章:6.5.48255A的编程初始化编程:一个方式控制字采用控制I/O地址:A1A0=11工作过程中:通过数据端口对外设数据进行读写数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBMPC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H对8255A的编程涉及到两个内容:⑴写控制字设置工作方式等信息,⑵使C口的指定位置位/复位的功能。注:均写入控制端口

第6章:6.5.48255A的编程方式选择控制字第6章:1.写入方式控制字:控制字格式1D6D5D4D3D2D1D0A组B组A组方式选择00—方式001—方式11X—方式2端口A1—输入0—输出端口C(PC7~PC4)1—输入0—输出端口C(PC3~PC0)1—输入0—输出端口B1—输入0—输出B组方式选择0—方式01—方式1第6章:1.写入方式控制字:示例1要求:A端口:方式1输入C端口上半部:输出,C口下半部:输入B端口:方式0输出方式控制字:10110001B或B1H初始化的程序段:

movdx,0fffeh

;假设控制端口为FFFEH

moval,0b1h

;方式控制字

outdx,al

;送到控制端口第6章:1.写入方式控制字:示例2CSRDWRA1A0D7D6..D0RESETCSRDWRA1A0D7D6..D0RESET74LS138ABCA3A4A5A8GG接芯片分组译码器输出端Y7Y6Y5Y4Y3Y2Y1Y0GD7D6D5D4D3D2D1D0RESET数据总线低8位IOWIORA1A0PA7~PA0PA7~PA0PB7~PB0PC7~PC0PAC7~PC0PB7~PB0J1J2第6章:1.写入方式控制字:示例2(续)芯片端口名称地址(十六进制)芯片端口名称地址(十六进制)J1(8255A)端口A端口B端口C控制口00E000E200E400E6J2(8255A)端口A端口B端口C控制口00E800EA00EC00EE上图8086系统中两片8255A的端口地址第6章:1.写入方式控制字:示例2(续)如果要求J1的各个端口处于如下工作方式:端口A方式0,输出;端口B方式0,输入;端口C的高4位输出;端口C的低4位输入。10000011端口C的低4位为输入端口B为输入端口C的高4位为输出B组工作于方式0端口A为输出A组工作于方式0方式选择控制字标识符第6章:1.写入方式控制字:示例2(续)如果要求J2的各个端口处于如下工作方式:端口A方式0,输入;端口B方式1,输出;端口C的高4位输出;端口C的低4位配合端口B工作端口C的低4位为任意为1或0端口B为输出端口C的高4位为输出B组工作于方式1端口A为输入A组工作于方式010010100方式选择控制字标识符第6章:1.写入方式控制字:示例2(续)MOVAL,83HMOVDX,00E6H

;对第1片8255A设置方式选择控制字OUTDX,AL

MOVAL,94HMOVDX,00EEH

;对第2片8255A设置方式选择控制字OUTDX,AL第6章:2.读写数据端口初始化编程后:当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备8255A具有锁存输出数据的能力对输出方式的端口同样可以输入不是读取外设数据读取的是上次CPU给外设的数据第6章:2.读写数据端口:示例利用8255A的输出锁存能力,可实现按位输出控制对输出端口B的PB7位置位的程序段:

movdx,0fffah

;B端口假设为FFFAH

inal,dx

;读出B端口原输出内容

oral,80h

;使PB7=1

outdx,al

;输出新的内容第6章:3.读写端口C:归纳1C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组第6章:3.读写端口C:归纳2当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用其余引脚仍可设定工作在方式0第6章:3.读写端口C:归纳3对端口C的数据输出有两种办法通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器第6章:端口C置1/置0控制字位控制字写入控制端口特别便于置位复位内部中断允许触发器INTE第6章:3.读写端口C:归纳4读取的C端口数据有两种情况未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字D7D6D5D4D3D2D1D0方式1输入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2双向OBFAINTE1IBFAINTE2INTRA×××第6章:端口C的状态字A组B组第6章:6.5.58255A的应用举例

作为通用的并行接口电路芯片,8255A具有广泛的应用应用在IBMPC/XT微机上应用于打印机接口电路连接简易键盘驱动LED数码管……第6章:1.8255A在IBMPC/XT上的应用工作在基本输入/输出方式0端口A为方式0输入,用来读取键盘扫描码端口B工作于方式0输出,例如控制扬声器等端口C为方式0输入,读取系统状态和配置系统的初始化编程:

moval,10011001b

;方式控制字99H

out63h,al第6章:2.打印机接口的信号与时序BUSYDATA0~7ACKSTROBE主机把数据送给引脚DATA0~DATA7同时送出数据选通信号STROBE*打印机在BUSY信号线上发出忙信号打印机处理好输入的数据时撤消忙信号同时又送出一个响应信号ACK*第6章:2.例1

用8255A方式0与打印机接口BUSY

DATA0~78255APC6PC2PA0~PA7打印机STROBE(STB)第6章:例18255A的初始化设8255A的端口地址为:A端口00D0H;C端口00D4H;B端口00D2H;控制口00D6H。PP:MOVAL,81H

;控制字,使A、B、C三个端口均工作于方式0,

A端口为输出,PC7~PC4为输出,PC3~PC0为输入

MOVDX,0D6HOUTDX,ALMOVAL,0DH;用置1/置0方式使PC6为1,即STB为高电平

OUTDX,ALLPST:MOVDX,0D4H;读端口C的置

INAL,DXANDAL,04HJNZLPST;如不为0,说明忙信号为1,即打印机处于忙状态,故等待

MOVAL,CLMOVDX,0D0HOUTDX,AL;如不忙,则把CL中字符送端口AMOVAL,0CHMOVDX,0D6HOUTDX,AL;使STB为0INCAL,

OUTDX,AL;再使STB为1.

;后续程序段

.第6章:例1打印子程序第6章:2.例2用8255A方式1与打印机接口1000pf2K15321441LS123单稳电路+5VDATA0~78255APC6INTRPC3PC7PA0~PA7打印机ACKACKOBFSTROBE连8259A的IR3PC0第6章:2.例2用8255A方式1与打印机接口PC3连到8259A的中断请求信号输入IR3,对应于中断类型号0BH,此中断对应的中断向量放在00段2CH、2DH、2EH、2FH这4个单元。设8255A的端口地址为:A端口00C0H;C端口00C4H;B端口00C2H;控制口00C6H。第6章:8255A方式1与打印机接口时序配合PA0~PA7(DATA0~7)ACKOBFSTROBE打印机时序方式1时序第6章:8255A的初始化MAIN:MOVDX,0C6H;主程序段

MOVAL,0A0H

OUTDX,AL;设置8255A的控制字

MOVAL,01

;使PC0为1,即让选通无效

OUTDX,ALXORAX,AXMOVDS,AX;设置中断向量1000:2000至

2C、2D、2E、2F中

MOVAX,2000HMOVWORDPTR[002CH],AXMOVAX,1000HMOV

温馨提示

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

评论

0/150

提交评论