常用可编程接口芯.ppt
第8章:常用可编程接口芯片,教学重点 接口芯片的引线功能及其与CPU的连接 接口芯片的工作方式及其控制命令字 接口芯片的编程与使用,8.1 可编程并行接口8255,教学重点 8255的工作方式和编程 8255的应用,并行接口和串行接口的结构示意图,并行数据传输方式,以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据适合于外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间,并行接口8255,具有多种功能的可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器与CPU间、与外设间的接口电路:状态寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路共24个外设引脚,分3个端口、2组控制共三种输入输出工作方式,8.1.1 8255的内部结构和引脚,1.外设数据端口,端口A:PA0 PA7A组,支持工作方式0、1、2端口B:PB0 PB7B组,支持工作方式0、1端口C:PC0 PC7仅支持工作方式0A组控制高4位PC4PC7B组控制低4位PC0PC3,端口A:PA0PA7常作数据端口,功能最强大端口B:PB0PB7常作数据端口端口C:PC0PC7可作数据、状态和控制端口分两个4位,每位可独立操作控制最灵活,最难掌握,2.与处理器接口,D0 D7数据线A0 A1地址线CS*片选信号,由它启动CPU与8255之间的通信;RD*读信号,它控制8255送出数据或状态信息至系统数据总线;WR*写信号,它控制把CPU输出到系统总线上的数据或命令写到8255;RESET复位信号,它清除控制寄存器,并置A、B、C端口为输入方式。,8.1.2 8255的工作方式与控制字,方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路,8255的编程,初始化编程:一个方式控制字采用控制I/O地址:A1A011工作过程中:通过数据端口对外设数据进行读写数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H,1.写入方式控制字:控制字格式(写,A1A011),1.写入方式控制字:示例1,要求:A端口:方式1输入C端口上半部:输出,C口下半部:输入B端口:方式0输出方式控制字:10110001B或B1H8255端口地址为60H-63H。初始化的程序段:MOV AL,0B1H;方式控制字 OUT 63H,AL;送到控制端口,读写端口C:,C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用,其余引脚仍可设定工作在方式0,在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组,2.端口C的位控制字(写,A1A011),位控制字写入控制端口特别便于置位复位内部中断允许触发器INTE,端口C的状态字,C口按位置/复位控制字(示例2),例2 如上例,若A口工作于方式1作输入,要使用中断传送方式,则应当写PC4的按位置位字:MOVAL,00001001B OUT63H,AL C口按位置/复位控制字须跟在方式控制字之后写入控制字寄存器。即使仅使用该功能,也应先选送一方式控制字。,例8-1 将8255C端口的8根IO线接8只发光二极管的正极(8个负极均接地),用按位置位复位控制字编写使这8只发光二极管依次亮、灭的程序。设8255的端口地址为380H383H。,MOV DX,383H MOV AL,80H OUT DX,AL MOV AL,1AGAIN:OUT DX,AL MOV CX,1000 LOOP$AND AL,0FEH OUT DX,AL ADD AL,3 AND AL,0FH,PUSH AX MOV AH,11 INT 21H INC AL POP AX JNZ AGAIN retbegin endpcode ends end begin,方式0提供两个8位口(A和B)和两个4位口(PC7PC4,PC3PC0),任何一个口都可用做输入或输出,由CPU用简单的I/O指令来进行读/写。一般用于无条件传送的场合,也可以用做查询式传送。无条件传送方式的接口电路时是十分简单的,不需要状态端口,3个端口都可作为数据端口。查询式输入或输出的接口电路习惯上将A口和B口作为数据口,将C口作为控制输出和状态输入口。,8.1.3 8255三种工作方式的功能1、方式0,例 若将例8-1改为C端口方式0输出,则控制程序为:,MOV DX,383H MOV AL,80H OUT DX,AL MOV DX,382H MOV AL,1AGAIN:OUT DX,AL MOV CX,1000 LOOP$,PUSH AX MOV AH,1l INT 21H INC AL POP AX JZ BACK ROL AL,1 JMP AGAINBACK:retbegin endpcode endsend begin,2、方式1,A口借用C口的一些信号线用作控制和状态线,形成A组,B口借用C口的一些信号线用作控制和状态线,组成B组。在方式1下,A口和B口的输入输出均带有锁存。端口C中用于联络和中断的控制状态信号功能固定不变,不能用程序更改,余下的两位均可作为输入或输出用,由方式控制字中的D3设定。,方式1输入引脚:A端口,单向,数据选通信号表示外设已经准备好数据,输入缓冲器满信号表示A口已经接收数据,中断请求信号请求CPU接收数据,方式1输入引脚:B端口,单向,方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能,方式1输入联络信号,STB*选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255的输入锁存器IBF输入缓冲器满信号,高电平有效8255输出的联络信号。当其有效时,表示数据已锁存在输入锁存器INTR中断请求信号,高电平有效8255输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据,方式1输入时序,STB*和IBF是外设和8255间的一对应答联络信号,为的是可靠地输入数据,方式1中断控制,8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2需要指出的是,在方式1时,PC4和PC2的置位复位操作分别用于控制A口和B口的中断允许信号,这是8255的内部操作,这一操作对PC4和PC2引脚用于A口和B口的数据选通输入和状态没有任何影响。,方式1下的输入过程:,例8-2 用选通输入方式从A端口输入100个8位二进制数。,BUF DB 100 DUP(?),push axMOV ES,AXmov ax,datamov ds,axMOV DX,38FHMOV AL,0B0HOUT DX,ALMOV AL,9OUT DX,ALMOV AX,SEG IS8255MOV ES:01C6H,AX MOV AX,OFFSET IS8255MOV ES:01C4H,AX,MOV CX,100MOV BX,0MOV DX,38CHIN AL,0A1HAND AL,0FDHOUT 0A1H,ALROTT:JMP$LOOP ROTT IN AL,0A1H OR AL,2 OUT 0A1H,AL ret,IS8255:IN AL,DX MOV BUFBX,ALINC BXMOV AL,61HOUT 0A0H,ALMOV AL,62HOUT 20H,ALPOP AXINC AXINC AXPUSH AXIRET,方式1输出引脚:A端口,外设响应信号表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,中断请求信号请求CPU再次输出数据,方式1输出引脚:B端口,方式1输出联络信号,OBF*输出缓冲器满信号,低有效8255输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走ACK*响应信号,低有效外设的响应信号,指示8255的端口数据已由外设接受INTR中断请求信号,高有效当输出设备已接受数据后,8255输出此信号向CPU提出中断请求,要求CPU继续提供数据,端口A的INTEA对应PC6端口B的INTEB对应PC2,方式1输出时序,OBF*和ACK*是外设和8255A间的一对应答联络信号,为的是可靠地输出数据,方式1下的输出过程:,例8-3 设计A端口基本输入,B端口选通输出的电路和程序,A端口输入8个开关的状态,8只发光二极管表示B端口输出的状态。用单稳电路来产生响应信号亮灭。改变A端口的输入,发来选通信号后即将8个开关的状态用发光二极管显示。,DA1 DB WAIT INTERRUPT,0DH,0AH,$,sub ax,axpush axMOV ES,AXmov ax,datamov ds,axMOV DX,383HMOV AL,94HOUT DX,ALMOV AL,5OUT DX,ALMOV AX,SEG IO8255MOV ES:01C6H,AXMOVAX,OFFSET IO8255MOV ES:01C4H,AX,IN AL,0A1HAND AL,0FDHOUT 0A1H,ALROTT:MOV DX,OFFSET DA1 MOV AH,9 INT 21H JMP$MOV AH,1l INT 21H CMP AL,0 JE ROTT IN AL,0A1H OR AL,2 OUT 0A1H,AL ret,IO8255:MOV DX,380H IN AL,DX INC DX OUT DX,AL MOV AL,61H OUT 0A0H,AL MOV AL,62H OUT 20H,AL POP AX INC AX INC AX PUSH AX IRET,3、方式2双向方式,方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样,方式2双向引脚,用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号,方式2双向时序,8255A的应用,作为通用的并行接口电路芯片,8255具有广泛的应用应用在IBM PC/XT微机上应用于打印机接口电路连接简易键盘驱动LED数码管,8255应用,8255应用,8255在IBM PC/XT上的应用,工作在基本输入/输出方式0端口A为方式0输入,用来读取键盘扫描码端口B工作于方式0输出,例如控制扬声器等端口C为方式0输入,读取系统状态和配置系统的初始化编程:mov al,10011001b;方式控制字99Hout 63h,al,