我是
靠谱客的博主
沉静猎豹,最近开发中收集的这篇文章主要介绍
[标准8051]8051核的基本知识_存储…,觉得挺不错的,现在分享给大家,希望可以做个参考。
问题描述:之前使用过STC89C51一类型的单片机,这个就是基于标准的8051核的。和计算机或当前的一些高级应用的ARM架构的芯片许多地方还是不一样的,毕竟面向的是低端应用的场合。虽然目前51受到ARM Cortex-M0的强力打压,但仍有比较大的市场,因为价格,也因为之前多年的流行的一些积累。8051速度相对较慢,代码空间最大支持64K(也有超过64K的,得需要特别的编译器的支持,器件和应用程序的编写也都要支持才行)。以前零碎对8051的核有些了解,下面参考自
http://www.8052.com的内容进行了标准8051存储器基本知识的一些梳理。
8051
存储器有三类,片内存储器、
片外Code存储器、片外RAM。
片内存储器可以是任何类型(
Code, RAM 或其它);片外
Code存储器通常为外部
EPROM;片外
RAM通常是标准
SRAM或
Flash RAM。
Code
存储器:
用来存放
8051要运行的程序的地方。限制为
64K,有多种类型与大小:可以是片内的,也可以是外部
ROM或
EPROM。另外
Flash RAM也可以存储程序(流行的方法)。除非有特别的编译器支持,
8051最大只能支持
64k代码空间。
外部RAM:
速度较内部存储器要低。虽然牺牲了灵活性与速度,但得到了量。内部
RAM限制在
128字节或
256字节,但外部
RAM可扩展至
64K。
片内存储器:
实际有两种类型:内部
RAM和特殊功能寄存器
—SFR:
(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
位可位寻址空间。如使用SETB和CLR可以访问。位存储只是内部RAM的一个子集,任何内部RAM的操作也适用于位存储空间的。
(6)特殊功能寄存器:用于特殊功能的操作,
IO口,串口,定时器等。
发表评论 取消回复