① 单片机存储器疑问:(地址分配)
第一个问题你说的是对的 片外要外接 第二个问题是 FFFFH是16进制相当于1111 1111 1111 1111 是16位的 0000H-FFFFH也就是由0000 0000 0000 0000到1111 1111 1111 1111 共16位 每位有两种选择 即0和1 所以用乘法原理 也就是共有 2的16 次方 即65536 又因为1k字节是1024字节 65536除1024等于64所以说 0000到FFFFH 寻址是寻址在64K存储器的中寻址的 第三个问题是 MOV是数据转移指令 P1是由P1.0-P1.7是8位的特殊寄存器 这个指令是把0000 0000分别送到P1.0-P1.7中的每一位 需要记住的是 有H的是16进制数 我上面所说的 0000 0000是因为每位16进制数相当于4位二进制数 所以说00H是0000 0000 , 0000H是0000 0000 0000 0000 ,FFFFH是1111 1111 1111 1111 在16进制数中F是什么 还用解释吗
② MCS-51 单片机的存储器地址空间如何划分各地址空间的地址范围和容量如何
MCS-51 单片机的存储器地址空间,讲起来,要用几页.
简单介绍如下:
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间.
片内RAM:
地址范围是00H到7FH (52系列延伸到FFH).
其中00H到1FH,共32字节,分成四个工作寄存器区,每区有寄存器 R0~R7.
对此区域,可以使用 R0~R7 来操作,但是,当前只有一个区是可以这样读写的.
对此区域,也可以使用字节地址,来读写.
20H-2FH,共16字节,是位寻址区,共有128个“位”,位地址:00~7FH.
此区域,也可按照字节寻址,来读写.
30H-7FH,没有什么特色,只进行字节寻址.
80H-FFH,共有128个地址号码,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写.
(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写).
对上述空间读写,需用MOV指令.
----
片外RAM:
片外RAM的地址范围是0000H到FFFFH,容量即为64KB.
对片外RAM读写,需用MOVX指令.
----
ROM:
ROM的地址范围是0000H到FFFFH,容量即为64KB.
其中0000~0FFFH,即4K,在片内,其它在片外.
(对于8031,这64K的ROM,都在片外.)
对ROM读出,需用MOVC指令.
③ MCS-51单片机的位地址空间是如何分配的
关于51单片机内存问题,一直是个疑惑大家的问题,因为51单片机是个很另类的单片机。
下面我给楼主讲解一下:
51单片机之所以另类,是因为,他寻址内存的空间,不是靠总线,是用指令的方式。
51单片机有以下几个内存模块组成:
ROM或者Flash就不说了。
RAM有------内部RAM的低128位(00-7F)
-------内部RAM的高128位(80-FF)---【89C51单片机没有这一段空间】
-------特殊功能寄存器(SFR)(80-FF)
------外部RAM 64K(0000-FFFF)
楼主又疑惑了,好多地址是重复的,比如,我向80H地址写一个数值,单片机怎么知道读的是内部的高128位RAM?还是SFR?还是外部64K的RAM呢?
答案是用指令,如果是直接寻址,那么访问的就是SFR,如果是R0或者R1间接寻址,就是内部高128位RAM,如果是DPTR或者是R0,R1间接寻址,且配合的是MovX指令,那么就是访问外部64KRAM中的第80H个地址。
对于你内部的128B,可以直接寻址,寄存器寻址、寄存器间接寻址都可
④ MCS-51单片机内部RAM如何分配的
MCS-51单片机内部RAM分配如下:
00H~1FH:为工作寄存器地址,共四组
20H~2FH:为位地址空间,位地址范围为00H~7FH
30H~7FH:为用户使用的RAM空间
80H~FFH:为特殊功能寄存器空间。
⑤ 51单片机工作寄存器组有几个它们的地址是如何分配的如何设置RS1、RS0选择工作寄存器组
4个,称为工作寄存器0区—3区,每个工作寄存器区为8字节(其中每字节分别记作R0-R7),共占用32字节的空间,0区的地址为00H-07H,1区的地址为08H-0FH,2区的地址为10H-17H,3区的地址为18H-1FH, 工作寄存器的选择由程序状态字PSW中RS0、RS1位的值决定,当RS1、RS0为00时选中0区,为01时选中1区,为10时选中2区,为11时选中3区。
⑥ 单片机C语言我声明一个变量,他存放的地址怎么分配
单片机中,可以位寻址的有两个地方,第一是特殊功能寄存器中可以被8整除的寄存器,第二就是20h~2fh这个位址空间。两个地方的位变量申明不一样。
第一个地方的申明是:
sbit
位变量
比如:sbit
pwm=p1^0;
第二个地方的申明是:bit
位变量
比如:
bit
flag;
⑦ mc51单片机中通用的存储器地址两种分配方法
8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序 ,另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:
0003H—000AH 外部中断0中断地址区。
000BH—0012H 定时/计数器0中断地址区。
0013H—001AH 外部中断1中断地址区。
001BH—0022H 定时/计数器1中断地址区。
0023H—002AH 串行中断地址区。
可见以上的40个单元是专门用于存放中断处理程序的地址单元
二、数据存储器
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来命名,我们常称这些寄存器为通用寄存器。
内部RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H—7FH。。
⑧ MCS-51 单片机的存储器地址空间如何划分各地址空间的地址范围和容量如何
MCS-51单片机在物理结构上有四个存储空间:
1、片内程序存储器
2、片外程序存储器
3、片内数据存储器
4、片外数据存储器
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。程序ROM
寻址范围:0000H ~ FFFFH 容量64KB
EA = 1,寻址内部ROM;EA = 0,寻址外部ROM
地址长度:16位
作用: 存放程序及程序运行时所需的常数
数据存储器片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。其中片内数据存储器分为两部分,地址从00H—7FH单元(共128个字节)为用户数据RAM,从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。
⑨ 51单片机寄存器存储器分几个区分区受什么影响
51单片机寄存器存储器分区如下:
1、00H~1FH,该区为工作寄存器区域,分为四组,即:00H--07H,08H--0FH,10H--17H,18H--1FH,由RS1RS0来控制。
2、20H~2FH,该区为位址区域,该区域可以位寻址,位地址为00H~7FH。
3、30H~7FH,该区域为用户自由支配区。
4、80H~FFH,该区域为扩展区,52单片机,该区域用户可以通过间接寻址访问使用。