您好,欢迎访问三七文档
8255A是INTEL公司的产品,可编程的并行接口芯片数据总线缓冲器A组A口A组C口上半部A组控制B组C口下半部B组B口B组控制PA7~PA0PC7~PC4PB7~PB0PC3~PC0读/写控制WRA1A0RESETCS内部总线8CPUDBRD11.18255A的内部结构24根端口数据线接外设PA7~PA0为A口数据线PB7~PB0为B口数据线PC7~PC0为C口数据线8255A的外部引脚8255A为双列直插式,40引脚8根系统数据线接CPUD7~D06根输入控制线RESET:复位信号,RESET=1时,8255内部复位,所有内部寄存器清零,A、B、C三个端口自动为输入口CS:片选信号,CS=0时,该芯片被选中RD:来自CPU的I/O读命令WR:来自CPU的I/O写命令A1、A0:通常接CPU的地址线A1、A0电源线:+5V,地线如果系统产生片选信号的译码电路如图,则:AENA9A8A7A6A5A4A3A2A1A0IORIOWCSA1A0RDWR8255AA数据口地址=60HB数据口地址=61HC数据口地址=62H控制口地址=63H控制口寄存初始化命令字端口:接口电路中能和CPU直接交换信息的寄存器8255A有4个端口寄存器8255A的端口编址注意:对控制寄存器不能进行读操作CSA1A0WRRD完成00001CPU数据→A口数据寄存器00101CPU数据→B口数据寄存器01001CPU数据→C口数据寄存器01101CPU送来的命令字→控制寄存器00010读A口数据→CPU00110读B口数据→CPU01010读C口数据→CPUA口可工作在方式0、1、2B口可工作在方式0、1C口可工作在方式0工作方式适用于端口……方式0:基本型入/出A口、B口、C口方式1:选通型入/出A口、B口方式2:双向传输A口11.28255A的工作方式简介什么是选通型输入?(以A口为例)A口定义为选通型输入时,端口和外设之间有两类信号线数据线PA7~PA0联络线IBFA、STBAIBF(InputBufferFull)输入缓冲器满状态线输入设备PA7~0IBFASTBA8255A口STB(Strobe)选通信号输入IBF=1,通知外设输入缓冲器已满,请不要再送数据只有在IBF=0时,外设才能写入数据当外设把数据放在端口线上时必须伴随一个选通信号。当STB=时完成数据锁存。端口收到数据后,通过IBF状态告知CPU可读输入设备PA7~0IBFASTBA8255A口什么是选通型输出?(以B口为例)当端口定义为选通型输出时,端口与外设之间也有两类信号数据线PB7~PB0联络线OBFB、ACKBOBF(OutputBufferFull)输出缓冲器满状态线ACK(Acknowledge)确认应答输出设备PB7~0OBFBACKB8255B口输出设备PB7~0OBFBACKB8255B口CPU对B口执行OUT指令,把一个数→8255OBFB=,通知外设输出缓冲器已满(即数据线上信息可用了)外设取走数据之后,使ACKB=,通知CPU端口数据已取走,可再送一个数什么是基本型输入?(以B口为例)当B口定义为基本型输入时,它相当于一个输入缓冲器,对B口执行一条IN指令,就把输入数据→CPU对B口执行一条IN指令打开控制门PB7PB0至CPUD7D0什么是基本型输出(以A口为例)当A口定义为基本型输出时,它为一个输出锁存器CPU对A口执行一条OUT指令把数据锁存在端口总之:基本型输入/出时,8255和外设之间没有联络信号对A口执行一条OUT指令锁存数据DQCPPA7PA0CPUD7D0DQCP1.8255控制字8255有2个控制字,方式选择控制字,C口按位置0/置1命令字,控制字必须写入控制口才能有效11.38255A控制字与初始化编程D61D5D3D1D0D2D4C口PC3~PC01=输入0=输出B组B口1=输入0=输出方式选择0=方式01=方式1C口PC7~PC41=输入0=输出A组A口1=输入0=输出方式选择00=方式001=方式11X=方式2方式选择控制字A口工作在方式1、方式2,B口工作在方式1时,D3、D0只能定义部分PC线的入/出A口工作在方式2时,D4不起作用C口上、下半部可以选择不同的入/出(都是方式0)注意:C口按位置0/1命令字注意:C口按位置0/1命令字必须写入控制口X0XD3D1D0D2XD3D2D1位选择000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7D0功能1PCX置10PCX置0根据需要:把C口置0/置1命令字→控制口,目的是禁止/允许某一口提中断2.8255A初始化编程步骤方式选择命令字→控制口,目的选择某一口的工作方式例:要求置A口为方式0输出,B口为方式0输入,PC7~4为输出,PC3~0为输入MOVAL,83HOUT控口地址,AL解:方式选择命令字A口方式0A口输出B口方式0B口输入PC7~4为输出PC3~0为输入01001100一、方式0与时序数据有效tARtIR端口数据有效tHRtRAtRDtDFtRRRD输入CS,A1,A0D7~D0方式0输入时序11.48255A工作方式与时序数据有效tAWtDW数据有效tWDtWAtWBt输出(端口输出)CS,A1,A0D7~D0(CPU输出数据)方式0输出时序二、方式1输入(选通型输入)及时序10111/0XXXA口方式11=PC7、6为入线0=PC7、6为出线方式选择命令字输入PC4PC5PC3INTEAPC7~6PA7~0空闲STBAIBFAINTRAA口选通型输入1.A口方式1输入的预置当方式字=B0H写入控制口之后,A口即工作在选通型输入,PC7、PC6空闲,输出线?输入线?受方式字D3控制PA7~PA0即为输入线PC4自动定义为入线,称为STBAPC5自动定义为出线,称为IBFAPC3自动定义为出线,称为INTRA它们是输出线?输入线?不再受方式字D3、D0控制此时:PC4PC5PC3INTEAPC7~6PA7~0空闲STBAIBFAINTRAA口选通型输入当INTEA=1之后,若IBFA=1,则A口提出中断请求2.A口方式1输入时,A口的中断管理用C口置0/置1命令字使PC4=1,则INTEA=1,允许A口中断用C口置0/置1命令字使PC4=0,则INTEA=0,禁止A口中断INTEA为A口的中断允许触发器,当A口定义为方式1输入时:注意:中断允许触发器只能受CPU控制,外设信号STBA不能使其置0/1PC4PC5PC3INTEAPC7~6PA7~0空闲STBAIBFAINTRAA口选通型输入1XXXX11XB口方式1输入方式选择命令字PC2PC1PC0INTEBPB7~0STBBIBFBINTRBB口选通型输入3.B口方式1输入的预置当方式字=86H写入控制口之后,B口即工作在选通型输入,PB7~PB0即为输入线PC2自动定义为入线,称为STBBPC1自动定义为出线,称为IBFBPC0自动定义为出线,称为INTRB输出线?输入线?不再受方式字D0控制此时:STBBPC2PC1PC0INTEBPB7~0B口选通型输入IBFBINTRB4.B口方式1输入时的中断管理INTEB=1之后,若IBFB=1,则INTRB=1,B口可提出中断请求INTEB为B口的中断允许触发器,当B口工作在方式1输入时:用C口置0/1命令字使PC2=1,则INTEB=1,允许B口中断;用C口置0/1命令字使PC2=0,则INTEB=0,禁止B口中断注意:中断允许触发器INTEB受CPU控制,外设信号STBB不能使INTEB置0/1STBBPC2PC1PC0INTEBPB7~0B口选通型输入IBFBINTRB5.方式1输入的时序图方式1输入时序tSITtSIBtRITtRIBtPStPHtSTSTBIBFINTRRD来自外设的输入数据方式1输入操作是由STB=引发的,STB=后:外设数据→8255,IBF=STBIBFINTRRD来自外设的输入数据满足下列条件,提中断请求:STB信号结束(STB脉宽可以很宽)IBF=1,(外设数据确已锁存)INTE=1(中断允许触发器置1)STBIBFINTRRD来自外设的输入数据服务程序执行IN指令之后:RD信号前沿使INTR=,后沿使IBF=0从而结束一次数据输入过程STBIBFINTRRD来自外设的输入数据6.方式1输入时,CPU~8255信息交换的方式可以用中断方式可以用查询方式,输入查询应查询IBF,不应该查询STB!!!∵STB脉冲是外设送来,它最小可小到500ns,而在500ns的时间内正好运行CPU的查询指令是不可能的三、方式1输出(选通型输出)及时序10101/0XXXA口方式1输出1=PC4、5为入线0=PC4、5为出线方式选择命令字PC6PC7PC3INTEAPC4、5PA7~0空闲ACKAOBFAINTRAA口选通型输出PC6PC7PC3INTEAPC4、5PA7~0空闲ACKAOBFAINTRAA口选通型输出1.A口方式1输出的预置当方式字=A0H写入控制口之后,A口即工作在选通型输出方式,PC4、PC5空闲,出?入?受方式字D3控制PA7~0为输出线PC6自动定义为入线,称ACKAPC7自动定义为出线,称OBFAPC3自动定义为出线,称INTRA输出?输入?不再受方式字D3、D0控制此时:2.方式1输出时A口的中断管理INTEA为A口的中断允许触发器,当A口定义为方式1输出时:用C口置0/置1命令字使PC6置1,则INTEA=1,允许A口中断用C口置0/置1命令字使PC6置0,则INTEA=0,禁止A口中断当INTEA=1之后,若OBFA=1,则A口提中断INTEA只能受CPU控制,外设ACKA信号不能改变其状态PC6PC7PC3INTEAPC4、5PA7~0空闲ACKAOBFAINTRAA口选通型输出1XXXX10XB口方式1输出方式选择命令字ACKBOBFBINTRBPC2PC1PC0INTEBPB7~0B口选通型输出OBFBPC2PC1PC0INTEBPB7~0B口选通型输出ACKBINTRB3.B口方式1输出的设置当方式字=84H→控制口之后,B口即工作在选通型输出方式,入线?出线?不再受方式字D0控制PB7~PB0定义为输出线PC2自动定义为入线,称为ACKBPC1自动定义为出线,称为OBFBPC0自动定义为出线,称为INTRB此时:4.方式1输出时,B口的中断管理INTEB为B口的中断允许触发器,当B口工作在方式1输出时:用C口置0/1命令字使PC2=1,则INTEB=1,允许B口中断用C口置0/1命令字使PC2=0,则INTEB=0,禁止B口中断INTEB置1后,OBFB=1,则INTRB=1,B口提出中断同样,ACKB不能改变INTEB的状态,它只受CPU控制OBFBPC2PC1PC0INTEBPB7~0B口选通型输出ACKBINTRB5.方式1输出的时序图方式1输出时序tAXtWOBtAOBtAITtWBtWITOBFINTRWR输出ACK方式1输出时CPU针对8255数据口执行OUT指令WR信号结束后,数据出现在外设数据线上OBF有效(向外设通报其数据线信息可用)使INTR无效,撤销中断请求OBFINTRWR输出ACK★外设取走数据后,发来ACK,ACK信号前沿使OBF无效,后沿提中断。OBFINTRWR输出ACK工作在方式1输出时端口提中断的条件:外设发出ACK信号且使OBF=1中断允许触发器置1OBFINTRWR输出ACK6.方式1输出时,CPU~8255交换信息的方式中断方式查询方式:查询OBF,当OBF=1(不满)时可送下一个数据四、8255的双向方式只有A口可以工作在双向方式当A口工作在双向方式时,B口可以工作在基本型I/O(不需要联络线),也可以工作在选通型I/O(使用PC0、1、2做联络线)00B口方式0输出01B口方式0输入10B口方式1输出11B口方式1
本文标题:微机系统原理与接口
链接地址:https://www.777doc.com/doc-3356537 .html