历史上的今天

今天是:2026年03月21日(星期六)

正在发生

2023年03月21日 | 单片机C51存储器类型及存储模式

发布者:心有所属 来源: elecfans关键字:单片机  C51  存储器类型  存储模式 手机看文章 扫描二维码
随时随地手机看文章

  单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。如今运用最为广泛的就是C51单片机,其中典型的有80C51和89c51单片机。今天主要以C51单片机存储器类型及存储模式为中心而展开的话题。

  1、80C51存储器的结构

  程序存储器寻址范围为64KB(用PC或DPTR),片内数据存储器寻址范围为256B,80H-FFH只能间接寻址,片外数据存储器寻址范围为64KB(DPTR、P2、@Ri)


  图1 80C51程序存储器系统结构
单片机C51存储器类型及存储模式

  图2 80C51数据存储器系统结构
单片机C51存储器类型及存储模式

  2、程序存储器及其操作

  程序存储器用来存放应用程序和表格常数,设计中应用根据要求选择容量,其最大容量为64KB。单片机复位时,PC指针从0000H地址开始执行,应用程序的第一条指令的入口必须是0000H。程序存储器中有一些固定的中断入口地址,这些入口地址不得安放其他程序,而应安放中断服务程序,这些入口地址如表2.3所列。

  表1 程序存储器的固定中断入口地址

单片机C51存储器类型及存储模式

  程序存储器的操作有:

  (1)程序指令的自主操作:按PC指针顺序操作。

  (2)表哥常数的查表操作:用MOVC指令。

  3、数据存储器及其操作

  3.1片内数据存储器的结构

  数据存储器的结构如图所示。

单片机C51存储器类型及存储模式

  3.2片内数据存储器的应用特性

  (1)复用特性:除工作寄存器、位寻址单元有固定空间外,其余没有使用的都可作数据缓冲区。

  (2)复位特性:复位时SP=07H、PSW=00H,故栈底在07H,工作寄存器为0组。

  (2)活动推栈:程序运行中,SP可随意设置。

  3.3片内数据存储器的操作

  (1)直接寻址操作,如:

  MOV 30H, #50H; 30H-#50H

  (2)间接寻址操作,如:

  MOV R0, #30H; 30H赋给R0

  MOV A, @R0; A-((R0))

  (3)位地址空间操作,如:

  SETB 00H; 20H的D0位置1

  (4)工作寄存器的选择操作,如:

  MOV PSW, #18H; RS1、RS0置成11

  (5)堆栈操作,如:

  MOV SP, #70H; 栈底设在70H

  3.4片外数据存储器的操作

  使用MOVX命令,只能与A交换数据。

  (1)读入数据

  MOVX A, @TPDR

  或

  MOVX A, @Ri

  (2)写入数据

  MOVX @TPTR, A

  或

  MOVX @Ri, A

  例如:将片外567FH单元的数写入累加器A中,用TPDR指针操作为:

  MOV DPTR, #567FH

  MOVX A, @DPTR

  用R0间接寻址操作为:

  MOV R0, #7FH

  MOV P2, #56H

  MOVX A, @R0

  4.C51存储类型《?XML:NAMESPACE PREFIX = O /》

  对于在片外扩充的接口,可以根据硬件形成的地址,用#define语句进行定义,例如:

  #define unsigned char xdata adAddr_at_0x2000;/*定义了片外接口地址为2000H*/

  C51编译器支持80C51及其派生系列的体系结构,并提供对80C51所有存储区的访问。每个变量可以用表1中所列的存储器类型明确地分配到指定的存储空间。

