您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 第07章 可编程接口芯片
第七章可编程接口芯片可编程接口概述可编程并行输入/输出接口芯片8255A可编程定时/计数器接口芯片8253两种芯片的编程及应用南通大学计算机科学与技术学院本章内容为本课程的重点,希望同学们掌握两种芯片的工作原理,编程方法和灵活应用可编程接口概述一个简单的具有输入功能和输出功能的可编程接口电路如下图,它包括一个输入接口,其组成主要是八位的三态门;一个输出接口,其组成主要是八位的锁存器;另外还有八位的多路转换开关及控制这个开关的寄存器FF。控制信息输入接口输出接口寄存器FF多路转换开关I/O线数据总线8888方式控制字命令寄存器数据端口控制端口用户对寄存器FF写入的内容称为命令字或方式控制字,而寄存器FF称为命令寄存器,相应的端口称为命令端口或控制端口,对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程。目前常用的可编程芯片有如下几种:8255A并行I/O接口8253计数器/定时器8251串行I/O8259A中断控制器7.1可编程并行输入/输出接口芯片8255A一、功能8255A是一种通用的可编程并行I/O接口芯片,广泛用于几乎所有系列的微型机系统中,如8086、MCS51、Z80CPU系统等。8255A具有3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式,通用性强。使用灵活,可为CPU与外设之间提供并行输入/输出通道。二、8255A的内部结构1.逻辑框A口B口C口数据口DB读写控制逻辑2.8255A的内部结构三、8255A的管脚分配WRD0D1D2D3D4D5D6D7VCCPB7RDCSGNDA1A0PA4PA5PA6PA7PB5PB6PB4PB3RESETPB1PB2PB0PC3PC2PC1PC0PC4PC5PC6PC7PA3PA2PA1PA051101535403025211408255A20218255A芯片外形引线的功能(1)与系统端连接的主要引线:D0~D7:数据口CS:片选RD:读控制WR:写控制A0,A1:端口地址RESET:复位信号,接系统总线的RESETA1A0选择00端口A01端口B10端口C11控制寄存器1、与外设连接的管脚引线的功能(2)连接外设端的引脚:PA0~PA7PB0~PB7PC0~PC7分别对应A、B、C三个8位输入/输出口三个端口可通过编程分别指定为输入或输出口。其中,C口即可作独立的输入/输出口,也可作A、B口的控制信号输出或状态信号输入,还可以进行位操作。特别地对于PC7—PC0,其中可有若干根复用线可用于“联络”信号或状态信号,其具体定义与端口的工作方式有关。2、8255A与系统的连接示意图D0~D7WRRDA1A0CSDBIOWIORA1A0译码器8255AA口B口C口D0~D7外设A15~A2系统总线四、8255与8086CPU的接口连接方法同RAM相似,取M/IO=0举例设计8位I/O接口,使8255地址为0300H地址码:A9A8A7A6A5A4A3A2A1A0M/IO110000000008255与系统的连接实例举例设计16位I/O接口,使8255地址为0300H五、8255A的工作方式及编程1、8255A的工作方式8255A有三种工作方式,它们是:①方式0—基本输入/输出方式,三个口;②方式1—选通输入/输出方式,A、B口;⑨方式2—双向传送方式,A口。2、8255A编程所谓8255A编程,就是用户在使用8255前,用户可用软件来定义(设定)端口的工作方式,数据传送的方向等,选择所需要的功能。对于C口还可以通过编程来进行位操作。8255A复位时,A、B、C三端口工作在方式0的输入状态。1).方式控制字这是一个八位的控制字,代表的信息非常丰富。上面提到8255A内部的3个端口分为A、B两组,因此方式控制字也就相应地分成两个部分,分别控制A组和B组,其格式如下:工作方式控制字格式(当A1A0=11时)工作方式控制字——确定3个端口的工作方式B组方式设置0:方式01:方式11D6D5D4D3D2D1D0标志位A组方式设置00:方式001:方式11x:方式2A口0:输出1:输入C口高4位0:输出1:输入B口0:输出1:输入C口低4位0:输出1:输入如:设ABC三个端口工作在方式0,A、B和C的高4位为输出,C口的低4位为输入,则控制字为81H,假设8255A的端口基地址是200H。设置方式控制字的程序如右:MOVAL,81HMOVDX,203HOUTDX,AL2).C口置“1”/清“0”控制字置“1”又称为置位操作,而清“0”称为复位操作。位控制字——确定C口某一位的值,或用于设置INTE位(方式1,2)(当A1A0=11时)000:C口位0(PC0)001:C口位1(PC1)010:C口位2(PC2)011:C口位3(PC3)100:C口位4(PC4)101:C口位5(PC5)110:C口位6(PC6)111:C口位7(PC7)0D6D5D4D3D2D1D0标志位不用(一般置0)1:D3D2D1选中的位PCx置10:D3D2D1选中的位PCx置0如:要将PC4置为“1”,则控制字为09H,假设8255A的端口基地址是200H。设置的程序如右:MOVAL,09HMOVDX,203HOUTDX,AL3.读入状态字(可在工作方式中讨论)当8255A由程序设定在方式1或方式2工作时,C口就根据不同的情况,产生或接收“联络”信号。如果这时我们对C口进行读操作,则读出的内容就包含两部分内容,一部分是那些作为I/O线上的内容,另一部分是与“联络”状态有关的内容。六、8255A的三种工作方式1、8255A工作方式0方式0也叫基本输入/输出方式。在这种方式下,端口A和端口B可以通过方式选择控制字规定为输入口或者输出口;端口C分为高4位(PC7~PC4)和低4位(PC3~PC0)两个4位端口,这两个4位端口也可由方式选择控制字分别规定为输入口或输出口。一个端口不能同时实现输入及输出。这四个并行口共可构成16种不同的使用组态。利用8255A的方式0进行数据传输时,由于没有规定专门的应答信号,所以这种方式常用于与简单外设之间的数据传送,如向LED显示器的输出,从二进制开关装置的输入等。设置为输出口时有锁存能力,设置为输入口时高阻、无锁存能力。方式0输入时序:tRRtIRtARtRDtDFtRAtHR输入数据数据有效数据有效A1、A0D7~D0RDCS地址提前数据稳定读脉冲300ns数据领先时间数据保持时间地址保持读入的数据方式0输出时序:数据有效数据有效A1、A2D7~D0WRCS输出数据tWWtDWtWDtWAtWBtAW地址提前写脉冲宽度400ns地址保持写脉冲后数据维持时间数据保持时间30ns100ns方式0的应用:用于连接简单外设。适用于:1.无条件输入输出方式。2.查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。8255工作过程1)8255编程(初始化)2)程序对端口的访问例:设8255A的A口和B口工作在方式0,A口作为输入端口,接有四个开关,且每一开关接一上拉电阻。B口为输出端,经一8路反相驱动器,接有一个发光二极管(LED)组成的七段数码管,连接电路如图所示。试编一程序,要求数码管显示开关所拨通的二进制编码对应的16进制数字(字符)。+5VA15M/IOA6A5A4A3G1G2AG2BCBAA0Y4A1A0CSRDWRRESETPA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7RDRWRESETA2A1+5V74LS1388255AKabcdefgDPadecbfgDP显示的字符0123456789AbCdEFLED段码(H)3F065B4F666D7D077F6F777C395E7971段码表LED数码管电路地址A口:8020H,B口:8022H,C口:8024H,控制口:8026H.A口方式0输入,B口方式0输出,C口设为输出.方式控制字10011001B=99Ha_portequ8020hb_portequ8022hctrl_portequ8026h……moval,99h;设置8255方式字movdx,ctrl_portoutdx,almovdx,a_portinal,dx;读取开关(键盘)信息andal,0fh;屏蔽高4位movbx,offsettab1;取段码表首地址xlat;开关值→段码变换movdx,b_port;输出显示outdx,al工作方式1利用一组选通控制信号控制A端口和B端口的数据输入输出。A、B口作输入或输出口,C口的部分位固定用作A、B口的选通控制信号,C口的其余部分可做一般I/O使用。A口、B口在作为输入和输出时的选通信号不同。2、8255A工作方式1输入A口方式1输入的引脚PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA数据选通信号,表示外设已经准备好数据,当其有效时,外设把数据打入A口的输入缓冲器输入缓冲器满信号当其有效时表示A口的输入缓冲器已暂存一个有效数据。中断请求信号有效时,8255A的向CPU申请中断,要求CPU从端口读取数据中断允许触发器,受PC4的控制可通过C口的位操作进行设置PC6-7I/O10111/0xxxB1:PC6/PC7为输入0:PC6/PC7为输出控制字B口方式1输入的引脚PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器,受PC2的控制可通过C口的位操作进行设置1xxxx11xB控制字方式1输入时C口的作用1、PC3-5作为A口的联络线,PC4-STBA;PC5-IBFA;PC3-INTRA2、PC6-7可工作在基本的I/O3、PC0-2对应B组INTRB、IBFB、STBBSTB——选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器IBF——输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器INTR——中断请求信号,高电平有效8255A输出的信号,可用于向CPU发出中断请求,要求CPU读取外设数据方式1的输入状态字(C口)I/OI/OIBFAINTEAINTRAINTEBIBFBINTRBD7D6D5D4D3D2D1D0A组B组STBASTBB可通过对PC4的位设置对INTEA置位,置位后中断INTRA才有效可通过对PC2的位设置对INTEB置位,置位后中断INTRB才有效普通I/O口方式1输入时序INTR高电平有效RD清INTR和IBFPB7~PB0PA7~PA0STBIBFINTRRD外设送来数据②⑤当INTE=1时①③④8255A工作在方式1(输入)当端口已接受外设数据后,CPU取数有两种方式:其一用条件查询方式,通过查询缓冲器是否“满”,即IBF是否为高电平来取数;其二用中断方式。在查询传送中,一般要有所谓的“握手”信号来协调数据的传送。“握手”信号至少要有两位信号线,其中一位是由接口电路发给外设,功能是向外设提供接口电路的信息。另一位是由外设发给接口,功能是向接口提供外设的信息。显然在8255A的选通输入方式中STB和IBF是一对“握手”信号。例:8255A的A口和B口分别工作在方式1和方式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。例题电路图8255AKK7K0PA0PA7……PC4PB0PB7PC5LED0LED7LED……STBAIBFA这个系统的工作过程如下:1、用户通过改变K0~K7,产生新的键信息;2、按下开关K,产生选通信号,数据进入A口的缓冲器,此步骤实际上告诉CPU,8255的A口来了一个新数据;例题电路图
本文标题:第07章 可编程接口芯片
链接地址:https://www.777doc.com/doc-3830021 .html