单片机RAM使用

发布者:sumig最新更新时间:2016-01-20 来源: eefocus关键字:单片机  RAM使用  存储区 手机看文章 扫描二维码
随时随地手机看文章
51单片机存储区分配如下:
存储区 地址范围 功能说明
 
 
 
 
内部RAM
(256Byte)
00H-1FH 内部使用DATA区,四个工作寄存器组(4*8=32Byte),用于内部参数传递
20H-2FH1
 
BDATA区,DATA 区的16 个字节的可位寻址区
30H-7FH2 用户可用非位寻址DATA区,可在一个周期内直接寻址
80H-FFH IDATA区,用户可用的内部RAM 区的高128 个字节,必须采用间接寻址
80H-FFH3 可以进行位寻址的特殊功能寄存器(SFR)
 
外部扩展RAM
(最大64KByte)
00H-FFH PDATA区,外部存储区的256 个字节通过P0 口的地址对其寻址,需要两个指令周期
00H-FFFFH4 XDATA区(外部存储区),使用DPTR 寻址
ROM
(最大64KByte)
00H-FFFFH CODE区(程序存储区),使用DPTR 寻址
 
   对上表的一些说明:
1编程定义为: uchar bdata test;
   所谓的可位寻址,如果你这么用:if(test^0)…else…;我的经验告诉我编译出来的程序会出错的。
我们一般可以这么用:
先做一个位定义:sbit test0 = test^0;
然后再程序中使用:if(test0)…else…;表示判断test的第0bit位的值,然后执行相应程序。其它位的用法类似。
2编程定义为: uchar data test;
   因为data区时直接存取存储,也就是说它在编程的时候最快的RAM区,所以我们往往把使用最频繁或者说对实时性要求高的数据都定义在data区(keil C中是可以设置优先存放RAM区的)。
   Data区包括了4个工作寄存器组(32Byte)、位寻址区(16Byte)、用户data区(80Byte)。其实位寻址区也应该归类到用户可用data区中,所以一般用户可以使用的直接寻址的RAM为96Byte。而实际上,一种比较极端的情况,因为单片机工作时只使用4组工作寄存器组中的一组,我们可编程的data区可以有120Byte(我在keilC下编译测试的结果是,只有在不使用bdata的情况下才可以定义120Byte的data区数据)。
3编程定义为: uchar idata test;
如果你没有完全弄懂一个MPU的SFR,那么只能说你没有弄懂这个MPU了。所以这里不细说单片机的SFR,只提一点,它的地址是和IDATA区重叠的,单片机内部时通过区分所访问的存储区来解决地址重叠问题的,因为IDATA 区只能通过间接寻址来访问。在我们的实时性要求不那么高,或者DATA区不够用的情况下我们就应该启用IDATA区。
4编程定义为:uchar   xdata    LD    _at_   0x7f;
也可以这么使用:(需包含头文件absacc.h)
A = XBYTE[0x8100]; //从地址8100H读一个字节
B = *((char xdata *) 0x0000); // 从地址0000H读一个字节
XBYTE[0x7500] = 0xf0; // 写一个字节到7500H
   P2和P0口为16bit的地址总线接口,P0口为数据总线口,数据和地址时分时传输的。
51单片机的最后一个存储空间为64K, 和CODE 区一样采用16 位寻址,属于外部数据存储区,即XDATA区。这个区通常包括一些RAM器件(如SRAM)或是一些需要通过总线接口的外围器件(特权在以前的BLOG里多次谈过这个扩展RAM的问题,这里也不多涉及了)。对XDATA的读写操作需要至少两个处理周期来装入地址,而读写又需要两个处理周期。
关键字:单片机  RAM使用  存储区 引用地址:单片机RAM使用

上一篇:单片机四键菜单设计思想
下一篇:51单片机的复位电路

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

单片机C语言编程与&或|头文件常见
一、常见问题 1、头文件reg51.h和reg52.h其实是一样的,大家两个都可以用。 2、main()前面的void可加可不加,反正都是无返回值函数。 3、不是每一个程序都要用到死循环while(1),例如点亮一颗LED小灯就不用,只要执行一次就一直是高电平了不用循环。 4、位操作和字节操作都能用来控制I/O口输出电平,位操作需要实现声明sbit,而字节操作则不用。 5、延时程序有两种a:循环延时;b:定时器精确延时 6、如果定义的变量没有置初值,那么默认初值就是零。 7、定义数组时(如:number ={1,2,3,4,5,6, };)则结束时要加分号,每个元素之间用逗号
[单片机]
<font color='red'>单片机</font>C语言编程与&或|头文件常见
STC15W408AS单片机LCD1602-4线接法源程序
#include STC15F-15W.h #include LCD16024L1.h /******** 数据定义 ******/ unsigned char code uctech = { 0123456789ABCDEF }; unsigned char code net = { www.51hei.com }; void main(void) { delay_ms(300); //启动等待,等 LCD 讲入工作状态 LCD_init(); //初始化 delay_ms(5); //延时片刻 (可不要 ) LCD_str(0, 0, uctech); LCD_str(0, 1, net); while(1); }
[单片机]
PIC单片机汇编语言学习(一)
1、汇编语言的语句格式: 标号 操作码(指令助记符) 操作数 ;注释 (label) (opcode) (operand) (comment) 2、常用伪指令 a.EQU——符号名赋值伪指令 格式:符号名 EQU nn b.ORG——程序起始地址定义伪指令 格式:ORG nnnn c.END——程序结束伪指令 格式:END d.LIST——列表选项伪指令 格式:LIST e.INCLUDE:调入外部程序文件伪指令 格式:INCLUDE 文件名 2、分支程序结构 ——对于程序中的指令运用作几点说明: (1)凡是需要2个数参与的逻辑运算(与、或、异或)和算术运算(加、减),都需要事先将其中一个操作数放入W中。对于在此使用的减法指令
[单片机]
PIC<font color='red'>单片机</font>汇编语言学习(一)
用PIC单片机实现LCD在休眠模式下的工作状态
  如果具有一个需严格控制功率的应用,并且它必须持续显示数据,则可以将LCD PlC单片机置于休眠模式,而LCD驱动器模块继续驱动显示器。   要使LCD在休眠模式下继续工作,只需两个步骤。首先,必须选择除主振荡器之外的时钟源作为LCD时钟源,因为在休眠期间,主振荡器会暂停。   下表显示了各种LCD PlC MCU的选项。   其次、休眠使能位(SLPEN)必须清零。这样,在器件处于休眠模式时,LCD将继续显示数据。就这么简单!何时应选择内部RC振荡器(或LFINTOSC),而不是Timerl振荡器?这取决于您的应用是否需要严格控制时间,对于时间敏感度足够高的应用,通常需要Timerl振荡器连接高精度晶振。如果要设计一个计时应用
