资源描述
1,主讲教师:范新民,第六章:可编程并行接口芯片和串行接口芯片,2,主要内容:,3,6.1并行接口与串行接口,并行接口:是指数据的各位同时进行传送,其特点是传输速度快,但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高。,串行接口:是指一条信息的各位数据被逐位按顺序传送的通讯方式。其特点是数据按位传送,最少只需一根传输线即可完成,成本低但传送速度慢。,可编程并行接口芯片和串行接口芯片,4,串口与并口:并口由于8位通道之间的互相干扰。传输时速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。所以串口速度非常快。,并行接口与串行接口,5,一、可编程接口芯片的功能和电路组成多数I/O接口具有如下功能及其电路单元:输入/输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用;控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息;,6.1.1可编程接口芯片概述,地址译码器,用来选择接口电路中的不同端口;读写控制逻辑中断控制逻辑,并行接口与串行接口,6,二、可编程接口芯片的几个概念片选的概念必须要有一个地址信号选中接口芯片后,才能使该接口芯片进入电路工作状态,实现数据的输入/输出。选通端CE(ChipEnable),又称片选端CS(ChipSelect)。CE端是控制接口芯片进入电路工作状态的引脚端。,可编程接口芯片概述,7,读/写概念:当地址信号稳定,读信号和访问I/O口控制信号有效时,片选信号稳定,CPU数据线和输入口接通,进行读操作。当地址信号稳定,CPU输出数据,写信号和访问I/O口控制信号有效时,片选信号稳定,数据写入I/O口。,可编程接口芯片概述,8,可编程接口的概念接口芯片大部分是多通道、多功能的。多通道是指一个接口芯片一面与CPU连接,另一面可接几个外设;多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。接口芯片功能可由程序改变。,可编程接口芯片概述,9,“联络”的概念接口芯片常常需要和外设间有一定的“联络”信号,以保证信息的正常传送。通常采用两个“联络”(Handhake)信号:(选通信号,strobe)和RDY(就绪信号,Ready)。,可编程接口芯片概述,10,8255A的结构和引脚功能8255A的工作方式8255A的初始化8255A的应用举例16位系统中的并行接口,6.2可编程并行接口芯片8255A,11,6.2.18255A的结构和引脚功能,1、8255A的内部结构,12,(1)数据端口端口A:PA0PA7,数据输出锁存器/缓存器和输入锁存器,可用于数据双向传输。端口B:PB0PB7,数据输出锁存器/缓存器和输入缓存器,B口作为输出口时数据可得到锁存,做输入口时,外设输入的数据必须维持到有效读取为止。端口C:PC0PC7,结构同B口,可作为两个4位端口使用,可配合A口或B口在数据传输时做控制、状态和中断请求信号使用。,8255A的内部结构,13,(2)A组控制和B组控制A口和高4位PC4PC7构成A组,B口和低4位PC0PC3构成B组。一组有一个控制寄存器接收CPU控制字,确定8255工作方式。(3)数据总线缓冲器八位三态双向缓冲器,用于8255与CPU数据总线的接口。(4)读/写控制逻辑把接受来自CPU的地址和控制信号发送给两个控制组。根据不同的信息进行不同的传送。,8255A的内部结构,14,2、8255A的引脚及其功能(1)端口引脚PA0PA7:端口A数据线,双向,三态。PB0PB7:端口B数据线,双向,三态。PC0PC7:端口C数据线,双向,三态。,(2)和CPU连接的引脚D7D0:数据线,与系统总线连接。RD:读信号,输入,低电平有效,从8255A读取数据WR:写信号,输入,低电平有效,把数据写入8255,8255A的引脚,15,CS:片选信号,输入,低电平有效,决定芯片地址。RESET:复位信号,输入。将所有内部寄存器的内容清零,3个数据端口设为输入工作方式。A0,A1:端口选择信号,8255占四个端口地址:,根据RD、WR、CS、A0、A1的不同组合决定8255A的不同端口的操作,8255A的引脚,16,6.2.28255A的工作方式,1、方式0基本输入输出,CPU可以采用无条件读写方式与8255A交换数据。若把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可通过对C口的读写,实现A口与B口的查询方式工作。输出的数据被锁存,输入的数据不锁存,端口A、B和C都可工作于输入或输出。三个端口无必然联系,各端口输入输出组合共有16种,可适用于多种用途。,17,2、方式1选通输入输出(应答式输入输出)端口A和B输入/输出数据时,必须利用端口C提供联络信号(选通、应答信号)。一般情况下,用中断传送数据方式(也可用查询方式)。这时:通道A:8位数据端口(A口),3位控制位(C口)。通道B:8位数据端口(B口),3位控制位(C口)。这种配合固定,不可以用程序修改。,8255A的工作方式,18,特点:端口A、B既可做输入又可做输出。端口C引脚分别作为控制、状态和中断申请信号等。若只有一个端口工作在方式1,则余下13位可工作在方式0。若两个端口都工作在方式1,则余下2位可由程序指定为输入或输出。,端口A、B工作于方式1的输入或输出时,端口C联络信号的引脚和意义都不同。,8255A的工作方式,19,(1)方式1的输入传送,A、B两个口都设为方式1输入方式,8255A的工作方式,20,INTR:中断请求信号,输出,高电平有效,可向CPU申请中断。,STB:输入选通信号,输入,低电平有效,表示外设输入的数据送至8255A的输入锁存器中。,IBF:输入缓冲区满,输出,高电平有效。通知外设输入缓冲区满,不要送新数据,由CPU读取数据时(RD的上升沿)清除,表明输入缓冲器可以接受新数据。,INTE:中断允许,INTEA是C口输出锁存器的PC4,INTEB是C口输出锁存器的PC2,由它们分别控制A口和B口的中断申请。(可由C口置/复位控制字将INTE置1或复位为0),8255A的工作方式,21,方式1的输入时序:从工作在方式1下的输入端口输入数据时,有关信号的变化关系。,8255A的工作方式,22,当外设数据准备好,将数据送至端口线PA7PA0或PB7PB0外设发出选通信号STB:将数据锁存在输入端口内。使IBF变高,表示输入端口满,可用于阻止外设输入新数据。如果INTE=1,STB的上升沿使INTR变高,发出中断请求。中断处理程序中CPU读取数据,发出RD信号:(1)RD的下降沿清除INTR(2)RD的上升沿清除IBF(3)端口内的数据进入CPU,以中断方式输入数据:,8255A的工作方式,23,当外设数据准备好,将数据送至端口线PA7PA0或PB7PB0外设发出选通信号STB:将数据锁存在输入端口内。使IBF变高,表示输入端口满,可用于阻止外设输入新数据。在主程序中CPU查询IBF,若其为高电平,读取数据,发出RD信号:RD的上升沿清除IBF端口内的数据进入CPU,以查询方式输入数据:,8255A的工作方式,24,查询方法从8255的A口向CPU输入数据:程序如下:INPUT:INAL,PortC;读方式1状态信号TESTAL,20H;查A口的IBFJZINPUT;IBF=0,数据未准备好INAL,PortA;IBF0,CPU读入数据,方式1输入时共用到C口6个引脚,剩余2个引脚PC6、PC7可做I/O位,或由C口置/复位控制字决定其输出。,8255A的工作方式,25,(2)方式1的输出传送,A口方式1输出时相应的联络信号,B口方式1输出时相应的联络信号,8255A的工作方式,26,INTE:中断允许,INTEA、INTEB分别控制A口和B口的中断申请。(INTEA由PC6、INTEB由PC2控制),OBF:输出缓冲器满,输出,表示CPU已将数据输出到指定端口,通知外设可以将数据取走。,ACK:响应信号,输入。外设通知8255已取走数据,并清除OBF,置INTR为“1”。,INTR:中断请求信号,输出。向CPU申请中断,请求CPU输出后续数据。(条件:OBFACKINTE=1),控制信号:,8255A的工作方式,27,方式1的输出时序:,以中断方式输出数据:,CPU输出数据CPU发出WR:数据写到8255A的端口使OBF有效,表示输出端口满,清除中断请求信号INTR外设接受到数据后,发出ACK信号:(1)ACK的下降沿使OBF变高,(2)当INTE=1,ACK的上升沿使INTR变高,请求CPU输出新的数据,8255A的工作方式,28,CPU输出数据CPU发出WR:()数据写到8255A的端口()使OBF有效,表示输出端口满,通知外设取数据。外设接受到数据后,发出ACK信号:()ACK的下降沿使OBF变高,()在主程序中CPU查询OBF,若其为高电平,数据已取走,端口可接受新的数据。,以查询方式输出数据:,8255A的工作方式,29,注意:方式1输出时共用到C口6个引脚,剩余2个引脚PC4、PC5可做I/O位,或由C口置/复位控制字决定其输出。,查询方法向8255的A口输出数据:程序如下:OUTPUT:INAL,PortC;读方式1状态信号TESTAL,80H;查A口的OBF,设备空闲?JZOUTPUT;OBF=0,不空,等待。MOVAL,DATASOUTPortA,AL;OBF=1,CPU输出数据。,8255A的工作方式,30,3、方式2双向选通输入输出,方式2只限于A组使用。与方式0、方式1的单向传送不同,工作在方式2下的端口A,具有双向传送功能。端口工作在方式2时,C口的5根引脚作为端口的联络信号;是方式1下A口输入、输出联络信号的组合。C口未做联络信号的3条引脚,可作为B口在方式1下的联络线,也可和B口一样工作在方式0。由方式控制字决定其输入/输出。,8255A的工作方式,31,方式2下的时序为方式1输入/输出两者的组合。,8255A的工作方式,32,6.2.38255A的控制字及初始化使用8255A,首先要由CPU对8255A写入控制命令字。有2种控制命令字:方式选择控制字;C口按位置位/复位控制字;1、方式选择控制字(D7=1)控制字可以使8255A的三个数据端口工作在不同的工作方式,将三个端口分为两组来设定。,8255A的工作方式,33,8255A方式选择控制字,8255A的控制字,34,2、端口C按位置/复位控制字(D7=0)可使8255作为位控接口,实现对外设的按位控制。,8255A的控制字,35,例:利用位复位和置位可使端口CPC5位产生方波。,程序如下:MOVCX,10LOP:MOVAL,0AHOUTPOR-CL,AL;置0CALLDELAYMOVAL,0BHOUTPORT-CL,AL;置1CALLDELAYLOOPLOP,8255A的控制字,36,6.2.48255A的应用实例1、初始化设置例:一8088系统的8255A工作于方式0,端口A为输入,端口B为输出,若系统中8255A的口地址为80H-83H。,方式控制字:,1001X00X,初始化程序:,MOVAL,90HOUT83H,AL,37,例6-2:开关接口(8255端口地址:60H63H),实现如下功能:每隔5分钟从PA口读入8个开关的状态存入2000H:3000H开始的数据区,工作10小时结束。,8255A的应用实例,38,MOVAX,2000HMOVDS,AXMOVBX,3000HMOVCX,120MOVAL,10010000B(90H)OUT63H,ALLOP:INAL,60HMOVBX,ALINCBXCALLDELAY5MLOOPLOPHLT,程序设计:,8255A的应用实例,39,例6-3LED接口,PA口做输出数据口,采用方式0工作方式,无条件传送。设8255A的端口地址为60H63H。要求每隔5分秒,发光灯向上移一个。,8255A的应用实例,40,MOVAL,10000000B(80H)OUT63H,ALMOVCX,7200MOVAL,7FHLOP:OUT60H,ALRORAL,01HCALLDELAY5SLOOPLOPMOVAH,4CHINT21H,8255A的应用实例,41,例6-4打印机接口(1)并行接口标准(Centronice)该标准规定了一个36芯的连接口。STB:数据选通接口;DATA:数据信号;ACK:响应信号;BUSY:忙信号。,8255A的应用实例,42,采用查询控制方式(方式0)的接口PA口作为向打印机输出的数据口,PC0产生控制信号STB,PC7读取外设状态BUSY,端口地址为90H93H。从内存2000H:3000H开始取出100个数据送打印机打印的控制程序为:,8255A的应用实例,43,MOVAX,2000HMOVDS,AXMOVBX,3000HMOVCX,100MOVAL,10001000BOUT93H,ALLOP:INAL,92HTESTAL,80HJNZLOP,8255A的应用实例,44,MOVAL,BXOUT90H,ALMOVAL,01HOUT92H,ALMOVAL,00HOUT92H,ALMOVAL,01HOUT92H,ALINCBXLOOPLOPMOVAH,4CHINT21H,8255A的应用实例,45,例6-5键盘接口两类键盘:简单键盘和矩阵结构键盘。矩阵结构键盘又有编码键盘和非编码键盘。编码键盘能自动提供对应于被按键的编码信息,如ASCII码,并能同时产生一个选通脉冲通知微处理器。非编码键盘由一组开关组成,提供行和列的键盘矩阵。其全部工作,包括按键的识别、按键代码的产生、防止串键和消去抖动等问题,都靠程序来实现。,8255A的应用实例,46,最简单的线性结构键盘每一个引脚连接一个键输入0/1反映健是否高低,简易键盘的工作原理,8255A的应用实例,47,常用的矩阵结构键盘每行连接一个引脚每列连接一个引脚,常用的矩阵结构键盘,8255A的应用实例,48,(1)键盘输入信息的过程:检测是否有键按下;查出按下的是哪一个键;将该键所代表的信息翻译成计算机能识别的内部代码,设有mn个键:m行由输出口控制n列由输入口读入,当某行输出为低电平时:有键按下某列输入低电平无键按下某列输入高电平,8255A的应用实例,49,(2)非编码键盘的键码识别方法为了识别键盘上的闭合键,常用的键码识别方法有行扫描法。,8255A的应用实例,50,(3)8255A作矩阵结构键盘接口的实例,8255A的应用实例,51,使用行扫描方式寻找按下键的编号(键号)的程序如下:PORTAEQU0FFF8HPORTBEQU0FFFAHPORTCEQU0FFFCHPORTCNEQU0FFFEHMOVDX,PORTCNMOVAL,10000010BOUTDX,ALWAITK:MOVDX,PORTAMOVAL,0OUTDX,AL,8255A的应用实例,52,MOVDX,PORTBINAL,DXCMPAL,0FFHJZWAITKMOVBL,0;置键号初值MOVBH,11111110B;置行扫描初值MOVCX,8;置扫描计数器初值FNDROW:MOVAL,BH;输出行扫描值MOVDX,PORTAOUTDX,ALROLBH,1;修改下次行扫描值MOVDX,PORTB;读列值INAL,DX,8255A的应用实例,53,CMPAL,0FFHJNZFNDCOLADDBL,8LOOPFNDROWJMPDONEFNDCOL:RORAL,1JNCRIGHTINCBLJMPFNDCOLRIGHT:DONE,8255A的应用实例,54,共阳极,共阴极,3、七段LED显示器接口,LED数码管的结构,8255A的应用实例,55,(1)单个8段LED数码管的显示,8255A的应用实例,56,(2)8255A作8个8段LED显示器接口,8255A的应用实例,程序实现:8个数码管分别显示07。,57,程序如下:,DATASEGMENTTABLEDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,80HMODDX,PORTCLOUTDX,AL,8255A的应用实例,58,LOP0:LEABX,TABLEMOVCX,8MOVAL,7FHLOP1:OUTPORTA,ALMOVDL,ALMOVAL,BXOUTPORTB,ALCALLDELAYINCBXRORDL,1MOVAL,DLLOOPLOP1JMPLOP0,MOVAH,4CHINT21HCODEENDSENDSTART,8255A的应用实例,59,60,ThankYou!,
展开阅读全文