单片机教案第二章Word文档下载推荐.docx
《单片机教案第二章Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机教案第二章Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
第二节8051的内部数据存储器(内部RAM)
一、存储器概述
存储器是储存二进制信息的数字电路器件。
微型机的存储器包括主存储器和外存储器。
外存储器(外存)主要指各种大容量的磁盘存储器、光盘存储器等。
主存储器(内存)是指能与CPU直接进行数据交换的半导体存储器。
存储器是计算机中不可缺少的重要部件。
半导体存储器具有存取速度快、集成度高、体积小、可靠性高、成本低等优点。
单片机是微型机的一种,它的主存储器也采用半导体存储器。
1.导体存储器的一些基本概念:
位:
信息的基本单位是位(Bit或b),表示一个二进制信息“1”或“0”。
在存储器中,位信息是由具有记忆功能的半导体电路实现的,例如用触发器记忆一位信息。
字节:
在微型机中信息大多是以字节(Byte或B)形式存放的,一个字节由8个位信息组成(1Byte=8Bit),通常称作一个存储单元。
存储容量:
存储器芯片的存储容量是指一块芯片中所能存储的信息位数,例如8K×
8位的芯片,其存储容量为8×
1024×
8位=65536位信息。
存储体的存储容量则是指由多块存储器芯片组成的存储体所能存储的信息量,一般以字节的数量表示。
地址:
地址表示存储单元所处的物理空间的位置,用一组二进制代码表示。
地址相当于存储单元的“单元编号”,CPU可以通过地址码访问某一存储单元,一个存储单元对应一个地址码。
例如8051单片机有16位地址线,能访问的外部存储器最大地址空间为64K(65536)字节,对应的16位地址码为0000H~FFFFH,第0个字节的地址为0000H,第1个字节的地址为0001H,…,第65535个字节的地址为FFFFH。
存取周期:
是指存储器存放或取出一次数据所需的时间。
存储容量和存取周期是存储器的两项重要性能指标。
2.导体存储器的分类
半导体存储器按读、写功能可以分为随机读/写存储器RAM(RandomAccessMemory)和只读存储器ROM(ReadOnlyMemory)。
随机读/写存储器RAM可以进行多次信息写入和读出,每次写入后,原来的信息将被新写入的信息所取代。
另外,RAM在断电后再通电时,原存的信息全部丢失。
它主要用来存放临时的数据和程序。
RAM按生产工艺分,又可以分为双极型RAM和MOSRAM,而MOSRAM又分为静态RAM(SRAM)和动态RAM(DRAM)。
(1)双极型RAM:
是以晶体管触发器作为基本存储电路,存取速度快,但结构复杂、集成度较低,比较适合用于小容量的高速暂存器。
(2)MOSRAM:
是以MOS管作为基本集成元件,具有集成度高,功耗低,位价格便宜等优点,现在微型机一般都采用MOSRAM。
只读存储器ROM的信息一旦写入后,便不能随机修改。
在使用时,只能读出信息,而不能写入,且在掉电后ROM中的信息仍然保留。
它主要用来存放固定不变的程序和数据。
ROM按生产工艺分,又可以分为以下几种:
(1)掩膜ROM:
其存储的信息在制造过程中采用一道掩膜工艺生成,一旦出厂,信息就不可改变。
(2)可编程只读存储器PROM:
其存储的信息可由用户通过特殊手段一次性写入,但只能写入一次。
(3)可擦除只读存储器:
其存储的信息用户可以多次擦除,并可用专用的编程器重新写入新的信息。
可擦除只读存储器又可分为紫外线擦除的EPROM、电擦除的EEPROM和FlashROM。
二、8051的内部数据存储器
8051内部RAM有256个单元,通常在空间上分为两个区;
低128个单元(00H~7FH)的内部数据RAM块和高128个单元(80H~0FFH)的专用寄存器SFR块。
(一)内部RAM低128单元
8051低128个单元是真正的内部数据RAM区,是一个多功能复用性数据存储器,其按用途可分为三个区域。
如图2—2所示:
1.工作寄存器区(00H~1FH)
也称为通用寄存器,该区域共有4组寄存器,每组由8个寄存单元组成,每个单元8位,各组均以R0~R7作寄存器编号,共32个单元,单元的00H~1FH。
在任一时刻,CPU只能使用其中一组通用寄存器,称为当前通用寄存器组,具体可由程序状态寄存器PSW中RS1,RS0位的状态组合来确定。
通用寄存器为CPU提供了就近存取数据的便利,提高了工作速度,也为编程提供了方便。
2.位寻址区(20H~2FH)
内部RAM的20H~2FH,共16个单元,计16×
8=128位,位地址为00H~7FH。
位寻址区既可作为一般的RAM区进行字节操作,也可对单元的每一位进行位操作,因此称为位寻址区,是存储空间的一部分。
表2—1列出了位寻址区的位地址:
表2—1位寻址区的位地址
单元地址
MSB
位
地
址
LSB
2FH
7FH
7EH
7DH
7CH
7BH
7AH
79H
78H
2EH
77H
76H
75H
74H
73H
72H
71H
70H
2DH
6FH
6EH
6DH
6CH
6BH
6AH
69H
68H
2CH
67H
66H
65H
64H
63H
62H
61H
60H
2BH
5FH
5EH
5DH
5CH
5BH
5AH
59H
58H
2AH
57H
56H
55H
54H
53H
52H
51H
50H
29H
4FH
4EH
4DH
4CH
4BH
4AH
49H
48H
28H
47H
46H
45H
44H
43H
42H
41H
40H
27H
3FH
3EH
3DH
3CH
3BH
3AH
39H
38H
26H
37H
36H
35H
34H
33H
32H
31H
30H
25H
2FH
2EH
2DH
2CH
2BH
2AH
29H
28H
24H
27H
26H
25H
24H
23H
22H
21H
20H
23H
1FH
1EH
1DH
1CH
1BH
1AH
19H
18H
22H
17H
16H
15H
14H
13H
12H
11H
10H
21H
0FH
0EH
0DH
0CH
0BH
0AH
09H
08H
20H
07H
06H
05H
04H
03H
02H
01H
00H
其中:
MSB——最高有效位。
LSB——最低有效位。
3.用户RAM区(30H~7FH)
所剩80个单元即为用户RAM区,单元地址为30H~7FH,在一般应用中把堆栈设置在该区域中。
对内部RAM低128单元的使用作几点说明:
(1)8051的内部RAM00H~7FH单元可采用直接寻址或间接寻址方式实现数据传送。
(2)内部RAM20H~2FH单元的位地址空间可实现位操作。
当前工作寄存器组可通过软件对PSW中的RS1,RS0位的状态设置来选择。
(3)8051的堆栈是自由堆栈,单片机复位后,堆栈底为07H,在程序运行中可任意设置堆栈。
堆栈设置通过对SP的操作实现,例如用指令MOVSP,#30H将堆栈设置在内部RAM30H以上单元。
(二)内部RAM高128单元
内部RAM高128单元是供给专用寄存器使用的,因此称之为专用寄存器区(也称为特殊功能寄存器区(SFR)区),单元地址为80H~0FFH。
8051共有22个专用寄存器,其中程序计数器PC在物理上是独立的,没有地址,故不可寻址。
它不属于内部RAM的SFR区。
其余的21个专用寄存器都属于内部RAM的SFR区,是可寻址的,它们的单元地址离散地分布于80H~0FFH。
表2—2为21个专用寄存器一览表。
表2—28051专用寄存器一览表
寄存器符号
地址
寄存器名称
·
ACC
E0H
累加器
B
F0H
B寄存器
PSW
D0H
程序状态字
SP
81H
堆栈指示器
DPL
82H
数据指针低八位
DPH
83H
数据指针高八位
IE
A8H
中断允许控制寄存器
IP
B8H
中断优先控制寄存器
P0
80H
I/O口0
P1
90H
I/O口1
P2
A0H
I/O口2
P3
B0H
I/O口3
PCON
87H
电源控制及波特率选择寄存器
SCON
98H
串行口控制寄存器
SBUF
99H
串行口数据缓冲寄存器
TCON
88H
定时器控制寄存器
TMOD
89H
定时器方式选择寄存器
TL0
8AH
定时器0低8位
TL1
8BH
定时器1低8位
TH0
8CH
定时器0高8位
TH1
8DH
定时器1高8位
注:
带“·
”专用寄存器表示可以位操作。
下面介绍有关专用寄存器功能。
1.程序计数器PC(ProgramCounter)
PC是一个16位计数器,其内容为单片机将要执行的指令机器码所在存储单元的地址。
PC具有自动加1的功能,从而实现程序的顺序执行。
由于PC不可寻址的,因此用户无法对它直接进行读写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。
PC的寻址范围为64KB,即地址空间为0000~0FFFFH。
2.累加器ACC或A
累