找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9891|回复: 2
收起左侧

C51单片机是怎么存储程序和数据的

[复制链接]
ID:342442 发表于 2018-10-13 08:24 | 显示全部楼层 |阅读模式
初学51单片机总是会有这样的疑问,从电脑下载程序到开发板后,程序去哪了? C51中,用户或应用程序,系统程序和数据都是存放在哪的?

51 单片机从物理结构上,可分为片内,片外程序存储器,片内片外数据存储器。

51 单片机从功能上,有程序存储器,片内数据存储器,特殊功能寄存器,位地 址空间,片外数据存储器。



51单片机的程序存储器用于存储代码和一些固定表格常数。 可寻址的程序存储器空间为 64KB

51单片机的从物理角度上可分为:片内,片外程序存储器,作为编址空间,编 址规律是:先片内,后片外,片内片外连续,不重叠。
如图:为 51 单片机程序存储器编址图。




单片机如何执行指令?
如图:




无论片内程序存储器,还是片外程序存储器,他们的地址是共享的。如果片内
4K ROM 的话,地址就是 0x0000-0x0FFF,从 0x1000-0xFFFF 就是外部 ROM 的地址 空间。可外部 ROM 的 0x0000-0x0FFF 的这一部分是否使用呢,这取决于单片机 EA 引脚的电平值。EA=1 时就是使用内部 ROM 的这一部分,外部 ROM 的这一部 分浪费不用;EA=0 时就是使用外部ROM 的这一部分,内部 ROM 浪费不用。从
CODE 段读取数据要使用汇编的 MOVC 指令,单片机会根据 MOVC 指令、EA 状态、 要读取的地址值,来自动地判断从什么存储器里取数据。

程序地址空间一般可以根据用户需要任意安排使用,但是 cpu 执行特殊程序的入 口地址,用户必须按照规定存放相应的程序。
特殊程序入口地址如图:








51 单片机内外数据存储器是两个独立的地址空间,应单独编址。 片内数据存储器地址空间"00H-FFH",RAM 地址空间“00H-7FH” 特殊功能寄存器 SFR 地址空间“80H-FFH”
片外数据存储器地址空间“0000H-FFFFH”
如图:





为了使片内数据存储器的存储空间合理运用,对低 128 字节的 RAM 划分了不同 的功能区。
如图:










位寻址区,地址空间 20H-2FH,16 个单元,共 128 位。
数据缓冲区,地址空间 30H-7FH,共 80 个单元。 特殊功能寄存器
特殊功能寄存器(SFR,Special Function Registers)别称专用寄存器,主要用于管 理,控制,片内逻辑部件,并行 i/o 口,串行 i/O 口,定时器/计数器,中断系统 等功能模块的工作。

总结:对于数据存储器,则分为内部数据存储器(IDATA/RAM)和外部数据存储 器(XDATA)两个部分,但这两个存储器就不像 code 存储器那样共享地址空间 的了。一般 的 8051 芯片,内部 RAM 只有 128B,从 0x00-0x7F,而从 0x80-0xFF 则是 SFR(CPU 工作寄存器和各种外设寄存器都在此)的区域。对于 8052 来说, 内部 RAM 有 256B,所 以 0x80-0xFF 是高 128B 的 RAM 在使用。可这部分不是 SFR 专用的吗?是SFR 专用,但注意,SFR 的访问只能使用“直接寻址方式”(使 用特定的汇编指令来实现),区别就 在这里。只有通过直接寻址访问的地址才是 SFR,否则就是普通的 RAM。至于外扩的 RAM(XDATA),地址也是从
0x0000-0xFFFF 的,而且这里的 0x0000 和内部 RAM 的 0x00 是不同的,是完全独 立的两个空间。他们的访问方法也是不同的。MCS-51 使用MOVX 指令,来读写 XDATA 区。而且,访问 XDATA 区,是需要 DPTR 寄存器来辅助 的。因为只有 DPTR 才能装得下十六位的 XDATA 地址。参考:
http://blog.csdn.net/shanzhizi/article/details/8997881



特殊功能寄存器(SFR,Special Function Registers)别称专用寄存器,主要用于管 理,控制,片内逻辑部件,并行 i/o 口,串行 i/O 口,定时器/计数器,中断系统 等功能模块的工作。

51 单片机中,专用寄存器与片内 RAM 统一编址,且作为直接寻址使用。


51 单片机有 18 个专用寄存器,其中 3 个是双字节寄存器,占用 21 个字节。


在 SFR 块的地址空间 80H-FFH 中,仅仅只有 21 个字节作为特殊功能寄存器离散 分布在这 128 个字节范围中,其余字节无定义,但是用户不能对这些字节进行“读 写操作”

下图为特殊功能寄存器的名称,表示符,地址一览表。



完整的pdf格式文档51黑下载地址:
C51单片机是怎么存储程序和数据的.pdf (315.08 KB, 下载次数: 23)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:492922 发表于 2019-4-17 17:25 | 显示全部楼层
看看,看看,谢谢楼主
回复

使用道具 举报

ID:20672 发表于 2019-11-23 16:38 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表