第八篇 单片机应用系统扩展
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表8.1 2716(2K)/2732(4KB)的引脚
VCC PGM VPP A10 A9 A8
A7 A6 A5 A4 A3 A2 A1 A0
A0~A10 (2716) A0~A11 (2732) D0~D7 CE PGM
地址线 数据输出线 片选 程脉冲输入
2716(2k) EPROM
D7 D6 D5 D4 D3 D2 D1 D0 OE CE GND
例:用2片2732扩展8KB程序存储器
(当P2.5,P2.4取为1时) ROM(1)的地址:B000H~BFFFH ROM(2)的地址:7000H~7FFFH
(当P2.5,P2.4取为0时) ROM(1)的地址:8000H~8FFFH ROM(2)的地址:4000H~4FFFH
例8-3:用一片27128 EPROM扩展16KB的程序存储器。
第八章 单片机应用系统扩展设计基础 8.1 8.2 8.3 8.4 程序存储器扩展 数据存储器扩展设计 并行I/O扩展设计 外部中断扩展方法
MCS-51 单片机虽然在一块芯片上集成了计算机的
基本功能部件,已具备了很强的功能。但在比较复 杂的应用场合,其存储器I/O端口或中断源等往往略 显不够、所以往往要根据需要对单片机系统进行功 能扩展。特别是对8031型这种内部无程序存储器, 单片机必须有外部扩展程序存储器 EPROM ,才可 用于实际应用系统。 本章重点介绍常用扩展接口电路及其设计方法。
8.2 数据存储器扩展设计
由于 8051 单片机的片内 RAM 仅有 128B ,当系统需
27128具有14根地址线A0~ A13可选中片内16KB程序存储 器空间中任一单元,按照图8.3的接法:片选信号CE由P2.7 送出低电平有效。
27128的地址范围:4000H~7FFFH。
2、扩展E2PROM
E2PROM (即EEPROM)是一种电擦除电可编
程的只读存储器。其特点是能在线擦除和改写 存储单元内容。具有在断电情况下能保持存储 单元的内容的性能E2PROM还像静态RAM一 样,可以在线进行读写操作。
A7 A6 A5 A4 A3 A2 A1 A0
74LS373
2732(4k) EPROM
51单片机
PSEN
D7 D6 D5 D4 D3 D2 D1 D0 OE CE GND
2732(4kx8)的地址范围为0000H ~ 0FFFH。
2732是4K×8的EPROM。引脚排列与2716基本一
致其A0~A11分别接8031的P0.0~P0.7和P2.0~P2.3。 20脚OE/VPP与/PSEN 相连,CE接地。 2732的地址范围为0000H~0FFFH。 在扩展中,有一个问题要在设计中提请注意:P2口 除被使用的口线外,多余的引脚不宜作通用 I/O线, 否则会给软件设计和使用上带来麻烦。 多片的存储器扩展设计:它的设计方法可用P2的高 位地址线连接各片存储器的片选线/CE。而后求出 它们的不同的地址范围
OE VPP
数据输出选通线 编程电源
硬件连接应注意:
1. 单片机/EA脚的连接(接地); 2. /PSEN脚和存储器芯片的使能端/OE连接; 3. ALE脚和数据锁存器芯片的使能端G连接; 4. 单片机的P0通过锁存器与存储器低8位地址相连 P2与存储器芯片的高8位地址线连接。
2716与单片机的连接如图:
AT89C51系统并行扩展结构如所示。
系统总线按功能分为三组。 (1)地址总线(Adress Bus,AB) 地址总线用于传送单片机发出的地址信号,以便进行存储单
元和I/O接口芯片中的寄存器选择。地址总线是单向传输的。
(2)数据总线(Data Bus,DB) 数据总线用于在单片机与存储器之间或与I/O端口之间传送 数据。数据总线是双向的,可以进行两个方向的传送。 (3)控制总线(Control Bus,CB) 控制总线实际上就是单片机发出的各种控制信号线。 下面讨论如何构造系统三总线
(2).锁存器74LS573 输入的D端和输出的Q端依次排在芯片的两侧,为绘制印刷电 路板时的布线提供了方便。
D7~D0:8位数据输入线。 Q7~Q0:8位数据输出线。 G :数据输入锁存选通信号,该引 脚与74LS373的G端功能相同。 /OE:数据输出允许信号,低电平 有效。
8.1 程序存储器扩展
MCS-51单片机的8051/8751片内有4KB的ROM 或EPROM,而8031片内无ROM,若在应用中使用 片内 ROM 容量不够或选用 8031 时,需要扩展外部 程序存储器。 片内、片外的 ROM 空间是统一编址的在这一节 中 主 要 通 过 典 型 的 实 例 介 绍 8031 外 接 EPROM 和 EEPROM芯片扩展程序存储器的设计方法。
ቤተ መጻሕፍቲ ባይዱ
相关基础知识
一、 单片机系统扩展结构简介
系统扩展主要包括存储器扩展和I/O接口部件扩展。 外部存储器扩展又包括程序存储器扩展和数据存储器扩 展。AT89C51采用的是哈佛结构。扩展后,系统形成了两 个并行的外部存储器空间。
89C51单片机采用并行总线结构,大大增加了系统的灵
活性,使扩展易于实现,各扩展部件只要符合总线规范, 就能很方便地接入系统。
片选的需要,每个存储器芯片都有片选信号引脚,
二是在“片选”的基础上再选择该芯片的某一单元,称为“单元选 择”。
常用存储器地址空间分配方法有两种:线选法和译码法
1.线选法 直接利用系统的高位地址线(P2)作为存储器芯片(或I/O接口
芯片)的“片选”控制信号。为此,只需要把用到的高位地址线与
存储器芯片的“片选”端直接连接即可。 优点是电路简单,不需要另外增加地址译码器硬件电路,体积 小,成本低。 缺点是可寻址的芯片数目受到限制。 而且地址空间不连续。 *一般只适用于外扩芯片数目不多的单片机系统的存储器扩展。
例8-1:扩展2KB程序存储器。
+5V P2.4 P2.3 P2.2 P2.1 P2.0 EA P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 ALE D7 D6 D5 D4 D3 D2 D1 D0 G OE Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 VCC PGM VPP A10 A9 A8
2716是2K×8位的EPROM芯片,有11根地址线 A0~A10。它们分别与8031单片机的P0口 (P0.0~P0.7)和P2口的P2.0~P2.2连接。 2716的21脚VPP(编程电源端)接+5V,/OE 与/PSEN连接,/CE 接地,当/PSEN =0选通信号 为低电压时,选通读出2716的指令码。/PSEN=1, 则2716数据线输出为高阻态。
(1)/PSEN信号作为外扩程序存储器(ROM)的读选通控制信
号。 (2)/RD和/WR信号作为外扩数据存储器(RAM)和I/O接口的 读、写选通控制信号。
(3)ALE信号作为低8位地址的锁存控制信号。
(4)/EA信号作为内、外程序存储器的选择控制信号。
尽管89C51单片机有4个并行的I/O口,共32条口线,但 由于系统扩展的需要,真正作为I/O口使用的,就剩下P1
1、 EPROM程序存储器扩展设计
单片机的存储器扩展方法:线选法和译码法。
所谓线选法就是将存储器的片选线/CE 接P2口的某位地 址线。 译码法需要用地址译码器,这样可以充分利用地址资源。
EPROM(紫外线电擦除可编程只读存储器)的典型产品 有2716(2KB)、2732(4KB)、2764(8KB)、27128 (16KB)、 27256(32KB)等。
2.译码法
使用译码器对89C51的高位地址进行译码,将译码
器的译码输出作为存储器芯片的片选信号。是最 常用的地址空间分配的方法,它能有效地利用存 储器空间,适用于多芯片的存储器扩展。 常用的译码器芯片有74LS138(3-8译码器) 74LS139(双2-4译码器)74LS154(4-16译码器)。
写入的数据取自8031内部RAM40H开始的源数据区中。
SOURCE EQU 40H ;源数据区首地址 OBJECT EQU 0000H ;E2PROM首地址 LENGTH EQU 10H ;一页数据长度 MOV R0,#SOURCE ;取源地址 MOV R1,#LENGTH ;取数据块长度 MOV DPTR,#OBJECT ;取目的地址 LOOP: MOV A,@R0 ;取源数据 MOVX @DPTR,A ;写入E2PROM中 MOV R2,DPL ;暂存目的地址指针 MOV R3,DPH INC R0 ;源地址指针指向下一个单元 INC DPTR ;目的地址指针向下一单元 DJNZ R1,LOOP ;字节数未满,转移 DEC R0 ;源地址指针指向最后页尾 MOV DPL,R2 ;目的地址指针指向最后一个字节 MOV DPH, R3 CHECK: MOVX A,@DPTR ;读出 E2RPOM最后写入的字节 XRL A,@R0 ;与原数据比较 JB ACC.7,CHECK ;最高位不同,继续查询 RET ;最高位相同,一页写完
E2PROM的主要芯片有 2832,2864A等。
例:8031外扩一片8KB E2PROM 2864A
2864的地址范围为0000H~1FFFH。这8KB存储器既可用作程
序存储器,也可以用作数据存储器(掉电时,数据不易失)。
例:编写一个写入一页(16个字节)数据到E2PROM 2864A的子程序。设被
几种常用芯片介绍
(1)74LS138
74LS138是3-8译码器,有3个数据输入端,经译码产生
8种状态。
74LS138译码器真值表 输
G1 G2A* G2B*
入
C B A
输
出
Y7* Y6* Y5* Y4* Y3* Y2* Y1* Y0*
(2)74LS139 74LS139是双2-4译码器。两个译码器完全独立,分别有各自的 数据输入端、译码状态输出端以及数据输入允许端。
下面以74LS138为例,介绍如何进行地址分配。
例 要扩8片8KB的RAM 6264,如何通过74LS138把64KB空间分 配给各个芯片? 64KB地址空间的分配如图所示。
3、 外部地址锁存器 地址锁存器芯片: 74LS373、74LS573等。
(1). 锁存器74LS373
带有三态门的8D锁存器,其引脚及内部结构如图
A7 A6 A5 A4 A3 A2 A1 A0
74LS373
2716(2k) EPROM
51单片机
PSEN
D7 D6 D5 D4 D3 D2 D1 D0 OE CE GND
2716(2kx8)的地址范围为0000H ~ 07FFH。
例:扩展4KB程序存储器。
+5V P2.4 P2.3 P2.2 P2.1 P2.0 EA P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 ALE D7 D6 D5 D4 D3 D2 D1 D0 G OE Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 VCC PGM VPP A11 A10 A9 A8
口和P3口的部分口线了。
二、地址空间分配和外部地址锁存器
1、存储器地址空间分配
如何把外部各自的64KB空间分配给各个程序存储器、数据存储器
芯片,并且使程序存储器的各个芯片之间,数据存储器各芯片之间,
为避免发生数据冲突,一个存储器单元对应一个地址,这就是存储器 的地址空间的分配问题。 在外扩的多片存储器芯片中,AT89C51要完成这种功能,必须进行 两种选择: 一是必须选中该存储器芯片(或I/O接口芯片),这称为“片选”, 只有被“选中”的存储器芯片才能被AT89C51读出或写入数据。为了
1.以P0口作为低8位地址/数据总线 AT89C51由于受引脚数目的限制,数据线和低8位地址线复用。 为了将它们分离出来,需要外加地址锁存器,从而构成与一般
CPU相类似的片外三总线,见下图。
2. 以P2口的口线作为高位地址线
P2口的全部8位口线用作高位地址线,再加上P0口
经地址锁存器提供的低8位地址,便形成了完整的 16位地址总线,使寻址范围达到64KB。 3.控制信号线 除了地址线和数据线之外,还要有系统的控制总线。 这些信号有的就是单片机引脚的第一功能信号,有 的则是P3口第二功能信号。其中包括: