关于51单片机中的RAM、SFR和位地址的问题

发布者:知音学友最新更新时间:2018-05-08 来源: eefocus关键字:51单片机  RAM  SFR  位地址 手机看文章 扫描二维码
随时随地手机看文章

51单片机中_有_4EH这个位地址。
51单片机片内RAM的20H~2FH,这十六字节,可以按照“位”来寻址。
这里面共有128个“位地址”,分别为00H~7FH。

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

后记:做而论道搜集了51单片机中片内RAM的使用规范,整理如下。

MCS-51系列单片机片内RAM共有128字节,地址范围为00H~7FH。
在这128字节中,全部都可以按照字节地址进行操作(读、写或运算),直接或间接寻址方式皆可。
在这128字节中,按照使用特点,可以分成三类:工作寄存器区、位寻址区和通用数据区。
片内RAM的使用分类可见表1。

关于51单片机中的RAM、SFR和位地址的问题 - 非著名博主 - 电子信息角落

下面按照它们的功能特点,分别加以介绍。
1.工作寄存器区
在MCS-51系列单片机的片内RAM中,有四个工作寄存器区,分别称为工作寄存器区0~工作寄存器区3。
每区有八个字节,除了可以用字节地址号码操作之外,还可以用R0、R1…R7为名称对其操作。用名称进行操作,称为寄存器寻址,指令代码较为简短。
其中R0、R1可以作为间接寻址寄存器,以其中内容作为地址,能够对片内RAM(或片外RAM的256字节)进行间接寻址。
在任何时刻,只能使用一个工作寄存器区。当前使用那个区,可以通过指令设置PSW中的RS1和RS0来决定。PSW称为程序状态字,是下面要介绍的特殊功能寄存器。
通过设置RS1和RS0,可以快速切换当前工作寄存器区,适合在不同的程序段中进行保护现场。当前没有使用的工作寄存器区,不能使用R0、R1…R7等名称,但可以按字节地址对其随意读写。
复位时RS1和RS0皆初始化为0,故此复位后将自动使用工作寄存器区0。

2.位寻址区
位寻址区共有16字节,字节地址为20H~2FH,每个字节中的8个“位”,都有一个“位地址”。共有128个位,“位地址”的范围为00H~7FH。
这个区域中的“字节地址”与“位地址”的对应关系可见表2。

关于51单片机中的RAM、SFR和位地址的问题 - 非著名博主 - 电子信息角落

从表2中可以看到,前面问题所提到的“位地址4EH”,是在“字节地址29H”中,是第6位。
对位寻址区可以按照“位地址”来对某一个位单独进行操作,也可以按照“字节地址”进行操作,即同时对八个位地址的内容进行操作。
MCS-51系列单片机具有一套专用的“位操作”指令(又称为布尔指令),可对这些位地址进行“与”、“或”、“非”等操作。这是该系列单片机的特色之一。

3.通用数据区
通用数据区有80字节,只能按“字节地址”(直接或间接寻址)进行操作。

上面介绍了00H~7FH地址范围内的RAM,下面接着这个地址,继续向高地址方向介绍。

在片内80H~FFH地址范围内,离散的分布着21个特殊功能寄存器(SFR),寄存器名称与地址分布见表3。
8052系列单片机,在80H~FFH范围内,还有128字节的片内通用RAM,对其操作时,则必须采用“间址”寻址方式。
而对这片地址范围内的特殊功能寄存器只能采用“直接”寻址方式进行操作。

关于51单片机中的RAM、SFR和位地址的问题 - 非著名博主 - 电子信息角落

特殊功能寄存器中有11个还可以进行“位寻址”,表3中也列出了可以位寻址的寄存器以及位地址号码。
在表3中,如果位地址为空白,则说明该寄存器不能进行“位寻址”。
由表3可以看出规律:当字节地址可以被8整除时,该字节即可以按位寻址。其最低位的“位地址”与“字节地址”相同,其他位的位地址向高位依次加1。
================================================


关键字:51单片机  RAM  SFR  位地址 引用地址:关于51单片机中的RAM、SFR和位地址的问题

上一篇:单片机C语言编程:按键、计数及显示
下一篇: 4×4 矩阵式键盘电路的改进

推荐阅读最新更新时间:2024-03-16 16:02

