第2章 存储器的认识

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

行,在程序比较复杂的运算中,累加器成了制约软件效
率的“瓶颈”,它的功能较多,地位也十分重要。
21
(2)程序状态字寄存器(PSW) PSW是一个8位寄存器,它也是一个特殊功
能寄存器,其在SFR中的地址为D0H,用于存放 程序运行中的各种状态信息,这个寄存器的一 些位可由软件设置,有些位则由硬件自动设置。 寄存器的各位定义及功能如表2-1所示。
第1节 存储器的认识
特殊功能寄存器区离散地分布了21个特殊功 能寄存器(又称为专用寄存器),这些寄存器反 映了51单片机的运行状态,很多功能均是通过特 殊功能寄存器来定义和控制执行的,这些寄存的 功能已做了专门的规定,用户不能修改其结构。 例如累加器A、寄存器B、程序状态字寄存器 (PSW)、数据指针(DPTR)、I/O口寄存器 P0~P3等均为特殊功能寄存器。
工作寄存器组
第0组(00H~07H) 第1组(08H~0FH) 第2组(10H~17H) 第3组(18H~1FH)
PSW.5
F0
用户标志 位
供用户设置的标志位,由用户置1或清0
PSW.6 PSW.7
辅助
AC
进位 当进行加、减运算时当低4位向高4位有进位或借位时,AC置1,
标志
否则清0。AC辅助进位位常用于十进制调整
为384B。实际提供给用户使用的片内数据存储
器容量对51子系列为128B,对52子系列为256B,
它们是用于存放程序执行的中间结果和过程数据
的。
8
第1节 存储器的认识
片内256个字节数据存储器分为两部分:低128字节
为用户数据RAM单元,地址为00H~7FH,该部分为用户
数据存取使用;高128字节为特殊功能寄存器(SFR)单
9
第1节 存储器的认识
工作寄存器区32个字节被均匀地分为4个组, 每组有8个工作寄存器,均以R0~R7来命名。第 0组工作寄存器,地址为00H~07H;第1组工作 寄存器,地址为08H~0FH;第2组工作寄存器, 地址为10H~17H;第3组工作寄存器,地址为 18H~1FHH。在程序运行时,究竟使用的是哪组 工作寄存器,就要通过一个特殊功能寄存器程序 状态字寄存器(PSW)的第4和第3位(RS1和 RS0)的值来区分它们。RS1和RS0为00则用第0 组工作寄存器;RS1和RS0为01则用第1组工作寄 存器;RS1和RS0为10则用第2组工作寄存器; RS1和RS0为11则用第3组工作寄存器。若程序中 并不需要4组,那么其余的可作为一般的数据存 储器。CPU复位后,选中第0组工作寄存器。 10
83H和82H。它通常在访问外部数据存储器时作 为地址指针使用。编程时既可以按16位寄存器 来使用,也可以按两个8位寄存器来使用,即高 字节寄存器(DPH,地址为83H)和低字节寄存 器(DPL,地址为82H)。当访问程序存储器时, DPTR可用来作为基址寄存器,采用基址+变址 寻址方式访问程序存储器。
FFH 256B RAM
80H
SFR
7FH
RAM
00H
0000H
EA 1
1000H 0FFFH
EA 0
0000H 片外程序存储器
图2-1 51单片机存储器地址空间
4
第1节 存储器的认识
三、相关知识
1.程序存储器
程序存储器用于存放用户程序、数据和表格等信息,
其存储单元只能读不能写。51单片机程序存储器有16位
7
第1节 存储器的认识
(1)片内数据存储器
51单片机内部数据存储器地址为8位,可寻
址的范围为256B,但实际的片内数据存储器因
单片机型号不同有所不同:其中8031,8051,
8751,89C51,89S51等51子系列为256B,而
8032,8052,8752,89C52,89S52等52子系列
第 3 组工作寄存器 8B
地址:18H~1FH
15
图2-3 单片机存储器各部分的功能及使用注意
16
第1节 汇编语言程序设计基础 任务一 存储器的认识
图2-4 单片机片内数据存储器结构
17
第1节 存储器的认识
4.软件仿真时存储器的观察窗口 在编写好程序后,必须用伟福或Keil软件对
编译通过的程序进行调试,在调试过程中打开工 作寄存器窗口、特殊功能寄存器窗口和内部RAM 窗口,进行程序运行时各输入端口状态的设置, 观察程序运行过程中各相关单元的值。在程序调 试时,先用单步或跟踪运行,在程序调试通过后 再用全速运行,如图2-5~图2-8所示。
18
第1节 汇编语言程序设计基础 任务一 存储器的认识
图2-6 伟福软件存储器观察窗口
图2-5 伟福软件特殊功能寄存器观察窗口
19
第1节 汇编语言程序设计基础 任务一 存储器的认识
图2-8 Keil软件存储器观察窗口
图2-7 Keil软件CPU寄存器观察窗口
20
三、相关知识
1.特殊功能寄存器
范围(−128~+127)时,即产生溢出,OV=1,表明运算
结果错误;如运算结果没有超出有效范围,则OV=0,表
明运算结果正确。执行加法指令时,当位6向位7有进位,
OV 溢出标志
而位7向CY没有进位时,OV=1。或者位6向位7没有进位, 而位7向CY有进位时,同样OV=1。所以OV为位6进位与位
7进位的异或,即OV=CY6⊕CY7。执行乘法指令时,乘积 超过255时,OV=1,乘积在AB寄存器中;若OV=0,则说
元,地址为80H~FFH,该部分为单片机功能控制用。
片内数据存储器低128B根据其用途的不同,又可分为3 个区:工作寄存器区,地址为00H~1FH,共32个字节, 该区为工作寄存器使用;位寻址区,地址为20H~2FH, 共16个字节128位,位地址为00H~7FH,该区单元既可 按字节操作,又可按位操作;用户RAM区,地址为 30H~7FH,共80个字节,该区为用户数据存取使用,只 能按字节操作。
2
第1节 存储器的认识
单片机的存储器又可分为片内和片外存储
器。片内存储器是在单片机内部的存储器,通常
容量有限。当单片机程序很大,同时单片机运行
时的数据较大,片内存储器容量不够,就需要对
单片机扩展外部存储器,这就是片外存储器。
综上所述,51单片机有两种存储器:程序
存储器和数据存储器。51单片机同时拥有4个存
明乘积没有超过255,乘积只在累加器A中。执行 除法指
令时,OV=1,表示除数为0,运算不被执行;否则OV=0。
表2-1 程序状态字寄存器位定义及位功能表
23
位序
第1节 位 标 志
位名

