[标准8051]8051核的基本知识_存储…

    问题描述:之前使用过STC89C51一类型的单片机,这个就是基于标准的8051核的。和计算机或当前的一些高级应用的ARM架构的芯片许多地方还是不一样的,毕竟面向的是低端应用的场合。虽然目前51受到ARM Cortex-M0的强力打压,但仍有比较大的市场,因为价格,也因为之前多年的流行的一些积累。8051速度相对较慢,代码空间最大支持64K(也有超过64K的,得需要特别的编译器的支持,器件和应用程序的编写也都要支持才行)。以前零碎对8051的核有些了解,下面参考自 http://www.8052.com的内容进行了标准8051存储器基本知识的一些梳理。
     8051 存储器有三类,片内存储器、 片外 Code存储器、片外 RAM。
[标准8051]8051核的基本知识_存储器
    片内存储器可以是任何类型( Code, RAM 或其它);片外 Code存储器通常为外部 EPROM;片外 RAM通常是标准 SRAMFlash RAM
    Code 存储器:
    用来存放 8051要运行的程序的地方。限制为 64K,有多种类型与大小:可以是片内的,也可以是外部 ROMEPROM。另外 Flash RAM也可以存储程序(流行的方法)。除非有特别的编译器支持, 8051最大只能支持 64k代码空间。
    外部RAM:
    速度较内部存储器要低。虽然牺牲了灵活性与速度,但得到了量。内部 RAM限制在 128字节或 256字节,但外部 RAM可扩展至 64K
    片内存储器:
    实际有两种类型:内部 RAM和特殊功能寄存器 —SFR:
[标准8051]8051核的基本知识_存储器
    (1)前面 128字节是内部 RAM,芯片复位后都会清空的。 00h-07h的前 8个字节为“寄存器组 0”,通过操作 SFR,程序可以选择使用寄存器组 1,2,3
    (2)位存储地址为 20h-2Fh
    (3)30h-7Fh 的内部RAM可用作频繁访高速的用户变量。这个区域也被用于操作系统堆栈的存储区域。这样其实8051的堆栈空间是很受限制的,因为还要放一些用户变量。
    (4)寄存器组( Register Banks):
    每组由 R0, R1, R2, R3, R4, R5, R6, R7组成,这些寄存器用于操作变量和转移数据。 8051 初启动时,默认使用寄存器组0,可以通过程序改变使用的寄存器组。寄存器组非常灵活,对于中断的处理非常有用,当程序中确保其他寄存器不使用时,可将其用作用户内部 RAM。
    (5)位存储: 128 位可位寻址空间。如使用SETBCLR可以访问。位存储只是内部RAM的一个子集,任何内部RAM的操作也适用于位存储空间的。
    (6)特殊功能寄存器:用于特殊功能的操作, IO口,串口,定时器等。

你可能感兴趣的:([标准8051]8051核的基本知识_存储…)