51单片机RAM数据存储器学习笔记

发布者:omicron25最新更新时间:2021-01-18 来源: eepw关键字:51单片机  RAM  数据存储器 手机看文章 扫描二维码
随时随地手机看文章

1.RAM keil C语言编程


RAM是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small模式,如果总的变量大小未超过128B,则未初始化的变量的初值默认为0.如果所有的变量超过单片机small模式下的128B大小,则必须对变量进行初始化,否则超过RAM大小变量的值是不确定的,在small模式下超过128B大小的变量也必须在编译器中重新设定存储器的存储模式。


在keil中,可选择small,compact,large三种方式存储数据变量:

在keil中可以用“Target Options”来配置这一项:

2.片内数据存储区


(1) 工作寄存器


工作寄存器区位于片内数据存储器中的00H~1FH单元,共32字节( 如此说来每个单元是一个字节了 ),分成四组。每组8个字节,分别记为R0~R7.

程序默认在0区工作寄存器组存放中间运算数据。等待中断来时,中断数据工作寄存器组由0区切换到其它区域。


选择四组工作寄存器区的哪一组作为R0~R7由位于PSW寄存器的两位RS1,RS0来确定.


RS1,RS0称为区开关或组开关,两位就可决定四种状态.


2)位寻址区


用户存储区位于片内数据存储器中的020H~02FH单元,共16个字节,共128位,每个字节单元的位都有一个单独的地址,分别为00H-07H,如020H.1表示020H单元的bit[1]位。020H~02FH单元可作为位寻址区。这个范围内的存储单元最大的用处就是能进行位操作,在C语言中,只能用位操作运算符(&、|、^、~、<<、>>)来对字节数据进行位操作运算。如果用汇编指令就可以直接对此片存储单片进行位操作。


如 SETB, 020H.1 就将020H的bit[1]置为了1.


除了RAM此片能进行位寻址的用户存储区以外,还有一些特殊的功能寄存器( SFR )也能进行位寻址。


(3)数据缓冲区


51系列数据缓冲区地址为30H-7FH,共80字节。只能字节寻址,不能位寻址。由于工作寄存器和位寻址区,数据缓冲区是统一编址的,所以这三者都可以用作数据缓冲区。


(4)堆,栈


栈:由系统自动分配释放,存局部值。


堆:一般由程序员分配和释放(在C中用malloc/free操作)。


栈指针SP:8位寄存器,栈最大可达128单元,只可在片内RAM中进行栈操作。


栈作用:用来保存地址、数据信息、具有先进后出特性,也是一种能存放二进制数据的空间。


MC51栈采用满顶法向上生成的软件堆栈。


软件栈:借助SP进行控制操作。


栈向上生长:新压栈的数据成为栈顶。


栈向下生长:新压入的数据远离栈顶。


地址大小还得看存储方式。


(5)专用寄存器区


专用寄存器区,也称特殊功能寄存器区 SFR


SPECIAL FUNCTIONREGISTER


寻址地址离散地分布在80H~FFH,共128字节的空间.而实际有用的只有21个字节,即在这一空间里只有18个专用功能寄存器,其中有3个专用功能寄存器占用了两个字节.SFR主要用于片内硬件的管理,通常只能以字节为单位借助于MOV指令直接寻址,但也有一些专用功能寄存器可以位寻址。


包含程序状态字PSW、数据指针寄存器DPTR、端口地址P0-P0、其它专用寄存器(累加器A、B)


3.片外数据存储区


片外RAM区:可寻空间为共64K 0000H~FFFFH,


总是使用MOVX类指令寻址


借助于工作寄存器R0或R1间接寻址时,可寻256字节


从片外RAM区取数据: MOVX A,@Ri i=0-1


向片外RAM区存数据: MOVX @Ri,A


借助16位的数据指针DPTR间接寻址,可寻64K字节:


从片外RAM区取数据: MOVX A,@DPTR


向片外RAM区存数据: MOVX @DPTR,A


<此段摘抄,防后会使用>


区分是访问内部存储器还是外部存储器地址靠指令来区分。


这里,片内的存储区即常念叨的“寄存器”,片外的ram存储区即指“系统内存”。


关键字:51单片机  RAM  数据存储器 引用地址:51单片机RAM数据存储器学习笔记