汇编语言程功序能 设计基础
任务二 寻址方式的认识
PSW.
4
RS1
PSW. RS0
3
工作寄存 器组 选择 位
RS1 RS0 00 01 00 11
储空间(物理结构上):片内ROM、片外ROM、
片内RAM和片外RAM。图2-1所示为51单片机存
储器地址空间,其中使用最频繁的是片内数据存
储器,应重点掌握。
3
第1节 存储器的认识
64KB RAM FFFFH
FFFFH 64KB ROM
0000H 片外数据存储器
片内存储器 0FFFH 4KB ROM
第1节 汇编语言程序设计基础
程序存储器
数据存储器
任务一 存储器的认识
片内程序存储器
4KB
地址:0000H~0FFFH
片外程序存储器 64KB
地址:0000H~FFFFH
片内数据存储器 256B
地址:00H~FFH
片外数据存储器 64KB
地址:0000H~FFFFH
RAM 区 128B
地址:00H~7FH
访问。片内数据存储器是程序设计中使用频率最
高的存储器部分,用户的许多参数、变量及单片
机功能控制寄存器均取自于该部分存储器。
12
第1节 存储器的认识
(2)片外数据存储器结构 51单片机片外数据存储器为16位地址空间,
因此最多可扩展64KB的片外RAM。由图2-1可知, 片内RAM和片外RAM的低256B的地址相同,但 它们却是两个不同的地址空间。区分这两个地址 空间的方法是采用不同的指令,访问片内RAM用 MOV指令,访问片外RAM用MOVX指令。
25
2.程序计数器(PC)
PC在物理上是独立的,它不属于特殊功能 寄存器区的一个寄存器。PC是一个16位的计数 器,它的作用是控制程序的执行顺序,用于存 放一条将要执行的指令地址,寻址范围为64KB。 PC有自动加1功能,即完成了一条指令的执行后, 其内容自动加1。PC本身并没有地址,因而不可 寻址,用户无法对它进行读写,但是可以通过 转移、调用、返回等指令改变其内容,以控制 程序按用户要求去执行。
第1节 存储器的认识
一、任务目标 学习51单片机的存储器结构。通过本任务的
学习,使读者掌握51单片机存储器的结构及使用 方法。 二、任务分析 在单片机中,用户设计好的程序及程序运行 时的数据要放到一个载体里,这个载体就叫存储 器(集成电路)。
1
第1节 存储器的认识
程序设计完成后写到存储器中,在单片机运 行时程序只需从存储器中读取出来运行。用来存 放程序的存储器,我们称之为程序存储器(只读 存储器),简称ROM。而在单片机运行时,数据 将随着程序的运行发生变化,我们将存放数据的 存储器称为数据存储器(随机存储器),简称 RAM。
地址,可寻址的范围为64KB,因此片外程序存储器最大
容量为64KB,而片内程序存储器容量为4KB。程序存储
器在物理结构上分为片内程序存储器和片外程序存储器
两个部分,在逻辑结构上(即用户使用角度)为一个部
分,采用同一指令(MOVC指令)进行数据读取,用外部 引脚进行区分低4KB空间使用的是片内程序存储器还是片 外程序存储器。
11
第1节 存储器的认识
对52子系列的高128B(地址为80H~FFH)
对应两个物理空间,一个空间作为用户RAM区,
为用户使用;另一空间作为特殊功能寄存器区,
为单片机功能部件控制使用,两部分地址重叠,
但通过不同的寻址方式可将它们区分开:对
80H~FFH的用户RAM区只能采用寄存器间接寻
址方式访问,而对SFR区只能采用直接寻址方式
(1)累加器(ACC)
ACC是8位寄存器,它是一个最常用的特殊功能寄
存器(专用寄存器),其在SFR中的地址为E0H,在指
令中常将ACC简写为A。大部分单操作数指令的操作数取
自累加器,很多双操作数指令中的一个操作数也取自累
加器。加、减、乘、除法运算指令,运算结果都存放于
A或寄存器B中。大部分的数据操作都会通过累加器A进

