单片机内部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存储器结构
参考资料来源:百度百科--单片机存储器
单片机从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的一个重要特点。
本回答被网友采纳一个十进制数若恰好可以整除16转换成16进制数,我要怎样处理余数问题,难道余数0也计数吗?
你能自己解答吗?我看过你复制粘贴的答案了。
追答对不起,帮不上你了。
本回答被网友采纳每个字节有八个位,也就有八个位地址。
它们可以写成:位地址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 中的位地址,与其所在的字节地址,关系十分简单,不需要计算。
-----------------------
其实,它们的关系,并不需要计算。
你算出来,也没有用。 因为,位地址,只能直接寻址。
一般来说,只有那些喜欢捉弄学生的老师,才会要求你算这些。