版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章系统扩展接口技术5.1 51系列单片机总线结构,扩展芯片的地址译码5.2 存储器扩展5.3 I/O口扩展,8255芯片5.4 LED数码管5.5 键盘接口,例题5.6 A/D接口扩展5.7 光耦器件接口5.151系列单片机总线结构,扩展芯片的地址译码
图5-1MCS51单片机系统扩展结构图5.1.1系统扩展结构
由图5-1可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。 外部存储器扩展又包括程序存储器扩展和数据存储器扩展。51单片机采用的是哈佛结构。扩展后,系统形成了两个并行的外部存储器空间。
51单片机采用并行总线结构,大大增加了系统的灵活性,使扩展易于实现,各扩展部件只要符合总线规范,就能很方便地接入系统。 由于系统扩展是以51单片机为核心,通过总线把51单片机与各扩展部件连接起来。因此,要进行系统扩展首先要构造系统总线。1系统总线及总线构造按功能通常把系统总线分为三组,如图5-1所示。
1).地址总线(AdressBus,AB)地址总线用于传送单片机发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器选择。地址总线是单向传输的。2).数据总线(DataBus,DB)数据总线用于在单片机与存储器之间或与I/O端口之间传送数据。数据总线是双向的,可以进行两个方向的传送。3).控制总线(ControlBus,CB)控制总线实际上就是单片机发出的各种控制信号线。2.构造系统总线
系统扩展的首要问题:
构造系统总线。系统总线上“挂”存储器芯片或I/O接口芯片,“挂”存储器芯片就是存储器扩展,“挂”I/O接口芯片就是I/O扩展。1).以P0口作为低8位地址/数据总线51单片机由于受引脚数目的限制,数据线和低8位地址线复用。为了将它们分离出来,需要外加地址锁存器,从而构成与一般CPU相类似的片外三总线,见图5-2。
MCS51扩展的片外三总线2).以P2口的口线作为高位地址线
P2口的全部8位口线用作高位地址线,再加上P0口经地址锁存器提供的低8位地址,便形成了完整的16位地址总线(见图5-2),使寻址范围达到64KB。3).控制信号线 除了地址线和数据线之外,还要有系统的控制总线。这些信号有的就是单片机引脚的第一功能信号,有的则是P3口第二功能信号。其中包括:(1)PSEN*信号作为外扩程序存储器的读选通控制信号。(2)RD*和WR*信号作为外扩数据存储器和I/O接口的读、写选通控制信号。(3)ALE信号作为低8位地址的锁存控制信号。(4)EA*信号作为内、外程序存储器的选择控制信号。 可看出,尽管51单片机有4个并行的I/O口,共32条口线,但由于系统扩展的需要,真正作为数字I/O使用的,就剩下P1口和P3口的部分口线了。
5.1.3地址空间分配和外部地址锁存器1.存储器地址空间分配 如何把外部各自的64KB空间分配给各个程序存储器、数据存储器芯片,并且使程序存储器的各个芯片之间,数据存储器各芯片之间,为避免发生数据冲突,一个存储器单元对应一个地址,这就是存储器的地址空间的分配问题。 在外扩的多片存储器芯片中,51单片机要完成这种功能,必须进行两种选择: 一是必须选中该存储器芯片(或I/O接口芯片),这称为“片选”,只有被“选中”的存储器芯片才能被51单片机读出或写入数据。 二是在“片选”的基础上再选择该芯片的某一单元,称为“单元选择”。 常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法),下面分别介绍。1).线选法 直接利用系统的高位地址线作为存储器芯片(或I/O接口芯片)的“片选”控制信号。为此,只需要把用到的高位地址线与存储器芯片的“片选”端直接连接即可。 线选法的优点是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。 缺点是可寻址的芯片数目受到限制。 另外,地址空间不连续,每个存储单元的地址不唯一,不能充分有效地利用存储空间。2).译码法 使用译码器对51单片机的高位地址进行译码,将译码器的译码输出作为存储器芯片的片选信号。是最常用的地址空间分配的方法,它能有效地利用存储器空间,适用于多芯片的存储器扩展。 常用的译码器芯片有74LS138(3-8译码器)74LS139(双2-4译码器)74LS154(4-16译码器)。若全部高位地址线都参加译码,称为全译码;若仅部分高位地址线参加译码,称为部分译码。部分译码存在着部分存储器地址空间相重叠的情况。两种常用的译码器芯片。(1)74LS138 74LS138是3-8译码器,有3个数据输入端,经译码产生8种状态。其引脚如图5-3所示,真值表如表5-1所示。 由表5-1可见,当译码器的输入为某一固定编码时,其输出仅有一个固定的引脚输出为低电平,其余的为高电平。而输出为低电平的引脚就作为某一存储器芯片的片选端的控制信号。图5-3
表5-174LS138译码器真值表
输入输出
G1G2A*G2B*CBAY7*Y6*Y5*Y4*Y3*Y2*Y1*Y0*
(2)74LS139 74LS139是双2-4译码器。两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端。其引脚如图5-4所示,真值表如表5-2所示(见P138)。图5-4下面以74LS138为例,介绍如何进行地址分配。例要扩8片8KB的RAM6264,如何通过74LS138把64KB空间分配给各个芯片?
64KB地址空间的分配如图4-5所示。图5-52.外部地址锁存器地址锁存器芯片:74LS373、8282、74LS573等。1).锁存器74LS373带有三态门的8D锁存器,其引脚及内部结构如图5-7和图5-8。51单片机与74LS373的连接如图5-9所示。引脚说明如下:D7~D0:8位数据输入线。Q7~Q0:8位数据输出线。G:数据输入锁存选通信号。OE*:
数据输出允许信号。图5-7图5-8图5-974LS373功能如表5-3所示。表5-374LS373功能表OE* G D Q
0 1 1 1 0 1 0 0 0 0 × 不变 1 × × 高阻态 5.2存储器扩展5.2.1程序存储器的连接1.地址线的连接程序存储器的高位地址线直接与单片机的P2口相连;程序存储器的低8位地址线通过一个锁存器与单片机的P0口相连。这是因为P0口分时输出地址和数据,所以,为了把地址信息分离保存,使用一个锁存器将地址信息保存起来。2.数据线的连接MCS-51系列单片机的数据线只能是8位,由P0口输出,直接将P0和外部存储器的数据线相连就可以了。3.控制线的连接程序存储器扩展时,需要用到ALE、PSEN、EA等信号;ALE是地址锁存允许信号,通常接到地址锁存器锁存信号端;PSEN是片外程序存储器读选通信号,通常接在程序存储器的读允许端(OE);EA是单片机读片内/片外存储器的选择端,使用片外程序存储器时接地。MCS-51单片机扩展外部程序存储器的硬件电路4、程序存储器的扩展连线
程序存储器的扩展连线步骤1:
程序存储器的扩展连线步骤2:
程序存储器的扩展连线步骤3:
程序存储器的扩展连线步骤4:
程序存储器的扩展连线步骤5:
5.2.2数据存储器的连接1.地址线的连接数据存储器的高位地址线直接与单片机的P2口相连;数据序存储器的低8位地址线通过一个锁存器与单片机的P0口相连。这是因为P0口分时输出地址和数据,所以,为了把地址信息分离保存,使用一个锁存器将地址信息保存起来。2.数据线的连接MCS-51系列单片机的数据线只能是8位,由P0口输出,直接将P0和外部存储器的数据线相连就可以了。3.控制线的连接数据存储器扩展时,需要用到ALE、RD、WR等信号;ALE是地址锁存允许信号,通常接到地址锁存器锁存信号端;RD是片外数据存储器读选通信号,通常接在数据存储器的输出允许端(OE);WR是片外数据写选通信号,通常与数据存储器的读/写控制端(WE)相连。MCS-51单片机扩展外部数据存储器的硬件电路程序存储器的扩展原理框图
数据存储器的扩展原理框图
4、数据存储器的扩展连线
数据存储器的扩展连线步骤1:
数据存储器的扩展连线步骤2:
数据存储器的扩展连线步骤3:
数据存储器的扩展连线步骤4:
数据存储器的扩展连线步骤5:
数据存储器的扩展连线步骤6:
5.2.3存储器扩展电路原理图
1.观察U1、U2、U3的连接原理图
2.U4的数据线D0~D7与U3的数据线D0~D7对应相连
3.U4的地址线A0~A7与U3的地址线A0~A7对应相连
4.U4的地址线A8~A12与U3的地址线A8~A12对应相连
5.U4与U1的连接
5.3I/O口扩展5.3.1开关信号的输入/输出方式 开关信号包括脉冲信号和电平信号。在单片机控制系统中,常采用如下方式实现开关信号的输入和输出。1.直接解码输入/输出方式
在这种方式中,直接利用CPUI/O引脚输入/输出开关信号,如图6-1(a)所示。 在直接解码输入/输出方式中,每一I/O引脚仅能输入或输出一个开关信号,各引脚相互独立,没有编码关系。显然,采用直接解码输入/输出方式时,I/O引脚的利用率较低,因而该方式只适用于仅需要输入或输出少量开关信号的场合。2.矩阵输入/输出方式
在这种方式中,将CPUI/O引脚分成两组,用N条引脚构成行线,M条引脚构成列线,行、列交叉点就构成了所需的N×M个检测点。显然,所需的I/O引脚数目为N+M,而检测点总数达到了N×M个,如图6-1(b)所示。可见,采用矩阵输入/输出方式时,I/O引脚的利用率较高,而且硬件开销少,因此得到了广泛应用。
在矩阵输入/输出方式中,如果行线和列线均被定义为输出状态,则可以输出N×M个开关信号;当行、列线中有一组为输出线,另一组为输入线时,就构成了N×M个输入检测点,如矩阵键盘电路。
3.编码输入/输出方式
在这种方式中,将若干条用途相同(均为输入或输出)的I/O引脚组合在一起,按二进制编码后输入或输出。例如,对于n条输出引脚,经二进制译码器译码后,可以控制2n个设备;对于2n个不同时有效的输入量,经过编码器与CPU连接时,也只需要n个引脚,如图6-1(c)所示。
显然,采用编码输入/输出方式时,CPUI/O引脚利用率最高,但硬件开销大,因此在单片机控制系统中很少采用。 图6-1输入/输出方式(a)直接解码输入/输出方式;(b)矩阵输入/输出方式;(c)编码输入/输出方式5.3.2I/O资源及扩展 通过单片机芯片实现数字信号的输入处理和输出控制时,必须了解以下问题:
(1)准确理解CPU各引脚的功能,确定可利用的I/O资源,并做出相对合理的使用规划。
(2)I/O端口作为输出控制信号线时,
必须了解CPU复位期间和复位后相应引脚的状态。
(3)了解I/O端口输出级电路结构和I/O端口的负载能力。
(4)了解I/O端口输出电平范围。
(5)了解I/O端口最大耐压。5.3.2.1利用锁存器、触发器扩展I/O口
当仅需要扩展少量的I/O引脚时,可利用锁存器、触发器或三态门电路实现。1.输出口扩展 图6-2利用74LS273芯片的输出口扩展电路 当A15、A14、A13、A12、A11、A10为100110时,U3译码输出端Y6*有效。 扩展端口的地址为9800H,执行如下指令即可将累加器Acc的内容锁存到74LS273的输出端。
MOVDPTR,#9800H ;输出口地址送数据指针
MOVX@DPTR,A ;累加器Acc内容锁存到 74LS273的输出端
扩展输出口的状态不能读出。当仅需要修改输出口中个别位的状态时,可使用具有位寻址功能的内部RAM单元作为扩展输出口的映像地址,并采用间接方式访问,即先对映像地址单元进行“读—改—写”操作,再将映像地址单元内容送外部端口。例如,通过如下指令即可将9800H口的b0位取反:
PORTP6DATA28H ;使用28H单元作为9800H ;端口的映像地址
MOVA,PORTP6 ;Acc←9800H端口映像地 ;址
CPLAcc.0 ;对b0位取反
MOVPORTP6,A ;回写映像地址单元
MOVDPTR,#0B000H ;DPTR←端口地址
MOVX@DPTR,A ;端口映像内容b0位取反后 ;送74LS273输出端2.输入口扩展 对输入口来说,一般无需锁存,原则上三态门电路、具有三态输出的总线缓冲器、驱动器、D型触发器(如74LS374)以及电平触发的锁存器(如74LS373)等均可以作为输入口扩展芯片,如图6-3所示。 在图6-3中分别使用了两片74LS373、一片74LS125构成了三个数据输入口,共扩展了20条输入线 图6-3输入口扩展电路 图6-4一个实用的输入/输出口扩展电路5.3.2.2利用“串入并出”及“并入串出”芯片扩展I/O口
在速度要求不高的情况下,可利用74LS164、74HC594、74HC595等“串入并出”芯片扩展输出口,利用74LS165、74HC597等“并入串出”芯片扩展输入口,这也是一种简单、实用的I/O口扩展方式。 当串行口未用时,可通过串行口方式0完成串行数据的输入/输出;而当串行口已作它用时,可根据串行芯片的操作时序,使用I/O引脚模拟串行移位脉冲完成数据的输入/输出。 在图6-5中,借助两片74HC595“串入并出”芯片即可将8XC5X芯片的3根I/O引脚通过串行方式扩展为16根输出引脚。图6-5通过“串入并出”芯片扩展输出引脚 假设扩展的输出引脚ED7~ED0输出的信息在内存中的映像地址为EDATA1,ED15~ED8输出的信息在内存中的映像地址为EDATA1+1,则可通过如下程序段将数据串行输出到ED15~ED0引脚。
EDATA1DATA38H ;假设输出数据存放在 ;38H、39H 单元中
SDI BITP1.0 ;串行数据输入接P1.0引脚
SRCLK BIT P1.1 ;串行移位脉冲接P1.1引脚
RCLK BIT P1.2 ;并行输出锁存脉冲接P1.2 ;引脚
;----------串行数据输出程序段---------
CLRRCLK ;并行锁存脉冲置为低电平
MOVR0,#EDATA1
MOVR2,#2 ;共需要串行输出两个字节
LOOP1:
MOVA,@R0 ;取输出数据
MOVR3,#8 ;右移8次
LOOP2:
CLRSRCLK ;串行移位脉冲置为低电平
RRCA ;带进位Cy循环右移
MOVSDI,C ;串行数据送SDI
NOP ;插入NOP指令适当延迟(是否延 ;迟由CPU指令周期决定)
SETBSRCLK ;串行移位脉冲置为高电平,形成 ;上升沿
DJNZR3,LOOP2
INCR0 ;R0加1,指向高8位
DJNZR2,LOOP1 ;循环,输出高8位
SETBRCLK ;并行输出锁存脉冲置为高电平, ;形成上升沿5.3.2.3利用8255可编程I/O芯片扩展MCS-51并行I/O口
常用的外围I/O接口芯片有:
(1)8255:可编程的通用并行接口电路(3个8位I/O口) (2)8155:可编程的IO/RAM扩展接口电路(2个8位I/O
口,1个6位I/O口,256个RAM字节单元,1个14位的减法 定时器/计数器)。
8255是可编程并行I/O接口芯片,具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功 能,因而使用灵活方便,通用性强。1.引脚说明
8255采用DIP40、PLCC44或QFP44封装形式,引脚功能及排列如图6-6所示。
图6-68255的引脚功能及排列
(a)引脚功能; (b)引脚排列引脚功能:
D7~D0——数据总线,双向,三态,可直接与CPU数据总线相连。
A1、A0——地址线,输入。8255由A、B、C三个8位输入/输出口和一个控制/状态寄存器组成,含有四个可寻址的I/O端口。A1、A0地址线状态编码与这四个I/O端口的对应关系如表6-1所示。 表6-1地址线状态编码与I/O端口的对应关系
CS*——片选信号,输入,低电平有效。
WR*——写选通信号,输入,低电平有效。
RD*——读选通信号,输入,低电平有效。
PA7~PA0——A口数据输入/输出引脚。
PB7~PB0——B口数据输入/输出引脚。
PC7~PC0——C口数据输入/输出引脚。
Vcc——+5V电源。
RESET——复位引脚,高电平有效。(1)端口PA、PB、PC
功能和结构上有些差异
PA口:输出锁存和缓冲;输入锁存
PB口:输出锁存和缓冲;输入缓冲
PC口:输出锁存;数据输入缓冲
PC口可在软件的控制下,分为两个4位端口,作为PA口、PB口选通方式操作时的状态控制信号。(2)A组和B组控制电路
A组:PA口和PC口的上半部(PC7~PC4);
B组:PB口和PC口的下半部(PC3~PC0),可根据“命令字”对PC口按位“置1”或“清0”。(3)数据总线缓冲器 三态双向,作为8255A与单片机数据线之间接口,传送数据、指令、控制命令及外部状态信息。(4)读/写控制逻辑电路线 该电路接收CPU发来的控制信号,RESET,地址信号A1、A0等。对端口进行读写。
8255中的控制寄存器主要用于选择A、B、C三个并行口的工作状态。作输出口时,A、B、C口均为一个8位的数据输出锁存和缓冲器;作输入口时,A口为一个8位数据输入锁存器,而B、C口均为一个8位的数据输入缓冲器(即B、C口对输入数据不具备锁存功能)。
表6-28255的工作状态
3.工作方式选择控制字及C口置位/复位控制字
8255I/O口有三种工作方式:
方式0,即基本输入/输出方式。
方式1,即选通输入/输出方式。 方式2,即双向传输方式(仅A口有)。(1)工作方式选择控制字 三种工作方式由方式控制字来决定。 控制字格式如下。
C口上半部分(PC7~PC4)随A口称为A组,
C口下半部分(PC3~PC0)随B口称为B组。 其中A口可工作于方式0、1、和2,而B口只能工作在方式0和方式1。 例
写入工作方式控制字95H:10010101
可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分(PC7~PC4)输出,C口的下半部分(PC3~PC0)输入。(2)C口按位置位/复位控制字 可对C口8位中的任一位置“1”或清“0”。用于位控。例
控制字07H写入控制口,置“1”PC3;控制字08H写入控制口,清“0”PC4。4.8255的三种工作方式
1)方式0
基本的输入/输出方式。
MCS-51可对8255进行数据的无条件传送 基本功能为:(1)具有两个8位端口(A、B)和两个4位端口(C的上半部分和下半部分)。(2)任一个端口都可以设定为输入或输出,各端口的输入、输出可构成16种组合。(3)数据输出锁存,输入不锁存。
2)方式1
选通输入/输出工作方式。A口和B口通常用于I/O数据传送,C口用作A口和B口的联络线,以中断方式传送数据。(1)方式1输入 控制联络信号如图6-7所示,STB*与IBF构成了一对应答联络信号,联络信号的功能如下:STB*:选通输入,是由输入外设送来的输入信号。IBF:输入缓冲器满,高电平有效。该信号有效时,表示输入到A口或B口输入缓冲器内的数据未被CPU读走,外设不能再把数据输入缓冲器内。
INTR:中断请求信号,高电平有效。由8255A输出,向单片机 发中断请求。
下面以A口为例,说明选通输入方式下的数据传输过程,其硬件连接如图6-7(a)所示。
图6-7选通输入/输出连接示意图(a)A口工作在选通输入方式下信号连接方式及时序;(b)A口工作在选通输出方式下信号连接方式及时序 ①当外设需要将数据输入到8255A口时,先检查IBFA(即PC5引脚)的状态。
②当IBFA无效(即低电平)时,把数据送到A口。
③外设输出STB*信号到8255的PC4引脚,将输入数据锁存到A口的输入缓冲器中。
④8255接收到STB*信号后,一方面,在STB*信号的下降沿(即前沿)触发IBFA,使PC5引脚为高电平,
通知外设不能再发送数据;另一方面,在STB*信号的上升沿(即后沿)将INTRA(即PC3引脚)置为有效状态,向CPU发出中断请求,告知CPU可以读取A口的输入数据。 ⑤CPU响应INTRA请求后,向8255发出RD*信号,读A口数据。8255接收RD*信号后,在脉冲下降沿使INTRA无效(自动清除INTRA标志),在上升沿使IBF无效,为接收下一外设数据做准备。
以上为完成一字节数据的接收过程。(2)方式1输出 如图6-7所示。OBF*与ACK*构成了一对应答联络信号,各信号的功能如下:
OBF*:输出缓冲器满信号,82C55给外设的联络信号,外 设可以将数据取走。
ACK*:外设的响应信号,外设已将数据取走。
INTR*:中断请求信号。表示该数据已被外设取走,请求单 片机继续输出下一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 印刷行业前台工作经验
- 机场航空行业顾问工作总结
- 酒店接待工作总结
- 抱石工人劳动合同三篇
- 会计准则解读与应用总结
- 广东省深圳市龙华区2023-2024学年六年级上学期英语期末试卷(1月)
- 渔具行业销售工作总结
- 2023-2024学年浙江省温州市十校联合体高二(下)期中地理试卷
- 2023年广东省珠海市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2024年广西壮族自治区南宁市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- (高清版)DZT 0284-2015 地质灾害排查规范
- 驾驶员劳务派遣车辆管理方案
- 电缆大和小修危险源辨识和控制措施
- CSCO胃癌诊疗指南转移性胃癌更新解读
- 微电子器件课后答案(第三版)
- 机关餐饮项目服务方案(完整版)
- 《网络安全等级保护条例》
- 儿童福利机构服务与管理规范
- 《工装夹具设计》课程标准
- 宜昌市夷陵区2023-2024学年八年级上学期期末数学评估卷(含答案)
- 企划品宣部人员架构及职责
评论
0/150
提交评论