此位有两个功能:一是执行加法或减法运算时,存放运算结果
进位标志
CY

的进位或借位标志,当运算结果的最高位有进位或借位时 置1,否则清0;二是在位操作中作为累加位使用,在指令
中常简写为C
表2-1 程序状态字寄存器位定义及位功能表
24
(3)数据指针(DPTR) DPTR为16位寄存器,其在SFR中的地址为
高电平,使CPU先读内部程序存储器中的程序,
当PC值超过内部ROM的容量时,才会转而读外
部程序存储器中的程序。
6
第1节 存储器的认识
2.数据存储器 数据存储器也称为随机存取存储器,用于存
取程序运行时的中间结果、标志位及控制功能数 据等。51单片机的数据存储器在物理上和逻辑上 都分为两个地址空间:片内数据存储器和片外数 据存储器。
SFR 区 128B
地址:80H~FFH
工作寄存器区 32B
地址:00H~1FH
位寻址区 16B
地址:20H~2FH
用户 RAM 区 80B
地址:30H~7FH
第 0 组工作寄存器 8B
地址:00H~07H
第 1 组工作寄存器 8B
地址:08H~0FH
第 2 组工作寄存器 8B
地址:10H~17H
图2-2 单片机存储器总体分配图
5
第1节 存储器的认识
对于8031单片机来说,它的内部没有ROM,
因此,在实际使用时,必须对它扩展外部程序存
储器,最大可扩展空间地址为64KB,此时8031
单片机的端必须接地,强制CPU从外部程序存储
器读取程序。对于内部有ROM的8051,8751,
89C51,89S51等单片机,正常运行时,则需接
13
第1节 存储器的认识
四、任务实施 1.单片机存储器总体分配 单片机存储总体分配图如图2-2所示。 2.单片机存储器各部分的功能及使用注意 单片机存储器各部分的功能及使用注意如图
2-3所示。 3.单片机片内数据存储器的结构 单片机片内数据存储器的结构如图2-4所示。
14
51 单片机存储器
22


第1节 位 标 位 名


汇编语言程功序能 设计基础
任务二 寻址方式的认识
PSW.0
P
奇偶校验 表明A内容的奇偶性,凡是改变A中内容的指令均影响奇偶校

验位,若A中值为1的位数为奇数,则P置1,否则清0
PSW.1
Hale Waihona Puke Baidu
F1
用户标志 位
供用户设置的标志位,由用户置1或清0
PSW.2
在有符号加减法运算中,如运算结果超出8位有符号数的有效
相关文档
最新文档