51单片机之存储器

51单片机结构:

思维结构很重要:
在这里插入图片描述
由上图可知,51单片机的存储器分为俩大部分:程序存储器ROM和数据存储器RAM,这一点有别与计算机

程序存储器ROM:

1、 程序存储器ROM顾名思义,存放程序的地方,程序指令指导单片机完成设定的功能
2、 51单片机专门设置一个16位的PC,用于指示下一时刻CPU将要执行的程序指令在ROM中的位置,由于PC指针长度位16位,所以单片机的程序存储器ROM空间大小为2^16 = 64Kb,从0000~FFFFH
3、 ROM还可以细分为片内ROM和片外ROM

片内ROM:

8051片内有4KB ROM,地址范围从0000H~0FFFH

片外ROM:

片外可扩展,一般从1000H~FFFFH ,64KB

PS:那么问题来了,51单片机是如何区分是片内ROM还是片外ROM呢?

片内ROM和片外ROM的区分:

在单片机既有片内ROM又有片外ROM时,会产生一部分重复的地址范围,
为了解决区分片内和片外ROM的问题,51单片机设置了一根控制线EA(低电平有效),所以
EA = 0 => 有效 => 访问片内存储器
EA = 1 => 无效 => 片内存储器被忽略
本质的原理:
就是当PC的值大于了某个值时将访问外部存储器,PC的值小于了某个值时将访问内部存储器。这个值由存储器容量的大小绝定,在8051单片机中,片内ROM = 4KB,所以当PC小于0FFFH时,访问片内ROM。
具体的执行过程:
当EA = 0,毫不犹豫直接从0000H开始访问片外ROM
当EA = 1,PC从0000H开始访问片内ROM,当PC大于0FFFH时,转向访问 片外ROM,如图:
在这里插入图片描述

程序存储器ROM中的7个特殊地址:

即7个外部中断的入口地址,每个地址相隔8个地址单元,存放终端服务程序显然不够,所以一般在这7个特殊地址中存放跳转指令,跳转到相应的中断服务程序。
在这里插入图片描述

数据存储器RAM:

1、 RAM存储器一般存放单片机运行期间所需要的的数据和临时生成的数据,需要能够快速的读写。掉电丢失。
2、 同ROM相同,RAM也分为片内RAM和片外RAM

片内RAM:

在这里插入图片描述

1、 00H~1FH:工作寄存器区,又称通用寄存器,32字节,8字节为一组共4组。
在特殊功能寄存器篇说到标志寄存器PSW的RS0、RS1位来选择工作的4组寄存器中的一组,即选择的就是这个位置中的某一组
2、 20H~2FH:位寻址区,16字节,128位,这个地址空间中的128位可以按位访问,每一位都有一个地址,寻址空间为00H ~ 7FH ,如图:

在这里插入图片描述
在20H~2FH空间中,重新为每一位地址分配一个地址00H ~ 7FH,从而实现按位访问。

3、 一般RAM区:又称用户RAM区,80字节,对于52系列,一般从30H~FFH 供用户使用,对于前俩个区中未使用的地址单元也可以作为用户单元使用
4、 堆栈区与堆栈指针
一般设置在2FH单元以后,避开工作寄存器区和位寻址区,典型应用就是子函数调用:
在这里插入图片描述

片外RAM:

同ROM相似,通过外部总线扩展RAM从而获得更大的存储空间,由于外部总线宽度为16位,所以片外扩展最多64KB,地址范围0000H~FFFFH

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值