51单片机如何进行ROM外扩
第4章MCS-51单片机系统功能扩展

74LS373结构示意图
74LS373的引脚
引脚说明如下: D7~D0: 8位数据输入端。 Q7~Q0: 8位数据输出端。 G:数据输入锁存控制端:当G为“1” 时,锁存器 输出端与输入端数据相同;当G由“1” 变“0” 时,数据输入锁存器中。 OE#: 输出允许端。
P0口与地址锁存器74LS373的连接
4.1 系统扩展概述
4.1.1 最小应用系统
图4.1 MCS–51单片机最小化系统 (a) 8051/8751最小系统结构图;(b) 8031最小系统结构图
4.1.2 单片机系统扩展的内容与方法
1.单片机的三总线结构
图4.2 MCS–51单片机的三总线结构形式
(1)以P0口作为低8位地址/数据总线。 (2)以P2口的口线作高位地址线。 (3)控制信号线。 *使用ALE信号作为低8位地址的锁存控制信号。 *以PSEN#信号作为扩展程序存储器的读选通信号。 *以EA#信号作为内外程序存储器的选择控制信号。 *由RD#和WR#信号作为扩展数据存储器和I/O口的 读选通、写选通信号。 尽管MCS-51有4个并行I/O口,共32条口线,但由于系 统扩展需要,真正作为数据I/O使用的,就剩下P1 口和P3口的部分口线。
锁存器8282 功能及内部结构与74LS373完全一样,只是其引脚的排 列与74LS373不同 ,8282的引脚如下图。
4.2.2 74LS244和74LS245芯片
在单片机应用系统中, 扩展的三总线上挂接
很多负载, 如存储器、并行接口、A/D接口、显
示接口等, 但总线接口的负载能力有限, 因此常
3) 采用地址译码器的多片程序存储器的扩展
例3 要求用2764芯片扩展8031的片外程序存储器,分配的 地址范围为0000H~3FFFH。
51单片机 同时扩展ROM,RAM的具体实现及kiel的具体设置

51MCU内部有RAM,ROM,不同于8031。
尽管如今的增强行51MCU的内部RAM,ROM可能已经很大的空间。
但就技术而言,扩展RAM,ROM还是需要学会的。
对于不同的设计方案需求,扩展可能基于以下任何一种设计:A,只扩展RAMB,只扩展ROMC,扩展ROM,RAM****************************总线扩展时,P2口是否可用做普通IO口************************************这种扩展是基于总线扩展的,所以,P0P2口就已经不可以再做它用了(有网友提供信息,总线扩展P2还可以做普通IO口用,有两种可能:1,P2口复用,如同P1利用373锁存器。
2,在总线扩展时,只用到了低地址总线,P2口未用到。
就作为普通IO口应用。
由于技术还不到位,不做评论。
)*******************************************扩展RAM****程序************************************************扩展RAM,在程序中定义的xdata类型XBYTE类型等地址范围在外部RAM的变量,对其读写的过程。
用C51语言编写程序,且使用总线扩展的RAM,则时序电路不用考虑,WR RD等信号由编译器/硬件自动完成。
**************************************编译器设置*****************************************内部RAM:0x00~~0xFF外部RAM:0x0000~~0xFFFFRAM的地址虽重复,但是两个RAM是没有关系的,所以不会造成干扰使用了外部RAM,就在工程选项---off-chip xdata memory中设置start:0x0000 size:0xFFFF(根据具体的RAM大小设置size)。
*******************************扩展RAM时的变量定位及连续读取问题********************************* ROM,RAM的扩展时,需要用到变量的绝对地址定位,函数定位等。
51扩展程序存储器

