微型计算机原理与应用第7章可编程接口芯片微型计算机原理与应用——第7章输入输出方法及常用的接口电路2【知识点】可编程接口概述可编程并行接口芯片8255A可编程定时/计数器8253微型计算机原理与应用——第7章输入输出方法及常用的接口电路3概述可编程芯片:用户通过程序改变其功能的电路芯片芯片初始化(芯片编程):程序改变芯片工作方式的过程目前常用的可编程芯片:8255A——并行I/O接口8253——计数/定时器8251——串行I/O接口8259——中断控制器微型计算机原理与应用——第7章输入输出方法及常用的接口电路4简单可编程电路方案当寄存器FF为1时,多路转换开关接位置1,I/O线接三态门,这个电路作为输出接口当寄存器FF为0时,多路转换开关接位置0,I/O线接锁存器,这个电路作为输出接口三态门锁存器用户对寄存器FF写入的内容称为命令字或方式控制字,寄存器FF称为命令寄存器,相应的端口称为命令端口或控制端口初始化的过程实际上是对芯片的控制端口写入各种命令字的操作微型计算机原理与应用——第7章输入输出方法及常用的接口电路5按功能可把8255A分为三个逻辑电路部分,即:口电路、数据总线缓冲器和读/写控制电路。(1)口电路8255A共有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。数据传送中A口所需的控制信号由C口高位部分(PC7~PC4)提供,因此把A口和C口高位部分(PC7~PC4)合在一起称之为A组;同样理由把B口和C口低位部分(PC3~PC0)合在一起称之为B组。7.1可编程并行接口芯片8255A7.1.18255A的内部结构微型计算机原理与应用——第7章输入输出方法及常用的接口电路6(2)数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,可直接和CPU的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。(3)读/写控制电路与读写有关的控制信号有:·CS—片选信号(由CPU地址线通过译码产生)·RD—读信号·WR—写信号7.1可编程并行接口芯片8255A7.1.18255A的内部结构微型计算机原理与应用——第7章输入输出方法及常用的接口电路7·A1、A0—端口选择控制信号,提供四个端口地址(A、B、C三个端口地址及一个控制端口地址)7.1可编程并行接口芯片8255A7.1.18255A的内部结构·RESET—复位信号(高电平有效)。复位之后,控制寄存器清除,各端口被置为输入方式。微型计算机原理与应用——第7章输入输出方法及常用的接口电路8A组控制B组控制端口C上半部端口C下半部端口BOOO数据总线缓冲器读/写控制逻辑端口A数据总线RDWRA0A1RESETCSPA0~PA7PC4~PC7PC0~PC3PB0~PB7CPU接口外设接口内部逻辑8255A内部结构内部数据总线D0~D7微型计算机原理与应用——第7章输入输出方法及常用的接口电路9标准40管脚双列直插式芯片1、与外设连接的管脚我们已经知道8255A有三个数据端口,每个端口是8位的,由此可推算与外设相连接的管脚共有24位。其中A口有PA7~PA0八个I/O引脚,B口有PB7~PB0八个I/O引脚,C口有PC7~PC0八个I/O引脚。特别地对于PC7~PC0,其中可有若干根复用线可用于“联络”信号或状态信号,其具体定义与端口的工作方式有关。7.1可编程并行接口芯片8255A7.1.28255A的管脚分配微型计算机原理与应用——第7章输入输出方法及常用的接口电路107.1可编程并行接口芯片8255A7.1.28255A的管脚分配2、与CPU连接的管脚包括数据线D7~D0,读写控制线和复位线,以及和CPU地址线相连接的片选信号、端口地址控制线A0和A1。3、电源线和地线8255A的电源引脚为VCC和GND。VCC为电源线,一般取+5V。GND为电源地线。微型计算机原理与应用——第7章输入输出方法及常用的接口电路111、8255A的工作方式8255A共有三种工作方式,即方式0、方式1、方式2。(a)方式0:基本输入/输出方式方式0下,可供使用的是两个8位口(A口和B口)及两个4位口(C口高4位部分和低4位部分)。四个口可以是输入和输出的任何组合。方式0适用于无条件数据传送,也可以把C口的某一位作为状态位,实现查询方式的数据传送。7.1可编程并行接口芯片8255A7.1.38255A的工作方式及编程微型计算机原理与应用——第7章输入输出方法及常用的接口电路12(b)方式1:选通输入/输出方式A口和B口分别用于数据的输入/输出。而C口则作为数据传送的联络信号。因为A口和B口的联络信号都是三个,如果A或B只有一个口按方式1使用,则剩下的另外13位口线仍然可按方式0使用。如果两个口都按方式1使用,则还剩下2位口线,这2位口线仍然可以进行位状态的输入输出。方式1适用于异步查询方式的数据输入/输出。(c)方式2:双向数据传送方式只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。在这种方式下需使用C口的5位线作控制线,方式2适用于查询或中断方式的双向数据传送。如果把A口置于方式2下,B口工作于方式1时,C口8根线将全部作为联络信号使用。7.1.38255A的工作方式及编程微型计算机原理与应用——第7章输入输出方法及常用的接口电路13(1)8255的方式控制字D0D1D2D3D4D5D6D7PC3~PC01:输入0:输出B口1:输入0:输出B口工作方式0:方式01:方式1PC7~PC41:输入0:输出A口1:输入0:输出A口工作方式00:方式001:方式11×:方式2D7=1特征位B组A组7.1可编程并行接口芯片8255A7.1.38255A的工作方式及编程2、8255A编程方式控制字未规定C口的工作方式,只规定了C口数据的传输方向,这就表明C口要么作为联络线用,要么就只工作在方式0微型计算机原理与应用——第7章输入输出方法及常用的接口电路14例1:对8255A各口作如下设置:A口方式0,B口方式0,从A口输入,从B口、C口输出。(8255A的C口地址为62H)工作方式控制字10010000,即90H。初始化程序段为:MOVAL,90HOUT63H,AL;控制口输出控制字…………INAL,60H;从A口输入…………OUT61H,AL;从B口输出…………OUT62H,AL;从C口输出7.1可编程并行接口芯片8255A7.1.38255A的工作方式及编程2、8255A编程微型计算机原理与应用——第7章输入输出方法及常用的接口电路15(2)C口的置位/复位控制字D0D1D2D3D4D5D6D71:置位0:复位C口选择000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7任选(可1可0)D7=0(特征位)方式0:基本I/O方式(查询时,任选C口做连络信号)方式1:选通I/O方式(可查询或中断,固定C口做连络信号)方式2:双向I/O方式(只用于A口,PC3~PC7做连络信号)7.1可编程并行接口芯片8255A7.1.38255A的工作方式及编程2、8255A编程微型计算机原理与应用——第7章输入输出方法及常用的接口电路16例2:把C口的第六位PC5置为1。MOVAL,00001011;PC5置位OUT63H,AL7.1可编程并行接口芯片8255A7.1.38255A的工作方式及编程INAL,63HORAL,00100000B(清零时用AND)OUT63H,AL2、8255A编程微型计算机原理与应用——第7章输入输出方法及常用的接口电路17(3)读入状态字方式0:基本I/O方式(查询时,任选C口做连络信号)方式1:选通I/O方式(可查询或中断,固定C口做连络信号)方式2:双向I/O方式(只用于A口,PC3~PC7做连络信号)7.1可编程并行接口芯片8255A7.1.38255A的工作方式及编程2、8255A编程当8255A由程序设定在方式1或方式2工作时,C口就根据不同的情况,产生或接收“联络”信号。如果这时我们对C口进行读操作,则读出的内容就包含两部分内容,一部分是那些作为I/O线上的内容,另一部分是与“联络”状态有关的内容。通过读取C口的内容,程序员可以测试或检查外部设备的状态,相应的改变程序流程。微型计算机原理与应用——第7章输入输出方法及常用的接口电路18例1:8255A的A口和B口工作在方式0,A口为输入端口,接有四个开关。B口为输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段发光二班管显示开关所拨通的数字。7.1可编程并行接口芯片8255A7.1.48255A工作方式的功能及应用举例1、8255A工作在方式0微型计算机原理与应用——第7章输入输出方法及常用的接口电路19A口地址:A0=0,偶地址8位的8255A与16位的CPU可以通过数据总线D7~D0传送8位信息微型计算机原理与应用——第7章输入输出方法及常用的接口电路20agDPfedbc段码表LED数码管由图可知,七段发光二极管为共阳极LED器件。要让a段点亮,要求从PB0输出高电平;要让b段熄灭,要求从PB1输出低电平。8255A的A口接有开关,4位开关的组合可为0~FH。为此,可将在LED上显示0~FH各字符的段码列表。微型计算机原理与应用——第7章输入输出方法及常用的接口电路21……tab1db3fh,06h,5bh,4fh,…,31h……moval,90h;设置方式字,A输入,BC输出movdx,8026h;控制口outdx,aladd1:movdx,8020h;A口inal,dx;取开关信息andal,0fh;屏蔽高4位movbx,offsettab1;取段码表首地址xlat;查表得段码movdx,8022h;输出显示,B口outdx,almovcx,0600hadd2:loopadd2;循环延时显示jmpadd1微型计算机原理与应用——第7章输入输出方法及常用的接口电路22A口方式1,输入INTEAPA0~PA7PC4PC5PC3STBAIBFAINTRAI/OPC6PC7ORD7.1可编程并行接口芯片8255A7.1.48255A工作方式的功能及应用举例2、8255A工作在方式1——输入A口的选通信号,当其有效时,外设把数据打入A口的输入缓冲器A口的输入缓冲器“满”信号,当其有效时表示A口的输入缓冲器已暂存一个有效数据。A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU从A口取数内部中断允许,设置PC4=1可使INTEA=1微型计算机原理与应用——第7章输入输出方法及常用的接口电路237.1可编程并行接口芯片8255A7.1.48255A工作方式的功能及应用举例2、8255A工作在方式1——输入1)外设把数据送到A口的数据线PA0~PA7,选通信号STBA有效,数据进入A口的输入缓冲器2)A口的IBFA有效,通知外设或CPU,表示A口接收了一个有效数据3)A口的INTRA有效,以中断方式通知CPU取走A口中的数据4)CPU读A口,数据进入CPU5)IBFA及INTRA转为无效微型计算机原理与应用——第7章输入输出方法及常用的接口电路24当A口已接受外设数据后,有两种方式通知CPU取数:其一用条件查询方式,通过查询缓冲器是否“满”,即IBFA是否为高电平来取数。其二用中断方式。在条件传送中,一般要有所谓的“握手”信号来协调数据的传送。“握手”信号至少要有两位信号线,其中一位是由接口电路发给外设,功能是向外设提供接口电路的信息。另一位是由外设发给接口,功能是向接口提供外设的信息。显然在8255A的选通输入方式中STBA和IBFA是一对“握手”信号。7.1可编程并行接口芯片8255A7.1.48255A工作方式的功能及应用举例2、8255A工作在方式1——输入外设所发,通知A口外设给它一个数据8255A发出的,告诉外设A口已经接收这个数据微型计算