上一篇:简易数字存储示波器的设计
下一篇:8051单片机教程第二十一课:串行接口

推荐阅读最新更新时间:2024-10-29 17:54

51单片机C语言程序(一)发光二极管
程序(一)点亮第一个发光二极管 #include reg52.h void main() { P1=0xfe; while(1); } 程序(二)让第一个发光二极管闪烁 #include reg52.h sbit led1=P1^0; void main() { unsigned int i; while(1) { i=50000; led1=0; while(i--); i=50000; led1=1; while(i--); } } 程序(三) //第一个发光二极管以间隔2000ms闪烁 #include reg52.h #define uint unsigned int #de
[单片机]
51单片机数据存储类型
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型。分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。 在51系列中data,idata,xdata,pdata的区别: data:固定指前面0x00-0x7f的128个RAM,可以用acc直接
[单片机]
51单片机程序技巧
本系列文章探讨的主题都是在Keil uVision3集成编译环境下完成的,针对的是51系列单片机。 下面就介绍一下在我的单片机程序里必须要包含的一个头文件---- const.h ,完整内容如下: #ifndef _CONST_H_ #define _CONST_H_ #include intrins.h #define TRUE 1 #define FALSE 0 typedef unsigned char BYTE; typedef unsigned int WORD; typedef unsigned long DWORD; typedef float FLOAT; typedef char CHAR; typed
[单片机]
MCS-51单片机与无线调制器的应用简介
   GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和
[单片机]
MCS-<font color='red'>51单片机</font>与无线调制器的应用简介
美光推出全新 Crucial 英睿达 DDR5 内存
美光推出全新 Crucial 英睿达 DDR5 内存,为消费者提供下一代台式电脑所需的高速度和海量带宽 与 DDR4 内存相比,Crucial 英睿达 DDR5 内存的数据传输速度提高 50%,达到 4800MT/s,开箱即用的有效带宽几乎翻倍 关键优势: • 兼容第 12 代英特尔®酷睿™ 处理器,可 支持 DDR5 和 DDR5 兼容主板 • 基于 16Gb 芯片密度,启动速度达 4800MT/s,可提供 8GB、16GB 和 32GB 密度版本 • 数据速率超过 DDR4的 2 倍,能为多核 CPU 提供有效处理多任务所需的数据 • 模块密度比 DDR4 翻两番,芯片密度从 16Gb 提升到
[家用电子]
51单片机通过WIFI模块ESP8266控制四路继电器
一、系统方案 手机APP通过ESP8266 WIFI模块与51单片机通信控制四路继电器。下位机由单片机、ESP8266模块和继电器模块组成,上位机由Android手机APP承担。我们在APP上发送继电器的开关控制指令,ESP8266将收到的数据发送给单片机,从而实现对继电器进行开关控制。 二、硬件设计 ESP8266模块作为一个透传模块使用,RXD、TXD分别连接51单片机的TXD和RXD,VCC和EN管脚接3.3V电压,GND接地,只需要连接这些管脚,ESP8266模块就可以正常工作了。 单片机的P2^0,P2^1,P2^2,P2^3输出高低电瓶控制四路继电器,继电器模块是从网上购买的已经焊接好的模块,其他地方为手工万用
[单片机]
<font color='red'>51单片机</font>通过WIFI模块ESP8266控制四路继电器
几种常用51单片机的I/O口驱动能力分析
在 控制 系统中,经常用 单片机 的I/O口 驱动 其他 电路 。几种常用 单片机 I/O口 驱动 能力在相关的资料中的说法是:GMS97C2051、AT89C2051的P1、P3的口线分别具有 10mA、20mA的输出驱动能力,AT89C51的P0、P1、P2、P3的口线具有10mA的输出驱动能力。在实际应用中,仅有这些资料是远远不够的。笔者通过实验测出了上述几种单片机的I/O口线的伏安特性(图1、图2),从中可以得到这些I/O口的实际驱动能力。 说明:1、测试方法:所测试的口线输出的信号是周期为4秒的方波。当测试口线为低电平时的驱动能力时,该口线通过 电阻 箱接+5V 电源 ,测出该口线对地的电压,从而计算出通过 电阻 的
[模拟电子]
MCS-51单片机与无线调制器的综合应用
GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和方法。
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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