存储器的扩展程序存储器的扩展MCS-51单片机程序存储器的寻址空间为64KB,对于8051/8751片内程序存储器为4KB的ROM或EPROM,在单片机的应用系统中、片内的存储容量往往不够,特别是8031,片内没有程序存储器,必须外扩程序存储器。
8051外扩程序存储器结构图如图6-1所示。
扩展程序存储器常用芯片有EPROM(紫外线可擦除型),如2716(2KB)、2732(4KB)、2764(8KB)、27128(16KB)、27256(32KB)等,另外还有+5V电擦除E2PROM,如2816(2KB)、2864(8KB)等等。
1. 选择芯片原则在选择程序存储器芯片时,首先满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。
芯片少,接线简单,芯片储存容量大,程序调整余量大。
如估计程序总长4KB左右,最好扩展一片8KB的EPROM2764,留有一定的余量。
另外,能用一片8KBEPROM2764则不要选2片2732(4KB),多一个芯片接线就复杂许多,且功耗增多,尽量减少扩展芯片个数使电路结构简单,提高可靠性。
2. 程序存储器扩展举例例选用8031单片机,程序总量3KB左右,考虑程序存储器的最小扩展系统。
分析:8031单片机内部无ROM,无论程序长短都必须扩展程序存储器,考虑本例的程序量,扩展一片4KB的EPROM最合适。
8031单片机扩展一片4KB的2732程序存储器电路如图6-2所示。
图中74LS373是带三态缓冲输出的8D锁存器,与其功能相同的一组芯片还有8282、74LS273等。
在存储器芯片扩展电路设计时,重点弄清地址线,数据线及控制线的连接方法。
(1) 地址线图中2732共12根地址线AO~All(212=4096B=4KB),低8位A0~A7通过74LS373与P0接口连接,高四位A8~A11直接与P2接口的P2.0~P2.3连接,P2接口有锁存功能。
(2) 数据线2732数据线D0~D7共8位直接与P0接口的P0.0~P0.7相连。
51单片机内存扩展:从片内ROM跳转到片外ROM

51 单片机内存扩展:从片内ROM 跳转到片外ROM
源于一年前想自己动手给51 写个OS,编译选Large 模式,调试时整个流程都跑的好好的,可是烧写到片上后得不到预期的效果,后来查书才知道
51 单片机片上只有4KRom,如果没有扩展片外Rom,当访问4K 以外的程序空间,程序指针又会回到最开始执行。
参考手册扩展片外Rom 后,能访问达64K 的程序空间。
网上能搜索到的扩展方式都是将EA 引脚接地,让MCU 上电后从外部ROM 开始执行。
但查看芯片手册,明明说EA 为高时,程序从
片内ROM 执行,当执行到0x1000 以上地址时(标准51 单片机),会跳转到片外ROM 执行。
按网上的做法,为了扩展个片外ROM,片内的基本ROM 都
不用了,有点浪费了,于是开始找资料如何从片内跳转到片外执行。
射人先射马,发帖先上图,仿真图如下:
此处EA 脚没有接地。
如果想简单粗暴的加电时从片外ROM 执行,EA 引
脚接地,双击U2(27C64)Image File 选Hex 然后就可以了,这不是本文的重点,略过,后面可能会写到。
跳转,最简单的方式用LJMP,当然也可以用把跳转地址压入栈,然后ret 过去,不过这种方式我没尝试成功。
用EEPROM扩展单片机ROM实验

