您的位置 首页 芯闻

8051单片机存储器地址分配

一、程序存储器空间MCS-51单片机具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。1、对于内部无ROM的8031单片机,它

一、程序存储器空间

MCS-51单片机具有64kB程序存储器寻址空间,它是用于寄存用户程序、数据和表格等信息。

1、关于内部无ROM的8031单片机,它的程序存储器有必要外接,空间地址为64kB,此刻单片机的使能端端有必要接地。强制CPU从外部程序存储器读取程序。

2、关于内部有ROM的8051等单片机,正常运转时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超越内部ROM的容量时,才会转向外部的程序存储器读取程序。

8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机发动复位后,程序计数器的内容为0000H,所以体系将从0000H单元开端履行程序。但在程序存储中有些特别的单元,这在运用中应加以留意:

其间一组特别是0000H—0002H单元,体系复位后,PC为0000H,单片机从0000H单元开端履行程序,假如程序不是从0000H单元开端,则应在这三个单元中寄存一条无条件搬运指令,让CPU直接去履行用户指定的程序。

另一组特别单元是0003H—002AH,这40个单元各有用处,它们被均匀地分为五段,它们的界说如下:

0003H—000AH 外部中止0中止地址区。

000BH—0012H 守时/计数器0中止地址区。

0013H—001AH 外部中止1中止地址区。

001BH—0022H 守时/计数器1中止地址区。

0023H—002AH 串行中止地址区。

可见以上的40个单元是专门用于寄存中止处理程序的地址单元,中止呼应后,按中止的类型,主动转到各自的中止区去履行程序。因此以上地址单元不能用于寄存程序的其他内容,只能寄存中止服务程序。可是通常情况下,每段只需8个地址单元是不能存下完好的中止服务程序的,因此一般也在中止呼应的地址区安放一条无条件搬运指令,指向程序存储器的其它真实寄存中止服务程序的空间去履行,这样中止呼应后,CPU读到这条搬运指令,便转向其他地方去持续履行中止服务程序。

二、数据存储器
数据存储器也称为随机存取数据存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。

MCS-51内部RAM有128或256个字节的用户数据存储(不同的类型有别离),它们是用于寄存履行的中心成果和进程数据的。MCS-51的数据存储器均可读写,部分单元还能够位寻址。
1、 8051内部RAM共有256个单元,这256个单元共分为两部分。其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。从80H—FFH地址单元(也是128个字节)为特别寄存器(SFR)单元。从图1中可清楚地看出它们的结构散布。

在00H—1FH共32个单元中被均匀地分为四块,每块包括八个8位寄存器,均以R0—R7来命名,咱们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0—R7,那么在程序中怎样区别和运用它们呢?聪明的INTEL工程师们又组织了一个寄存器——程序状况字寄存器(PSW)来办理它们,CPU只需界说这个寄存的PSW的第3和第4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码联系如图2所示。

内部RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H—7FH。位地址分配如表1所示,CPU能直接寻址这些位,履行例如置“1”、清“0”、求“反”、搬运,传送和逻辑等操作。咱们常称MCS-51具有布尔处理功用,布尔处理的存储空间指的便是这些为寻址区。

表1 RAM位寻址区地址表
单元地址 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

——————————————————————————–
特别功用寄存器
特别功用寄存器(SFR)也称为专用寄存器,特别功用寄存器反映了MCS-51单片机的运转状况。许多功用也经过特别功用寄存器来界说和操控程序的履行。

MCS-51有21个特别功用寄存器,它们被离散地散布在内部RAM的80H—FFH地址中,这些寄存的功用已作了专门的规则,用户不能修正其结构。表2是特别功用寄存器散布一览表,咱们对其主要的寄存器作一些简略的介绍。

程序计数器PC(program Counter)
程序计数器在物理上是独立的,它不归于特别内部数据存储器块中。PC是一个16位的计数器,用于寄存一条要履行的指令地址,寻址规模为64kB,PC有主动加1功用,即完成了一条指令的履行后,其内容主动加1。PC自身并没有地址,因此不行寻址,用户无法对它进行读写,可是能够经过搬运、调用、回来等指令改动其内容,以操控程序按咱们的要求去履行。

累加器ACC(Accumulator)
累加器A是一个最常用的专用寄存器,大部分单操作指令的一个操作数取自累加器,许多双操作数指令中的一个操作数也取自累加器。加、减、乘、除法运算的指令,运算成果都寄存于累加器A或AB累加器对中。大部分的数据操作都会经过累加器A进行,它形象于一个交通要道,在程序比较复杂的运算中,累加器成了限制软件功率的“瓶颈”,它的功用较多,位置也十分重要。以至于后来开展的单片机,有的集成了多累加器结构,或许运用寄存器阵列来替代累加器,即赋予更多寄存器以累加器的功用,意图是处理累加器的“交通堵塞”问题。进步单片机的软件功率。

表2 特别功用寄存器
标识符号 地址 寄存器称号
ACC 0E0H 累加器
B 0F0H B寄存器
PSW 0D0H 程序状况字
SP 81H 仓库指针
DPTR 82H、83H 数据指针(16位)含DPL和DPH
IE 0A8H 中止答应操控寄存器
IP 0B8H 中止优先操控寄存器
P0 80H I/O口0寄存器
P1 90H I/O口1寄存器
P2 0A0H I/O口2寄存器
P3 0B0H I/O口3寄存器
PCON 87H 电源操控及波特率挑选寄存器
SCON 98H 串行口操控寄存器
SBUF 99H 串行数据缓冲寄存器
TCON 88H 守时操控寄存器
TMOD 89H 守时器方法挑选寄存器
TL0 8AH 守时器0低8位
TH0 8CH 守时器0高8位
TL1 8BH 守时器1低8位
TH1 8DH 守时器1高8位

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/259897.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部