Post on 05-Jan-2016
description
Copyright http://www.myvtc.edu.cn 2006
MCS-51 系列的单片机有 5 个独立的存储空间:片内 / 片外程序存储器 64K ( 0000-0FFFFH );128B 的片内数据存储器( 00-7FH );128B 特殊功能寄存器 SFR ( 80-0FFH );位寻址区( 20H-2FH );片外数据存储器 64K ( 0000-0FFFFH )。注: MCS-51 系列单片机各型号芯片在各个存储器空间的物
理单元个数可能是不同的。
1.3 MCS-51 单片机的存储器
Copyright http://www.myvtc.edu.cn 2006
123456789
1011121314
2827262524232221 201918171615
EP
RO
M
2764
123456789
1011121314
2827262524232221 201918171615
EP
RO
M
2764
123456789
1011121314151617181920
4039383736353433323130292827262524242221
123456789
1011121314
2827262524232221 201918171615
RAM
6264
123456789
1011121314
2827262524232221 201918171615
RAM
6264
8031
8751
8051
89C51片内片内RAMRAM
片内片内ROMROM
256B (字节)
4K
64K
64K
Copyright http://www.myvtc.edu.cn 2006
MCS-51 单片机的程序存储器分为:片内程序存储器片外程序存储器MCS-51 单片机的最大存储空间为 64KB 。MCS-51 单片机程序存储器的地址指针为程序计数器 PC 。MCS-51 单片机程序存储器的读取顺序由 EA 确定。MCS-51 单片机存储空间的 6 个特殊功能区域。
程序存储器
Copyright http://www.myvtc.edu.cn 2006
一、对于片内有 4KB 程序存储器的单片机EA=1 时,则 PC 的值在 0000H-0FFFH 之间, CPU 先
从片内程序存储器空间取指执行;当 PC 的值大于 0FFFH 时才访问外部的程序存储器空间。
若 EA=0 时,则片内程序存储器空间被忽略, CPU 只从片外程序存储器空间取指执行。
二、对于片内没有程序存储器的单片机 在构成系统时必须在外部扩展程序存储器,其 EA 必
须接地。 ( 最好不要扩展片外程序存储器的单片机,单片机型号多达数百种,可选用片内 Flash 容量大的型号,除非特殊原因。 )
EA 作用
Copyright http://www.myvtc.edu.cn 2006
(( 11 )程序存储器)程序存储器
程序存储器
内部 外部
0000H
0FFFH
(4K)
0000H
FFFFH
(64K)
0000H
0FFFH
(4K)
0000H0001H0002H
(PC)
0000H 是程序执行的起始单元 ,在这三个单元存放一条无条件转移指令
中断 5
中断 4
中断 3
中断 2
中断 10003H
000BH
0013H
001BH
0023H
002BH
外部中断 0
定时器 0 中断
外部中断 1
定时器 1 中断
串行口中断
8 位
...0FFFH0FFEH
EA=1 EA=0
程序存储器资源分布
中断入口地址
Copyright http://www.myvtc.edu.cn 2006
0000H :系统的启动单元(系统复位后,单片机从此处开始取指令开始执行)
0003H :外部中断 0 入口地址000BH :定时器 / 计数器 0 中断入口地址0013H :外部中断 1 入口地址001BH :定时器 / 计数器 1 中断入口地址0023H :串行中断入口地址
程序存储器空间的 6 个特殊功能区域
Copyright http://www.myvtc.edu.cn 2006
MCS-51 单片机的内部数据存储器有以下几个部分:工作寄存器区(00H—1FH )位寻址区( 20H—2FH )该区域的 16 个字节单元可以用于位寻址 ( 共 128 个位单元,位地址为:
00H—7FH ) ;另外也可以作为一般的 RAM 使用。举例: SETB 0FH(21H. 7) ;置位 0FH 为“ 1”
CLR 0FH(21H. 7) ;置位 0FH 为“ 0”
用户区( 30H—7FH )该区域的 80 个字节单元,主要用于用户的数据存储,在该区域的单元只
能以地址单元的形式进行操作。
128B 的片内数据存储器( 00H-7FH )
(2)(2) 片内数据存储器片内数据存储器SRAMSRAM
Copyright http://www.myvtc.edu.cn 2006
0000H
FFFFH
(64K)
内部
外部
(2)(2) 片内数据存储器片内数据存储器 SRAMSRAM
数据存储器
00H
FFH
7FH
80H
( 高 128B)
( 低 128B) RAM
专用寄存器
00H
07H08H
0FH10H
17H18H
1FH
0 区R0
R7R0
R7R0
R7R0
R7
1区
2 区
3 区
工作寄存器区
可位寻址区
20H
2FH 7F 78
07 00
30H
7FH数据缓冲区 / 堆栈区
内部 RAM 存储器
1 11 1 第 第 3 3 区区 18H~1FH18H~1FH
0 10 1 第 第 1 1 区区 08H~0FH08H~0FH
RS1 RS0RS1 RS0 寄存器区寄存器区 片内片内 RAMRAM 地址地址 0 00 0 第 第 0 0 区区 00H~07H00H~07H
1 01 0 第 第 2 2 区区 10H~17H10H~17H
工作寄存器区选择位 RS0 、 RS1
PSW 位地址 CY
AC F0 RS1 RS0 OV F1 P
Copyright http://www.myvtc.edu.cn 2006
内部 RAM 的 00H-1FH 分为 4 个区(由 RS0 和 RS1 的状态决定当前的工作寄存器组别), 每个区有 8 个单元,分别用 R0-R7 来表示。
第 0 组工作寄存器:地址范围为 00H-07H ;第 1 组工作寄存器:地址范围为 08H-0FH ;第 2 组工作寄存器:地址范围为 10H-17H ;第 3 组工作寄存器:地址范围为 18H-1FH 。举例:如果 RS0 : RS1=00 时;则 (R0)=00H( 使用第 0 组)如果 RS0 : RS1=01 时;则 (R0)=08H( 使用第 1 组)如果 RS0 : RS1=10 时;则 (R0)=10H( 使用第 2 组)如果 RS0 : RS1=11 时;则 (R0)=18H( 使用第 3 组)
工作寄存器区( 00H—1FH )
Copyright http://www.myvtc.edu.cn 2006
MCS-51 单片机中,有 21 个具有特殊功能的寄存器,它主要是用来存放单片机的相应功能部件的控制命令、状态或数据。其中常用的有以下几个:
ACC (累加器, 8 位):特殊用途的寄存器,专门存放操作数或运算结果。
例如: MOV A , 30H (把 30H 单元的数据传送给 A )
ADD A , 30H ( 30H 的数据和 A 的内容相加,并保存在 A中)
B ( 8 位):专门为乘除法而设置的寄存器。 又如: MUL A , B ; A 和 B 相乘,结果的高低字节分别放入 A 和 B 中
DIV A , B ;( A ) / ( B ),商存 A ,余数存 B
128B 特殊功能寄存器 SFR ( 80H-0FFH )
Copyright http://www.myvtc.edu.cn 2006
高高 128128 个单个单元元☆离散分布有 21个
特殊功能寄存器 SFR 。(Specific Function register )
☆ 11 个可以进行位寻址。
☆特别提示:对 SFR 只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。
Copyright http://www.myvtc.edu.cn 2006
CY ( C ):进位和借位标志,当指令执行中有进位和借位产生时, CY 为 1 ,反之为 0 。
AC :辅助进位、借位标志(低半字节对高半字节的进位和借位),有进位和借位产生时, AC 为 1 ,反之为 0 。
F0: 用户标志位,由用户自定义。 RS1 和 RS0 :工作寄存器选择标志位。 OV :溢出标志位。 P :奇偶校验位,当 A 中 1 的个数为偶数时 P=0 ,反之为 1 。
位序 D7 D6 D5 D4 D3 D2 D1 D0
位标志 CY AC F0 RS1 RS0 OV / P
PSW(程序状态字, 8 位):存放指令执行后的有关状态。
Copyright http://www.myvtc.edu.cn 2006
DPTR( 数据地址指针, 16 位) : 存放程序存储器的地址或外部数据存储器的地址。可分 DPH 和 DPL两个独立 8 位寄存器使用。
PC (程序地址寄存器, 16 位):执行指令后自动加一,常将 PC 值设置成程序第一条指令的内存地址。 访问范围: 0000-0FFFFH 。
SP (堆栈指针, 8 位):专门存放堆栈的栈顶位置。遵循“先进后出”的原则。 注意:禁止用传送指令存放数据。
Copyright http://www.myvtc.edu.cn 2006
标准 51 系列单片机的内部 RAM—— 堆栈 堆栈——是在 RAM 区中划定的一个区域,对该区域 RAM 单元的
读写操作必须遵守特定的顺序。比如先入先出,或先入后出原则。 堆栈的作用——主要用在子程序的调用过程中或作为特殊的数据交换区。
堆栈的开辟 栈顶的位置由 SP (堆栈指针)寄存器指示。 复位时 SP 的初值为 07H ,在系统初始化时可以根据用户的需要重新设置。
标准 8051 的堆栈一般设在 30H~7FH 的范围内。
51 单片机的数据存储器管理
Copyright http://www.myvtc.edu.cn 2006
X YZ
51 单片机的数据存储器管理标准 51 系列单片机的内部 RAM—— 堆栈
堆栈的操作
65H
64H
63H
62H
61H
栈底 60H
59H
内部 RAM
PUSH PUSHPUSH
X YZ
入栈过程
65H
64H
63H
62H
61H
栈底 60H
59H
内部 RAM
POP Z POP YPOP X
X
Y
Z
出栈过程
先入后出后入先出先入后出后入先出
Copyright http://www.myvtc.edu.cn 2006
22 、、 80318031 有四个工作寄存器区,由有四个工作寄存器区,由 PSWPSW 状态字中的状态字中的 RS1RS1 、、RS0RS0 两位的状态来决定,单片机复位后,若执行 两位的状态来决定,单片机复位后,若执行 SETB SETB RS0 RS0 指令,此时只能使用( )区的工作寄存器。指令,此时只能使用( )区的工作寄存器。
AA .. 00 区区 BB .. 22 区区 DD .. 11 区区CC .. 33 区区
Copyright http://www.myvtc.edu.cn 2006
11 、、 CPUCPU 主要的组成部分为主要的组成部分为 ( )( ) 。。
DD ..加法器,寄存器加法器,寄存器
AA ..运算器,指令译码器运算器,指令译码器 BB ..运算器运算器 ,, 寄存器寄存器
CC ..运算器,控制器运算器,控制器