四川工程职业技术学院
单片机应用技术课程电子教案
Copyright ? Http://mcu.scetc.net
第 讲 3
8051及 P89V51RD2的程序存储器
Copyright ? Http:// mcu.scetc.net 2 SiChuan Engineering Technical Colledge-1959
本讲主要内容
3-1,51架构与 51单片机的内部存储器
3-2,51单片机的程序存储器管理
3-3,51单片机的 ROM扩展
3-4,增强型 51单片机 P89V51RD2的内部 ROM
Copyright ? Http:// mcu.scetc.net 3 SiChuan Engineering Technical Colledge-1959
3-1,51架构与 51单片机的内部存储器
? 51架构
时 钟 电 路
总 线 控 制
C P U
R O M / E P R O M / F L A S H
4 K 字 节
R A M 1 2 8 字 节
S F R 2 1 个
定 时 / 计 数 器
2 个
中 断 系 统
5 中 断 源, 2 优 先 级
串 行 口
全 双 工 2 个
并 行 口
4 个
R S T
E A A L E P S E N
X T A L 2 X T A L 1
P 0 P 1 P 2 P 3
V C C
V S S
串行通信接口
全双工 1个
内部 ROM
TXD RXD
中断系统 并行通信接口 4× 8bit
定时 /计数器
n× 16bit 内部 RAM
时 钟
电 路
CPU
总线控制
Copyright ? Http:// mcu.scetc.net 4 SiChuan Engineering Technical Colledge-1959
3-1,51架构与 51单片机的内部存储器
? 51架构单片机内部存储器
内部 ROM 内部 RAM
ROM,Read Only Memory
只读
作 用,存储程序或表格
类 型, EPROM/FLASH/OTP
容 量, 0~ 64K(0~ 65536)
单位 -字节 (byte)
容量大小视单片机型号不
同而不同
地 址, 0000H~
RAM,Random Access Memory
可读可写
作 用,存放程序运行中产生的临
时数据
容 量, 128byte~
容量大小视单片机型号不
同而不同
类 型, DATA 000~ 127
IDATA 128~ 255
XDATA 000~
Copyright ? Http:// mcu.scetc.net 5 SiChuan Engineering Technical Colledge-1959
? 8051单片机和 P89V51RD2单片机的内部存储器对比
P89V51RD2(增强型 51MCU) 8051
3-1,51架构与 51单片机的内部存储器
ROM,PROM(掩膜 ROM)
4K Byte
0000H~ 1FFFH
RAM,DATA-128Byte
00~ 7FH
SFR, 21个
80~ FFH
ROM,Flash Memory
64K Byte
0000H~ FFFFH
RAM,DATA-128Byte 00~ 7FH
IDATA-128Byte 80~ FFH
XDATA-768Byte 00~ 2FFH
SFR, 62个
80~ FFH
Copyright ? Http:// mcu.scetc.net 6 SiChuan Engineering Technical Colledge-1959
3-2,51单片机的程序存储器管理
? 关于 51系列单片机的程序存储器 ROM
? 程序存储器用于存放程序和表格等固定数据,掉电数据不丢失
? 每种单片机在其内部都会有 0~ 64K容量不等的 ROM
? 如果单片机片内 ROM空间不够,可以在单片机外部扩展 ROM,但建
议用户尽量避免外扩 ROM,51系列单片机 1000多种型号,一定可以
找到内部 ROM容量符合要求的单片机。即便是单片机略微贵点 也值