STC12C5A60S2系列双串口1T 8051单片机头文件
//-------------------------------------------------------------------------------- //新一代 1T 8051系列 单片机内核特殊功能寄存器 C51 Core SFRs // 7 6 5 4 3 2 1 0 Reset Value sfr ACC = 0xE0; //Accumulator 0000,0000 sfr B = 0xF0; //B Register
[单片机]
51单片机-数码管小数点
1.显示小数点 我们可能忽略了数码管上还有一段发光二极管,这个在它的右下角,平时我们点亮这个小点是用来表示数字的小数点。要想让这个小数点即使显示的数字一直变但它还是保持常亮状态有什么办法吗。 我们不可能为每一个数字再弄一个带小数点的真值表数组,这样太麻烦了,熟悉C语言知识的话,我们用另一种方法。 大家要明白这个知识点:(0x7F)&(0xC0)=0x40 用二进制表示 0111 1111 & 1100 0000 = 0100 0000 01000000(0x40)就是使数码管显示0的同时还显示小数点了 所以不管是0xC0还是要显示其他数字,我们只要“0x7F & LedBuff ”就能保持住
[单片机]
<font color='red'>51单片机</font>-数码管小数点
经济衰退:内存厂商奇梦达开始进行破产清算
据国外媒体周三报道,拍卖商GoIndustry DoveBid集团已开始在网站上对奇梦达最后一家工厂的设备进行拍卖。 今年1月,奇梦达成为全球经济衰退中第一家申请破产保护的大型芯片厂商。从两年前开始,DRAM厂商遭遇了全球性的芯片供应过剩问题,导致芯片价格远低于生产成本。而经济衰退对DRAM厂商的业务造成进一步影响,同时也使这些公司更难获得贷款。    根据GoIndustry DoveBid集团网站的信息,对奇梦达两部分主要设备的在线拍卖将持续到9月21日。这一拍卖是应奇梦达德累斯顿股份有限公司无力清偿管理人迈克尔·贾菲(Michael Jaffe)的请求进行的。    奇梦达和贾菲均未对这一资产拍卖置评。奇梦
[半导体设计/制造]
C51单片机学习——8×8LED点阵屏学习笔记
1.8×8LED点阵屏电路图 8×8LED点阵屏由8行8列共64个LED灯组成。 通过控制其中部分LED灯亮可以组成图形或者数字,和数码管类似。 点阵分为共阳极和共阴极,行控制线接的LED阳极的点阵称为共阳极点阵,行控制线接的LED阴极的点阵称为共阴极点阵。 如何点亮LED灯:正极给高电平,负极给低电平 2.74HC595芯片 芯片查询链接 管脚说明: 3.点阵模块电路图 4.开发板1602液晶接口电路原理图 5.实践编程 ①显示一个点 参考程序: #include sbit DIO = P3^4; sbit SCK = P3^5; sbit RCK = P3^6; void mian()
[单片机]
C<font color='red'>51单片机</font>学习——8×8LED点阵屏学习笔记
STC51单片机流水灯+外部中断蜂鸣器
闲暇之余做了一个简单的流水灯,设计思路先将LED灯从0-7逐个显示,然后再从7-0逐个显示。如果产生外部中断(即按钮按下),则8个LED灯全亮,之后又恢复流水灯状态。 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit K=P3^2;//启动按钮,外部中断 uchar led; void delay(uint x) { while(x--); } void XX()//中断设置 { EA=1; EX0=1; } void DD
[单片机]
尽管M1 iPad Pro配置强劲:但RAM使用量被限制在5GB内
尽管苹果提供了 8GB 和 16GB RAM 的 M1 iPad Pro 配置,但开发者现在表示,无论应用运行在什么配置上,RAM 使用量都被限制在 5GB 以内。 ‌M1 ‌‌iPad Pro ‌有两种 RAM 配置:128GB、256GB 和 512GB 型号的 RAM 为 8 GB,而 1TB 和 2TB 型号的 RAM 为 16GB,是 iPad 有史以来最高的配置。尽管 iPad 上的 RAM 数量空前庞大,但据报道,开发者实际使用的内存量受到严重限制。 图形和设计应用 ArtStudio Pro 的开发者在 ProCreate 论坛上透露,在新的 ‌M1 ‌‌iPad ‌Pro 上,应用只能使用 5GB 的 R
[手机便携]
基于双口RAM的LonWorks智能通信节点设计
介绍一种基于双口RAM的LonWorks现场总线智能通信节点的设计方法,并给出详细的设计步骤、硬件及软件实现。通过此LonWorks智能通信节点,能够完成RS-232-C/RS-485标准与LonTalk协议间的转换提供RS-232-C/RS-485网络到LonWorks网络的接口,因此,具有很高的应用价值。 引言 LonWorks(Local Operating Networks,局部操作网络)总线是由美国Echelon公司推出的一种现场总线技术。由于LonWorks控制网络的开放性、高速性和互操作性,它已广泛用于工业、楼宇、家庭、办公设备、交通运输、能源等自动化领域。EIA RS-232-C/RS-485通信网络在控制
[网络通信]
一文详解80C51单片机的指令系统
指令是指示计算机执行某种操作的命令,计算机能识别执行的只能是二进制代码,以二进制代码来描述指令功能的语言,称为机器语言。 由于机器语言不便于人们识别,记忆,理解和使用,因此便对每条机器语言指令用助记符号来形象表示,这就便形成了汇编语言。 一条指令是机器语言的一个语句,包括操作码字段和操作数字段。一台计算机所具有的全部指令的集合,称为这台计算机的指令系统。 不同的微处理器,其指令系统一般是不同的。 80C51单片机指令系统共有111条指令,具体特点如下: 1)执行时间短,单机器周期指令(64条),双机器周期指令(45条),而四机器周期指令只有2条; 2)指令编码字节少,单字节指令(49条),双字节指令(45条)和最长的三字节
[单片机]
一文详解80C<font color='red'>51单片机</font>的指令系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
    做任何事情之前,一定要想好目标。没有目标的事情是做不好的,也做不成。我的目标就是学习ARM开发,当然是深入的学习。目标如下 :1、学习A ...
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
  • 学习ARM开发(7)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved