8051 RAM/ROM结构

8051 提供片内128Byte存储器,地址空间00H-7FH。RAM 
其中00H-1FH 是4组通用工作存储区,每个区包含8个编号为R0-R7的寄存器。共32字节:4(区)×8(R0-R7)
其中1FH-2FH 是位寻址空间,映射位地址00H-7FH。(共16Byte:映射到00H-7FH,8×16(bit))。
位寻址空间的操作有单独的位指令。
第三个去为数据缓冲区,多用于堆栈,8051单片机的堆栈是向上生长的,即从低地址高地址生长。
复位后SP指针指向07H,通常初始化为20H,避开工作寄存器空间。


数据存储空间(RAM)
8051的数据存储空间分为片内和片外两个数据存储空间,这两个储存空间相互独立编址,分别使用不同的指令访问。
其中片内数据存储器通常被分为两个部分,分别是片内RAM块,和特殊功能寄存器(SFR)块。
对于51 系列,片内RAM块为128Byte,编址为00H-7FH。特殊功能寄存(SFR)器块编址为80H-FFH。
对于52 系列,片内RAM块为256Byte,




片内ROM存储器(程序存储器)
8051 通常提供至少4K 的片内ROM空间,用于保存用户的程序指令,
单片机地址总线宽度为16bit,最大可寻址64K。
51系列片内ROM只有4K,
52系列片内ROM是8K。当程序的大小超过片内存储器的大小时,需要使用片外ROM。单片机使用EA引脚控制片内/片外ROM的读取顺序。
当EA=1时,先执行片内的程序,当PC值超多片内的最大容量时,将自动转向片外ROM。
当EA=0时,直接从片外程序存储器读取指令。实际上相当于不使用片内ROM。


单片机上电复位后,程序计数器PC为0000H,此外0003H-0032H被保留,用于中断服务程序。




特殊功能寄存器
特殊功能寄存器是用来对片内的定时器,中断,串行接口等内部单元进行管理,监控。

8051共有26个特殊功能寄存器,离散的分布在80H-FFH地址空间内,其中12个寄存器可以使用位寻址。映射为80H-FFH的位地址空间。



  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Verilog是一种硬件描述语言,可以用来描述数字电路的行为和结构。在Verilog中,ROM(只读存储器)和RAM(随机存储器)是两种不同的存储器类型。它们有不同的访问方式、读写速度、存储容量和成本。 ROM是一种只读存储器,其中存储的数据无法被修改。ROM中的数据一般是在设计过程中预先指定的,因此ROM通常用于存储程序代码和常量数据。 在Verilog中,可以使用“initial”语句来初始化ROM中的数据,例如: ``` module rom ( input [7:0] addr, output reg [7:0] data ); reg [7:0] mem [0:255]; initial begin mem[0] = 8'h12; mem[1] = 8'h34; mem[2] = 8'h56; // ... end always @(addr) data <= mem[addr]; endmodule ``` 在上面的代码中,定义了一个8位地址和8位数据的ROM。使用“initial”语句初始化了ROM中的数据,然后使用“always”语句,使得当地址变化时,从ROM中读取对应的数据。 RAM是一种可读可写存储器,其中存储的数据可以被修改。RAM通常用于存储程序中需要动态修改的数据。 在Verilog中,可以使用“reg”类型声明一个寄存器,然后使用“always”语句来实现RAM。例如: ``` module ram ( input [7:0] addr, input [7:0] din, input wr_en, output reg [7:0] dout ); reg [7:0] mem [0:255]; always @(addr, wr_en) begin if (wr_en) mem[addr] <= din; dout <= mem[addr]; end endmodule ``` 在上面的代码中,定义了一个8位地址、8位写入数据、写使能信号和8位读出数据的RAM。使用“reg”类型声明一个寄存器,然后使用“always”语句,根据地址和写使能信号判断是写入数据还是读取数据,并将数据写入或读出。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值