[单片机]
用PIC<font color='red'>单片机</font>实现LCD在休眠模式下的工作状态
8位MCU,为什么还没被淘汰?
MCU(单片机)按照位数主要划分为4位、8位、16位、32位及64位,位数越多,数据处理能力越来越强,应用场景变得更加复杂。观察整个应用市场,8位和32位是两大主流,16位则处于二者之间,目前只有部分经典产品拥有存量空间。 8位MCU至今已经应用了几十年,一直是无数嵌入式应用的主力,尤其是消费产品和医疗器械中的应用。2012年飞思卡尔推出号称“8位MCU终结者“Kinetis L系列,近十年也陆续有业内专家宣称“8位MCU已死”。 虽然32位的MCU越做越强,也越做越便宜,但整个市场对于8位市场的应用量从来没有放缓的迹象。为什么直到现在,8位MCU仍未被淘汰,这其中有哪些逻辑,未来又会怎样发展? 付斌丨作者 电子工程
[半导体设计/制造]
8位<font color='red'>MCU</font>,为什么还没被淘汰?
STM32F3 MCU最小BOM表及元器件参数选型
STM32F3xx系列是高集成和易于开发的32位MCU,具有实时功能、数字信号处理、低功耗与低电压操作特性,可广泛用于消费、医疗、便携式健身、系统监控与测量的实际应用。 STM32F3xx系列整合了带有DSP与FPU指令、工作频率为72MHz的32位ARM Cortex-M4内核、高级模拟外设以及嵌入式Flash和SRAM存储器。由于集成了高效的电源结构和多种功耗模式,STM32F3xx降低了应用级功耗并简化了应用设计。 1. 电源方案 STM32F3xxxx器件集实时功能、数字信号处理和低电压操作、高度集成的模拟外设于一身,具有优化的电源结构和多种供电方案。 图1. STM32F3xxxx器件供电方案 •
[单片机]
STM32F3 <font color='red'>MCU</font>最小BOM表及元器件参数选型
基于AVR单片机的电动代步车控制器
本世纪将是一个人口老龄化程度越来越高的世纪,老年人和残疾人的护理将是社会的一个沉重负担。据老龄委统计结果显示,2004年底,中国60岁及以上老年人口为1.43亿,2014年将达到2亿,2026年将达到3亿,老龄人口的规模将越来越大。同时在我国人口中有8 296万残疾人,占全国总人口的比例为6.34%,其中肢体残疾人数2 412万,占29.07%。老年人和残疾人这个庞大的弱势群体需要一种适合他们心理和生理的代步车来满足日常生活及参与社会活动的需要。 随着科学技术的迅速发展和人民的生活水平的不断提高,手动轮椅逐渐被性能优越、操作简单、行驶安全的电动代步车所替代。电动代步车的出现除了能满足老年人或残疾人室内外活动的要求之外,还在医
[单片机]
基于AVR<font color='red'>单片机</font>的电动代步车控制器
基于C8051F350单片机的气体流量计检测仪硬件设计
气体流量计是较为常用的仪表设备。钟罩式气体流量标准装置是以空气作为介质,对气体流量计进行检定、校准和检测的计量标准装置。主要适用于速度式、容积式和差压式等气体流量计的检定、校准和型式评价工作,也可用于气体流量测量的研究工作。本文基于C8051F350单片机,改造现有的钟罩装置,设计一种气体流量计检测仪。 气体流量计检定技术概述 目前,气体流量计的检定方法广义上可分为直接测量和间接测量两种。 直接测量法的是用实际流体进行计量检定,其具体定义为用标准装置(标准流量计或计量器具)与被测流量计串联,通过比较两者测得流体的累积流量值,得出被测流量计测量误差的方法。实流检测法具有检定环境与工况环境一致、流量值准确可靠和真实反映被测流量计计
[单片机]
基于C8051F350<font color='red'>单片机</font>的气体流量计检测仪硬件设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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