《接口扩展设计及应》由会员分享,可在线阅读,更多相关《接口扩展设计及应(98页珍藏版)》请在金锄头文库上搜索。
1、第八章 I/O接口扩展设计及应用,8.1 I/O扩展概述 8.2 MCS-51单片机与可编程并行I/O芯片8255A的接口 8.3 MCS-51与可编程芯片8155的接口 8.4 TTL芯片扩展简单的I/O接口 8.5 键盘/显示器接口芯片8279,教学目的和要求,本章主要介绍MCS-51系列单片机接口电路、简单接口和可编程接口8255、8155、8279的结构原理及应用。要求重点掌握MCS-51系统单片机接口电路、简单电路和可编程接口8255、8155内部结构及应用方法。,I/O扩展概述,I/O扩展概述 在多数应用系统中,MCS-51单片机都需要外扩输入输出(I/O)接口芯片。 MCS-51
2、单片机的外部数据存储器RAM和I/O是统一编址的,用户可以把外部64K字节的数据存储器RAM空间的一部分作为扩展I/O接口的地址空间,每一个接口芯片中的一个功能寄存器口地址就相当于一个RAM存储单元,CPU可以向访问外部存储器RAM那样访问外部接口芯片,对其功能寄存器进行读、写操作。,I/O扩展概述,Intel公司常用的外围接口芯片有: 8255:可编程的通用并行接口电路(3个8位I/O口)。 8155:可编程的RAM/IO扩展接口电路(256个RAM字节单元,2个8位I/O口,1个6位I/O口,1个14位的减法定时器计数器)。 8279:可编程键盘、显示接口。 它们都可以和MCS-51单片机
3、直接相接,且接口逻辑十分简单。另外74LS系列的LSTTL电路也可以作为MCS-51的扩展I/O口,如74LS373、74LS377等。,I/O扩展概述,常用的I/O编址有两种方式:独立编址方式和统一编址方式。 所谓独立编址,就是把I/O和存储器分开进行编址,亦即各编各的地址。这样在计算机系统中就形成了两个独立的地址空间:存储器地址空间和I/O地址空间。 因此在使用独立编址方式的计算机指令系统中,除存储器读写指令外,还有专门的I/O指令以进行数据输入输出操作。 统一编址就是把系统中的I/O和存储器统一进行编址。在这种编址方式中,把I/O接口中的寄存器(端口)与存储器中的存储单元同等对待。 采用
4、这种编址方式的计算机只有一个统一的地址空间,该地址空间既供存储器编址使用,也供I/O编址使用。,I/O扩展概述,MCS-51单片机使用统一编址方式。因此在接口电路中的I/O编址也采用16位地址,同存储单元地址长度一样。对片外I/O的输入输出指令就是访问RAM的指令。 MCS-51单片机进行扩展IO接口设计时,要注意以下几个问题: (1)熟悉MCS-51本身的POP3口特性及指令功能。 (2)分析清楚要扩展的接口芯片的功能、结构及能力。 (3)在进行硬件设计时要注意接口电平及驱动能力。 (4)设计驱动程序要注意,防止总线上的数据冲突。应根据 实际情况采用不同的数据传送控制方式 。,8255A芯片
5、介绍,8255A芯片介绍 8255A是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行I/O口,分别为PA口、PB口和PC口,其中PC口又分为高4位口(PC7 PC4)和低4位口(PC3 PC0),它们都可以通过软件编程来改变I/O口的工作方式。8255A可以与MCS-51单片机直接接口。,8255A芯片介绍,8255A的引脚如图8-1所示。8255A的结构框图如图8-2所示。,它由以下几个部分组成: (1)数据端口A、B、C PA口:一个8位数据输出锁存器和缓冲器;一个8位数据输入锁存器。 PB口:一个8位数据输出锁存器和缓冲器;一个8位数据输入缓冲器。 PC口:一个8位的输
6、出锁存器;一个8位数据输人缓冲器。,8255A芯片介绍,8255A的结构框图,8255A芯片介绍,(2)A组和B组控制电路 这是两组根据CPU写入的“命令字”控制8255A工作方式的控制电路。A组控制PA口和PC口的上半部(PC7-PC4);B组控制PB口和PC口的下半部(PC3-PC0)。 (3)双向三态数据缓冲器 这是8255A和CPU数据总线的接口,CPU和8255A之间的命令、数据和状态的传递都通过双向三态总线缓冲器传送的,D7-D0接CPU的数据总线。,8255A芯片介绍,(4)读写和控制逻辑 A0、A1、 CS 为8255A的端口选择信号和片选信号, RD 、WR 为8255A的读
7、写控制信号,这些信号线分别和MCS-51的地址线和读写信号线相连接,实现CPU对8255A的口选择和数据传送。 CPU对8255A的A口、B口、C口和控制口的寻址如表8-1所示。 (5)复位控制 引脚RESET为复位信号输入脚,高电平有效。复位有效时,它把控制寄存器清零和 置所有端口(A、B、C)为输入方式。,8255A芯片介绍,表8-1 8255A端口选择表,3种工作方式及选择,8255A的3种工作方式及选择 8255A有三种基本工作方式: 方式0一基本输入输出; 方式1一选通输入输出; 方式2一双向传送(仅PA口)。 工作方式的选择由CPU输出的控制字决定。 1“方式”选择控制字 8255
8、A的工作方式,它可由CPU送出一个控制字到8255A的控制字寄存器来选择。 这个控制字的格式如图8-3所示,可以分别选择端口A和端口B的工作方式,端口C分成两部分,上半部分随端口A,下半部随端口B。 端口A有方式0、1和2三种,而端口B只能工作于方式0和1。最高位D7是该控制字的标志位,其状态固定为1,用于表明本字节是方式控制字。,3种工作方式及选择,8255A的 控 制 字,3种工作方式及选择,例8-1: 若对8255A作如下设置:A口方式0输入,B口方式1输出,C口高位部分输出低位部分为输入。设控制寄存器地址为0FFFBH。 按各口的设置要求,工作方式控制字为10010101B,即95H。
9、则初始化程序段为: MOV DPTR,#0FFFBH MOV A,#95H MOVX DPTR,A,3种工作方式及选择,2C口按位置位/复位功能 端口C的8位中的任一位,可用一个写入8255A的控制口的置位复位控制字来置位或复位。这个功能主要用于控制。控制字的格式如图8-4所示。D7是该控制字的标志,其状态固定为0。 例8-2:如果想把8255A的C口的PC1置1,PC7复位,该如何对8255A编程。将03H写入控制口,置“1”PC1;0EH写入控制口,清“0”PC7。设控制寄存器地址为0FFFBH。 程序如下: MOV DPTR,#0FFFBH MOV A,#03H MOVX DPTR,A
10、MOV A,#0EH MOVX DPTR,A,3种工作方式及选择,3种工作方式及选择,3方式0的功能 两个8位端口(A和B)和两个4位端口(口C)。 任一个端口都可以作为输入或输出。 输出是锁存的。 输入是不锁存的。 在方式0时,各个端口的输入、输出可有16种不同的组合。 在这种工作方式下,由于是无条件的传送,所以不需要状态端口,三个端口都可作为数据端口。在MCS-51系统中,只要执行MOVX类指令,便可完成输入输出操作。,3种工作方式及选择,4、方式1的功能 (1)方式1的基本功能 用作一个或两个选通端口。 每一个端口包含有:8位数据端口;三条控制线(是固定指定的,不能用程序改变);提供中断
11、逻辑。 任何一个端口都可以作为输入或输出。 若只有一个端口工作于方式1,余下的13位,可以工作在方式0(由控制字决定)。 若两个端口都工作于方式1,端口C还留下两位,这两位可以由程序指定作为输入或输出,也具有置位复位功能。,3种工作方式及选择,(2)方式1输入 当任一端口工作于方式1输入时,其逻辑组态如图85所示。其各个控制信号的意义为: STB(Strobe):选通脉冲(输入),低电平有效。 IBF(Input Buffer Full)输入缓冲器满信号(输出),高电平有效。这是一个8255A输出的状态信号。 INTR(Interrupt Request):中断请求信号(输出),高电平有效。这
12、是8255A的个输出信号,可用于作为向CPU的中断请求信号,以要求CPU服务。 INTEA和INTEB为中断使能信号;,3种工作方式及选择,方式1输入组态,3种工作方式及选择,(3)方式1输出 方式1输出时,其逻辑组态如图8-6所示,主要的控制信号如下: OBF(Output Buffer Full):输出缓冲器满信号,低电平有效,这是8255A输出给外设的一个控制信号。 ACK(Achowledge):低电平有效。这是一个外设的响应信号,指示CPU输出给8255A的数据已经由外设接受。 INTR:中断请求信号,高电平有效。 INTEA:由PC6的置位复位控制。 INTEB: 由PC2的置位复
13、位控制。,3种工作方式及选择,方 式 1 输 出 组 态,3种工作方式及选择,5方式2的功能 该工作方式的主要功能: 方式2只用于端口A,端口B无此种工作方式。 一个8位的双向总线端口(端口A)和一个5位控制端口(端 口C)。 输入和输出是锁存的。 5位控制端口用作端口A的控制和状态信息。,3种工作方式及选择,8255A工作在方式2时,其逻辑组态如图87所示。各个信号的意义为: INTR(中断请求):高电平有效。在输入和输出方式时,都可用来作为向CPU的中断请求信号。 OBF(输出缓冲器满):低电平有效。它是对外设的一种选通信号,表示CPU已把数据输出至端口A。 ACK(响应信号):低电平有效
14、。它启动端口A的三态输出缓冲器,送出数据;否则,输出缓冲器处在高阻状态。,3种工作方式及选择,INTEl(与输出缓冲器相关的中断屏蔽触发器):由PC6的置位复位控制。 STB(选通输入):低电平有效。这是外设供给8255A的选通信号,它把输人数据选通至8255A的输人锁存器。 IBF(输入缓冲器满):高电平有效。它是一个状态信息,指示数据已进入输入锁存器。 INTE2(与输入缓冲器相关的中断屏蔽触发器):由PG4的置位复位控制。,3种工作方式及选择,接口应用举例 例8-3:在8051单片机上扩展一片8255A芯片,设端口A为方式0输入,端口B方式0输出,端口C(上半部)PC7PC4输入,端口C
15、(下半部)PC3PC0输出。要求从A口读入的数据从B口输出。试设计扩展接口电路,并给出初始化程序。 完成上述功能的接口电路如图8-8所示。,3种工作方式及选择,8255A的扩展接口图,3种工作方式及选择,根据题目要求,8255A的控制字为10011000B=98H(控制字的格式见图8-3)。 初始化程序清单如下: MOV A,#98H MOV DPTR,#7FFFH MOVX DPTR, A MOV DPTR, #7FFCH MOVX A, DPTR INC DPTR MOVX DPTR,A,8155芯片介绍,MCS51与可编程芯片8155的接口 Intel 8155/8156芯片内包含有25
16、6个字节的RAM存储器(静态)、两个可编程的8位并行口PA和PB、一个可编程的6位并行口PC、以及一个14位定时器计数器。PA口和PB口可工作于基本输入输出方式(同8255A的方式0)或选通输入输出方式(同8255A的方式1)。 8155芯片介绍 18155的结构与引脚 8155芯片为40引脚双列直插封装,单一的+5V电源,其引脚排列如图8-9所示。其逻辑结构如图8-10所示。,8155芯片介绍,8155A引脚图与8155A逻辑结构图,8155芯片介绍,各引脚的功能说明如下: RESET:8155内部复位信号输入端。高电平有效。8155被初始复位后I/O口变为输入方式。 AD0AD7:三态的地址数据线。地址可以是8155的RAM单元地址或I/O口地址。 CE:片选信号线,低电平有效。 IOM:8155的RAM存储器和I/O口选择线,IOM=0,AD0AD7的地