实验九用EEPROM扩展单片机ROM实验一、实验目的1.用EEPROM 27C64扩展51单片机ROM(27C64为外ROM)。
2.用proteus设计、仿真基于AT89C51单片机ROM的扩展实验。
3.借助proteus VSM的虚拟逻辑分析仪,观测单片机访问外ROM(即27C64)时地址、数据和控制总线的信号状态。
二、电路设计1.从PROTEUS库中选取元件①AT89C51.BUS:总线式的单片机;②RES:电阻;③7SEG-BCD- GRN:带BCD译码七段绿光数码管;④CAP、CAP-ELEC:电容、电解电容;⑤CRYSTAL:晶振;⑥74LS373:8D锁存器;⑦27C64:EEPROM存储器。
2.放置元器件3.放置电源和地4.连线5.元器件属性设置6.电气检测三、源程序设计、生成目标代码文件1.流程图2.源程序设计(1)通过菜单“sourc e→Build All”编译汇编源程序,生成目标代码文件。
若编译失败,可对程序进行修改调试直至汇编成功。
(1)加载单片机目标代码文件对AT89C51单片机先右击后左击,打开其属性编辑窗口,在“Program File”栏中添加目标代码文件2764.HEX;在“Clock Frequency”栏中输入晶振频率为120HZ。
(2)加载27C64目标代码文件对2764先右击后左击,打开其属性编辑窗口,在映像文件“Image File”栏中输入外ROM程序的目标代码文件P2764.HEX。
四、PROTEUS仿真1.加载目标代码文件2.仿真单击按钮,启动仿真。
启动仿真后,因单片机的EA脚接电源,从单片机内ROM地址0H开始执行指令LJMP 1000H。
因内ROM的最大地址为0FFFH,而外ROM 27C64的地址从0H到1FFFH,当指令地址大于0FFFH时就自动转到外ROM中去执行程序,所以执行LJMP 1000H是跳转到外ROM 27C64的地址1000H处执行外ROM 27C64中的程序。
51单片机外扩ROM方法

51 单片机外扩ROM 方法
51 单片机外扩ROM 方法
强烈建议用户尽可能不要考虑外扩程序存储器,如果非扩不可,可以仿照
下图所示电路进行扩展
图中P0 口输出外部ROM 的低8 位地址信号,P2 口输出高8 位地址信
号;ALE 端输出地址锁存信号,/PSEN 输出程序存储器输出使能信号。
两个模块
P89V51RD2 单片机内部有64K 用户ROM 区和8K BOOT ROM 区两个模块
两个模块在物理上是分开的,尽管地址重合,但一般不会发生冲突。
用户程序存储区
P89V51RD2 内部有64K Flash ROM,不需要用户再进行ROM 扩展
地址范围:0000H~FFFFH
其内部分配和其他51 系列单片机是相同的
Flash ROM 可以反复擦除和下载程序
擦除和编程的方法
并行编程器
ISP (在系统编程:In-System Program)。
第6章 MCS-51单片机系统扩展技术

6.3 数据存储器扩展
6.3.1 静态RAM扩展电路
6.3.2 动态RAM扩展电路
返回本章首页
6.3.1 静态RAM扩展电路
常用的静态RAM芯片有6116,6264,62256等,其 管脚配置如图6-13所示。
1.6264静态RAM扩展 额定功耗200mW,典型存取时间200ns,28脚双列直插 式封装。表6-1给出了6264的操作方式,图6-14为6264静 态RAM扩展电路。
图 6 9
A EEPROM
28 17
扩 展 电 路
写入数据
不是指令
查询 中断 延时
2.2864A EEPROM 扩展
2864A有四种工作方式: (1)维持方式 (2)写入方式 (3)读出方式 (4)数据查询方式
图 6 12
28 64
返回本节
A EEPROM
扩 展 电 路
串行E2PROM简介 串行E2PROM占用引线少、接线简单,适用于作为数据存储 器且保存信息量不大的场合。 以AT93C46/56/57/66为例,它是三线串行接口E2PROM, 能提供128×8、256×8、512×8或64×16、128×16、256×16 位,具有高可靠性、能重复擦写100,000次、保存数据100年 不丢失的特点,采用8脚封装。
第6章 MCS-51单片机系统扩展技术
6.1 MCS-51单片机系统扩展的基本概念
6.2 程序存储器扩展技术
6.3 数据存储器扩展 6.4 输入/输出口扩展技术
T0 T1
时钟电路
ROM
RAM
定时计数器
CPU
并行接口 串行接口 中断系统
P0 P1 P2 P3
TXD RXD
INT0 INT1
51单片机外部存储器的扩展