? 目前市面上的单片机 ROM主要有 Flash Memory和 OTP (One Time
Programmable)两种,PROM,EPROM等形式的单片机已经很少见了。
就开发而言 Flash Memory的单片机更加合适,如 ATMEL公司的
AT89CXX单片机和 PHILIPS公司的 P89CXX单片机
Copyright ? Http:// mcu.scetc.net 7 SiChuan Engineering Technical Colledge-1959
3-2,51单片机的程序存储器管理
? 51系列单片机的程序存储器管理
? 每个 ROM单元 (byte)对应一个唯一的 16bit地址编码 (Address)
? CPU要到某个 ROM单元去取指令,是通过把地址写入一个 16bit的特
殊功能寄存器 —— 程序计数器 PC(Program Counter)来实现,因此,51
系列单片机的地址的编码范围 (通常称为寻址范围 ),
0000 0000 0000 0000B ~ 1111 1111 1111 1111B(二进制)
0 0 0 0 H ~ F F F F H(十六进制)
0 ~ 65535 (十进制)
通常习惯说 51系列单片机的 ROM寻址范围是 64K
? PC的值是 CPU根据用户程序的运行流程自动装载的,它的值代表单
片机下一条要执行的指令在 ROM中的存放位置,用户不能直接对 PC
进行操作
Copyright ? Http:// mcu.scetc.net 8 SiChuan Engineering Technical Colledge-1959
3-2,51单片机的程序存储器管理
? 51单片机程序存储器分配
0 0 0 0 H
0 F F F H
1 0 0 0 H
F F F F H
E A = 1
内 部
E A = 0
外 部
外 部
P S E N
0 0 0 0 H
F F F F H
R O M
0 0 0 3 H
0 0 0 B H
0 0 1 3 H
0 0 1 B H
0 0 2 3 H
复 位 入 口
I N T 0 中 断 入 口
T 0 中 断 入 口
I N T 1 中 断 入 口
T 1 中 断 入 口
串 口 中 断 入 口
0000H, 系统的启动单元
系统复位后,单片机从此处开
始取指令开始执行
0003H,外部中断 0入口地址
000BH,定时器 /计数器 0中断入口地址
0013H,外部中断 1入口地址
001BH,定时器 /计数器 1中断入口地址
0023H, 串行中断入口地址
Copyright ? Http:// mcu.scetc.net 9 SiChuan Engineering Technical Colledge-1959
? 51单片机外扩 ROM方法
强烈建议用户尽可能不要考虑外扩程序存储器,如果非扩不可,可以
仿照下图所示电路进行扩展
图中 P0口输出外部 ROM的低 8位地址信号,P2口输出高 8位地址信号;
ALE端输出地址锁存信号,/PSEN输出程序存储器输出使能信号。
3-3,51单片机的 ROM扩展
E A /V P
31
X1
19
X2
18
R E S E T
9
RD
17
WR
16
I N T 0
12
I N T 1
13
T0
14
T1
15
P 1 0
1
P 1 1
2
P 1 2
3
P 1 3
4
P 1 4
5
P 1 5
6
P 1 6
7
P 1 7
8
P 0 0
39
P 0 1
38
P 0 2
37
P 0 3
36
P 0 4
35
P 0 5
34
P 0 6
33
P 0 7
32
P 2 0
21
P 2 1
22
P 2 2
23
P 2 3
24
P 2 4
25
P 2 5
26
P 2 6
27
P 2 7
28
P S E N
29
A L E / P
30
T X D
11
R X D
10
M C S - 5 1
OC
1
C
11
1D
3
1Q
2
2D
4
2Q
5
3D
7
3Q
6
4D
8
4Q
9
5D
13
5Q
12
6D
14
6Q
15
7D
17
7Q
16
8D
18
8Q
19
7 4 L S 3 7 3
A0
10
A1
9
A2
8
A3
7
A4
6
A5
5
A6
4
A7
3
A8
25
A9
24
A 1 0
21
A 1 1
23
A 1 2
2
A 1 3
26
A 1 4
27
E
20
G
22
D Q 1
11
D Q 2
12
D Q 3
13
D Q 4
15
D Q 5
16
D Q 6
17
D Q 7
18
D Q 8
19
2 7 2 5 6
G N D
G N D
P 0,0 - P 0,7
P 2,0 - P 2,6
G N D
Copyright ? Http:// mcu.scetc.net 10 SiChuan Engineering Technical Colledge-1959
3-4,增强型 51单片机 P89V51RD2的内部 ROM
? 两个模块
P89V51RD2单片机内部有 64K用户 ROM区和 8K BOOT ROM区两个模块
1FFFH
8K byte
Boot ROM
模块 0:存放用户
程序
0000H
FFFFH
64K byte
用户 ROM
Flash
0000H
模块 1:存放 ISP引
导程序和 IAP函数
两个模块在物理上是
分开的,尽管地址重
合,但一般不会发生
冲突。
Copyright ? Http:// mcu.scetc.net 11 SiChuan Engineering Technical Colledge-1959
3-4,增强型 51单片机 P89V51RD2的内部 ROM
? 用户程序存储区
? P89V51RD2内部有 64K Flash ROM,不需要用户再进行 ROM扩展
地址范围,0000H~ FFFFH
? 其内部分配和其他 51系列单片机是相同的
? Flash ROM可以反复擦除和下载程序
? 擦除和编程的方法
? 并行编程器
? ISP (在系统编程,In-System Program)
? 直接调用单片机 BOOTROM区的 IAP 函数
IAP (在应用编程,In-Application Program)
一般情况下优先使用 ISP方式,更方便、更快捷
Copyright ? Http:// mcu.scetc.net 12 SiChuan Engineering Technical Colledge-1959
3-4,增强型 51单片机 P89V51RD2的内部 ROM
? 关于 BOOT ROM区
存储介质,Flash Memory
容 量,8K字节
存储内容,ISP引导程序和 IAP函数
这些程序出厂时已经由 PHILIPS已经写入,用户可以对其修改,但建
议一般用户不要试图修改它。
单片机在复位后会等待 400ms,如果在此期间用户在上位计算机上运
行了 FlashMagic等类似 ISP软件,且串口通信正常,单片机将进入 BOOT
ROM区运行 ISP引导程序;否则,单片机在 400ms以后将自动从用户
ROM区 0000H单元开始运行用户程序
Copyright ? Http:// mcu.scetc.net 13 SiChuan Engineering Technical Colledge-1959
3-4,增强型 51单片机 P89V51RD2的内部 ROM
? 关于 ISP
ISP 在系统编程,In-System Program,指用户不必把单片机从目标
板上取下来,在特定的软件配合下直接通过串口(或其他端口)就可以
对单片机进行读取、擦除、设置和程序下载等操作,从而取代了并行编
程器的很多功能。
现在越来越多的单片机都具有 ISP功能。
PHILIPS提供的单片机 ISP软件是 FlashMagic,通过串口完成 ISP操作。