内部RAM中 位所在字节的字节地址的计算

如题所述

单片机内部RAM中低128字节的20H~2FH共16个字节可以用位寻址方式访问其各位。共128个位地址为00H~7FH。假设位地址为48H,那么单元地址=48H/8+20H=29H。特殊功能寄存区中有的可以位寻址,用查表法,就可以得到,例如90H,查表得到,对应的字节地址为90H。

低128字节中的00H~1FH共32个单元通常作为工作寄存器区;30H~37H共80个单元为用户RAM去,作堆栈或数据缓冲;80H~7FH单元组成高128字节的专用寄存器区,也就是特殊功能寄存区。它们零散地分布在其中,并没有占满所有地址空间,对空闲地址的操作是无意义的。

扩展资料

MCS-51单片机存储器结构介绍:

MCS-51单片机存储器采用哈佛结构(har-vard),在物理结构上分为程序存储器空间和数据存储器空间,细分为:片内、片外程序存储器和片内、片外数据存储器。

这4个存储空间存在地址冲突问题:数据存储器与程序存储器的64KB地址空间重叠;程序存储器中片内与片外的低4KB地址重叠;数据存储器中片内与片外最低的256B(8031仅有低128B)地址重叠。

在程序存储器中,片内地址某些单元存储空间,留给系统使用。片内数据存储器共256B地址空间,分为低128B和高128B。

低128B又分为工作寄存器区、位寻址区和用户RAM区;高128B又叫特殊功能寄存器,这些寄存器的功能具有专门的规定,用户不能修改其结构。存储器中共有11个可位寻址的位地址。其中,片内数据存储器中有128个;特殊功能寄存器中有83个。

参考资料来源:《单片机原理及应用》 曹巧媛 编著 电子工业出版社  第二章 MCS-51单片机结构及原理   第二节 MCS-51存储器结构

参考资料来源:百度百科--单片机存储器

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-27

单片机从20H到2FH的16个字节单元,共128位可以按位寻址,对应位寻址空间00H到7FH,所以位地址为40H的单元地址为40H/8+20H=28H。

另外特殊功能寄存器中,有16个可以位寻址,查一下表格就行了88H对应的字节地址也为88H。同理2AH-20H=0AH,0AH*8=50H。

单片机片内RAM的20H~2FH,这十六字节,可以按照“位”来寻址。

这里面共有128个“位地址”,分别为00H~7FH。

例如位地址4EH,是在“字节地址为29H的字节单元”中的第6位。 

扩展资料

单片机的RAM存储器详解

8051共有4组寄存器,每组8个寄存单元(各为8),各组都以R0~R7作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。

4组通用寄存器占据内部RAM的00H~1FH单元地址。在任一时刻,CPU 只能使用其中的一-组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一-组,由程序状态字寄存器PSW中RS1、RSO位的状态组合来决定。

位寻址区:

内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。

位寻址区共有16个RAM单元,计128位,地址为00H~7FH。MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能力是MCS-51的一个重要特点。

本回答被网友采纳
第2个回答  推荐于2016-04-23
  1.单片机从20H到2FH的16个字节单元,共128位可以按位寻址,对应位寻址空间00H到7FH,所以位地址为40H的单元地址为40H/8+20H=28H;
  另外特殊功能寄存器中,有16个可以位寻址,查一下表格就行了88H对应的字节地址也为88H
  2.同理2AH-20H=0AH,0AH*8=50H
  88H查表,对应的为88H
  特殊功能寄存器的位寻址有规律可循,需要记忆追问

一个十进制数若恰好可以整除16转换成16进制数,我要怎样处理余数问题,难道余数0也计数吗?

你能自己解答吗?我看过你复制粘贴的答案了。

追答

对不起,帮不上你了。

本回答被网友采纳
第3个回答  2023-02-12

每个字节有八个位,也就有八个位地址。

它们可以写成:位地址0、位地址1、。。。位地址7。

-----------------------

位寻址区中的位地址,与其所在的字节地址的关系式如下:

  位地址0 =(字节地址-20H )× 8 + 0;

  位地址1 =(字节地址-20H )× 8 + 1;

   。。。

  位地址7 =(字节地址-20H )× 8 + 7。

-----------------------

反过来算呢?

  先把位地址除以 8,保留整数。

  再加上 20H,即为“位所在字节的字节地址”。

  如:位地址为 47H,除以 8,整数是 8。字节地址就是 28H。

    位地址是 48H,除以 8,整数是 9。字节地址就是 29H。

-----------------------

SFR 中的位地址,与其所在的字节地址,关系十分简单,不需要计算。

-----------------------

其实,它们的关系,并不需要计算。

你算出来,也没有用。 因为,位地址,只能直接寻址。

一般来说,只有那些喜欢捉弄学生的老师,才会要求你算这些。


第4个回答  2019-06-24
你自己就不能算一下?找找规律?又不是很难 16进制的逢16进1 (30H→3*16对应了48位地址→48/8+20→所以在26H字节地址内////////那么同理 35H对应了多少位地址???3*16+5=53 →53/8用c语言算出来还是6→+20H还是在26H内 你要求余数就用%楼上说的一点也没问题 就算不用C来说 为什么要除8呢→8位一个字节→除了首位被8整除的里面有7位都有余数都在26H里面啊,所以你管余数干嘛 )
相似回答