51 存储器

存储器

上一篇中提到,有些51机型没有片内ROM,所以需要外加ROM,这个将会在后续谈到芯片扩展时讲解。现在不妨以有片内ROM的51为例了解51的存储器结构。
51存储器结构采用的是哈弗结构。即,数据与程序指令分开存储。所以对应的,会有一个专门存储程序指令的ROM,以及一个专门存放数据的RAM。

ROM

上一篇提到,51与52的区别只有4kB和8kB的区别。所以:

8031/803280(7、9)5180(7、9)52
04kB8kB

注意,这里提到的都只是片内自带的内部ROM。如果考虑到扩容片外ROM。所有的51系列最大都能扩展一个64kB的片外ROM。这是由与51的程序计数器寄存器IP长度为2Byte, 2 16 = 64 ∗ 1024 2^{16}=64*1024 216=641024
这样的话就有可能出现片内与片外ROM共同存在的情况。而CPU不可能同时读取或写入两个ROM,所以51有一个 E A ‾ \overline{EA} EA引脚,用于选择ROM。

E A ‾ = 0 \overline{EA}=0 EA=0 E A ‾ = 1 \overline{EA}=1 EA=1
访问外部ROM在内部ROM地址范围内访问内部ROM,超出范围访问外部ROM

RAM

与ROM相同,除片内RAM外,可以扩容片外RAM。一般51系列会有128kBRAM,52系列会有256kBRAM。片外扩容最大也是64kB。
片内RAM一般会分为以下部分:
在这里插入图片描述
注意,旁边标注的是RAM的地址,每个地址对应1字节,而非1bit。

名称地址范围作用
通用寄存器组区00H-1FH4组(每组8B)通用寄存器
位寻址区20H-2FH这部分128bit可以按位寻址
一般RAM区30H-7FH(FFH)用户自定义

上面提到的可以按位寻址区可以直接寻址到位。20H最低一位为00H,依次增加。

除此之外,51中还有很多特殊功能寄存器。他们虽然与RAM统一编址,比如说E0H为累加器A。但他们实际上不位于RAM中。比如说,51系列中没有高128字节,RAM中根本就没有E0H;即便52中有高128字节,这些特殊功能寄存器也不位于RAM中。52为了避免混淆,特殊功能寄存器只能直接寻址,高128字节只能通过RI间接寻址。至于这些特殊功能寄存器到底在哪儿?他们分布于51各个部分,很多寄存器就位于CPU中(A、B、PSW、SP、DPTR),统一编制只是为了方便使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值