单片机C51存储器类型及存储模式

  表1 C51存储类型与80C51存储空间的关系

  对内部数据存储器的访问比对外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内部数据存储器,而把较少使用的变量放在外部数据存储器中。

  下面用实例说明各种存储器变量的声明。

  (1)程序存储器变量:程序存储器的数据不能修改,通常将跳转向量或表格存放在该区,存储器类型标识符为code。

  例如:unsigned char code text[] = “ENTER PARAMETER”;

  (2)直接寻址内部数据存储器变量:可在一个机器周期直接寻址,因此将常用的变量放在data区。存储器类型标识符为data。

  例如:unsigned char data flag; /*声明一个内部直接寻址的无符号字节变量*/

  (3)间接寻址内部数据存储器变量:用8位寄存器作为指针寻址内部存储器。存储器类型标识符为idata。

  例如:unsigned char idata buffer[8]; /*声明一个内部间接寻址的无符号字节数组*/

  (4)位寻址内部数据存储器变量:是内部数据存储器的位寻址区,位变量对需要位操作的数据十分有用,其存储器类型标识符为bdata。

  注意:位寻址变量应声明为全局变量,否则编译将出错。

  例如:unsigned char bdata bStatue; /*定义可位寻址的位变量,在片内RAM中*/

  sbit statue_0 = bStatue^0; /*定义位变量bStatue的第三位的符号地址*/

  bit数据类型可以用来访问用bdata存储器类型标识声明的变量的位。

  外部数据存储器的声明与前面例子相似,这里不再说明。

  如果变量声明中遗漏存储器类型标识符,则自动选择默认的存储器类型。默认的存储器类型应用到所有全局变量、静态变量、函数自变量和不能分配寄存器的自动变量。默认的存储器类型取决于编译时的存储器模式。这都是不同于一般C语言的地方。

  5.C51的存储器模式

  存储器模式确定了用于函数自变量、自动变量和无明确存储类型变量的默认存储器类型。可用编译器控制指令Small,Compact和Large指定编译时的存储器模式。用存储器类型标识符明确声明一个变量,优先于默认存储器类型。

  (1)Small模式

  所有变量默认位于80C51内部数据存储器,这和使用data存储器类型标识符明确声明是相同的。该模式变量访问非常有效,但所有数据对象和堆栈必须适合内部RAM。因为使用的堆栈空间决定于不同函数嵌套的深度,故对堆栈的尺寸要求严格。

  (2)Compact模式

  所有变量默认位于外部数据存储器的一页(256B)内,这和使用pdata存储器类型标识符明确声明是相同的。地址高字节通常设置P2,编译器无法设置这个端口,故必须在启动代码中手工设置。该模式能容纳最多256B的变量,这个限制是用R0、R1间接寻址造成的。该模式的效率不如Small模式的效率,变量访问速度不如Small模式的快,但比Large模式快。

  (3)Large模式

  所有变量默认位于外部数据存储器,这和使用xdata存储器类型标识符明确声明是相同的。寻址使用数据指针(DPRT),变量访问效率低,特别是对多字节变量,该模式的数据访问比Small模式和Compact模式生成的代码多。

  一般经常使用Small模式,它可生成最快、最紧凑和最有效的代码。通常可以明确指定变量的存储位置。仅当使用Small模式时不适合应用或操作才上升到Compact模式和Large模式。


关键字:单片机  C51  存储器类型  存储模式 引用地址:单片机C51存储器类型及存储模式

上一篇:P89C51RD2的Boot ROM固件代码的读出方法和ISP功能分析
下一篇:采用AT89C2051和AT89S52单片机实现红外遥控电子密码锁的设计

推荐阅读

本文研究的GPS自动校时塔钟控制系统是以STC89C51单片机为控制器,由GPS接收器、伺服电机、LED显示、语音报时等部分组成,具有自动校时、显示、报时等功能。通过GPS15XL-W接收芯片捕捉来自卫星的准确时间信息,以此为时钟源。利用单片机对接收到的时间信息进行提取和处理,并完成对单片机走时的校正。系统由单片机走时构成母钟,单片机向伺服电机发送...
下周二就是华为P30系列的巴黎全球发布会,意大利亚马逊悄然上架了P30 Pro 128GB版,含税价1024欧元,暗示零售价可能是999欧元(约合7595元)。  页面公布的P30 Pro外形包括正面双曲面玻璃、珍珠异形屏、后置四摄,拥有全新的暮光红配色。  同时,一批保护壳照片也确认了上述设计语言。  当然,对于P30 Pro来说,其拍照表现似乎更引...
(文章来源:仙知机器人) 伴随工业自动化、智能化发展,移动机器人在制造业领域应用已经较为普遍,并向其它行业逐渐延伸。近年来,随着智能制造、精益生产及柔性化生产需求日益提升,对移动机器人技术要求也在不断攀升。目前市场上常见的移动机器人导航方式有磁条导航、二维码导航、反光板导航和激光自然轮廓导航几种形式,但是单一依靠一个或两个来进...
据外媒报道,美国商务部已开始对希捷(Seagate)展开调查,原因是该公司涉嫌非法向华为出售硬盘。去年,美国政府进一步收紧对华为获取美国技术的限制,要求所有使用了美国软件、技术或设备生产芯片的厂商,在出货给华为前都必须获得美国政府的许可证。据悉,在这项规定下,希捷向华为出口的硬盘中含有相关受到出口管制的芯片。据了解,西部数据和希捷是全球...

史海拾趣

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

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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