1. 片内带程序存储器的最 小应用系统 片内带程序存储器 的8051、 8751本身即可构 成一片最小系统,只要将 单片机接上时钟电路和复 位电路即可, 同时EA 接高 电平, ALE、PSEN 信号不 用, 系统就可以工作。 (1) 系统有大量的I/O线可供用户使用: P0、 P1、 P2、 P3四个口都可以作为I/O口使用。 (2) 内部存储器的容量有限, 只有128 B的RAM和4 KB的程序存储器。
8051单片机的总线扩展 8051单片机的总线扩展
系统扩展概述
最小应用系统 单片机系统的扩展是以基本的最小系统为 基础的, 故应首先熟悉最小应用系统的结构。 实 际 上 , 内 部 带 有 程 序 存 储 器 的 8051 或 8751单片机本身就是一个最简单的最小应用系 统,许多实际应用系统就是用这种成本低和体 积小的单片结构实现了高性能的控制。 对于内部无程序存储器的芯片8031来说, 则 要用外接程序存储器的方法才能构成一个最小 应用系统。
口作为高8位的地址总线 二、以P2口作为高 位的地址总线 口作为高
P0口的低 位地址加上 的高 位地址就可以形成 位的 口的低8位地址加上 的高8位地址就可以形成 口的低 位地址加上P2的高 位地址就可以形成16位的 的寻址能力。 地址总线,达到64KB的寻址能力。 地址总线,达到 的寻址能力 实际应用中,往往不需要扩展那么多地址, 实际应用中,往往不需要扩展那么多地址,扩展多少用 多少口线,剩余的口线仍可作一般I/O口来使用 口来使用。 多少口线,剩余的口线仍可作一般 口来使用。
三、控制信号线 ALE:地址锁存信号,用以实现对低8位地址的锁存。 :地址锁存信号,用以实现对低 位地址的锁存 位地址的锁存。 PSEN:片外程序存储器读选通信号。 :片外程序存储器读选通信号。 EA:程序存储器选择信号。为低电平时,访问外部程序存储 :程序存储器选择信号。 低电平时,访问外部程序存储 外部 高电平时,访问内部程序存储器。 内部程序存储器 器;为高电平时,。 RD:片外数据 : 存储器读选通信 号。 P2 ALE P0 8051 PSEN WR RD A8~A15 地址 A0~A7 锁存器 D0~D7 地址总线
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机如何进行ROM外扩
强烈建议用户尽可能不要考虑外扩程序存储器,如果非扩不可,可以仿照
下图所示电路进行扩展
图中P0 口输出外部ROM 的低8 位地址信号,P2 口输出高8 位地址信号;ALE 端输出地址锁存信号,/PSEN 输出程序存储器输出使能信号。
两个模块
P89V51RD2 单片机内部有64K 用户ROM 区和8K BOOT ROM 区两个模块两个模块在物理上是分开的,尽管地址重合,但一般不会发生冲突。
用户程序存储区P89V51RD2 内部有64K Flash ROM,不需要用户再进行ROM 扩展地址范围:0000H~FFFFH 其内部分配和其他51 系列单片机是相同的Flash ROM 可以反复擦除和下载程序擦除和编程的方法并行编程器ISP (在系统编程:In-System Program)直接调用单片机BOOTROM 区的IAP 函数IAP (在应用编程:In-Application Program)一般情况下优先使用ISP 方式,更方便、更快捷
关于BOOT ROM 区存储介质:Flash Memory 容量:8K 字节存储内容:ISP 引导程序和IAP 函数这些程序出厂时已经由PHILIPS 已经写入,用户可以对其修改,但建议一般用户不要试图修改它。
单片机在复位后会等待400ms,如果
在此期间用户在上位计算机上运行了FlashMagic 等类似ISP 软件,且串口通信正常,单片机将进入BOOT ROM 区运行ISP 引导程序;否则,单片机在400ms 以后将自动从用户ROM 区0000H 单元开始运行用户程序关于ISPISP 在系统编程:In-System Program,指用户不必把单片机从目标板上取下来,在特定的软件配合下直接通过串口(或其他端口)就可以对单片机进行读取、擦除、设置和程序下载等操作,从而取代了并行编程器的很多功能。
现在越来越。