一、 80C51单片机的存储器结构

80C51单片机的存储器包括两类:程序存储器和数据存储器。

程序存储器用来存放用户程序和常用的表格、常数,采用只读存储器(ROM)作为程序存储器。

数据存储器用来存放程序运行中的数据、中间计算结果等,采用随机访问存储器(RAM)作为数据存储器。

从物理地址上看,MCS-51系列单片机有4个存储器空间,即片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。

二、片内数据存储器

80C51单片机的内部存储器分为内部程序存储器和内部数据存储器,这种程序与数据分开存放的存储器结构称为“哈佛”结构。(所谓哈弗就是数据与程序分开存储,这也是51单片机的缺点:速度不快;对应的是冯诺依曼结构,是数据与程序存储一块。)

因为80C51单片机的内部数据存储器有256个单元,所以单元地址用8位二进制数表示。但这256个单元并不完全是作为数据存储器来使用的,其中低128个单元(地址范围为00H~7FH)是对用户开放的;

高128个单元(80H~FFH)中分散地分布了21个特殊功能寄存器。

片内RAM低128个单元按其用途可分为3个不同的区域,即工作寄存器区、位寻址区和用户RAM区。

工作寄存器区

​​​​​​​​​​​​​​

在此区域中共有32个存储单元,其地址范围是00H~1FH,分成4个通用寄存器组,即通用寄存器组0~通用寄存器组3,每组有8个存储单元,构成通用寄存器R0~R7。各组通用寄存器的名称与单元地址的对应关系见表从表可以看出,每个通用寄存器组都包含相同的通用寄存器R0~R7,它们只是地址不同,所以这4个通用寄存器组是不能同时使用的,可以使用程序状态字寄存器(PSW)中的RS1和RS0位来选择当前使用的通用寄存器组,在单片机的初始状态下,当前使用的通用寄存器组为通用寄存器组0。

//方法一:改PSWMAIN:
......
......
ACALL DELAY
AJMP MAINDELAY:SETB RS1;SETB RS0;//调用通用寄存器3   //也可以PSW|=0x18;................//寄存器延时CLR RS1;CLR RS0;//恢复默认状态:调用寄存器0  //也可以PSW&=0xE7;RET
END
方法二:不调用寄存器组,申请一片空间MAIN:
......
......
ACALL DELAY
AJMP MAINDELAY:PUSH ACC
D0:     MOV A,#00HMOV 30H,AINC ACCCJNE ACC,#0FFH,DOPOP ACC
RET
//这也是c语言中的unsigned char i;存储在RAM中,
由于51单片机本身用户自定义的就不多,最好用方法一

位寻址区

位寻址区位于工作寄存器区之上,它的地址范围是20H~2FH,共16个单元。这16个单元都有单元地址(也称字节地址),可以按单元地址访问其内部存储的8位二进制数,称为单元寻址。另外,这16个单元中的每一位都有一个位地址,也可以按位地址访问所存储的一位二进制数,称为位寻址。所以,位寻址区的单元既可以按单元寻址,也可以按位寻址。这128位的位地址范围是00H~7FH。

例如:MOV   20H,#0FFH

MOV 24H,   #11111110B

MOV   A,   20H;字节寻址:把20h单元的8位2进制数(一字节)送到A=0FF

MOV C,    20H; 位地址寻址:把20h,代表的一个2进制数送到C=0;

 用户RAM区

从地址30H至7FH共80个单元,把这一存储区域称为用户RAM区。对这个区域的使用,不做任何规定和限制,一般把堆栈设置在此区域。

特殊功能寄存器(SFR,Special Function Register)

80C51单片机有21个特殊功能寄存器,它们分散地分布在80H~FFH地址范围内的21个单元中,剩余的存储单元用户不能使用。

程序存储器

在MCS-51系列单片机中,有些单片机内部含有程序存储器,例如80C51单片机内部含有4KB程序存储器;

无论内部有无程序存储器,外部都可以再扩展程序存储器,扩展的最大容量为64KB,下面以80C51单片机为例加以说明。80C51内部含有4KB ROM,其地址范围是0000H~FFFH。它的外部可以再扩展64KBROM,其地址范围是0000H~FFFFH。从两者的地址对比可以看出,内部程序存储器的地址和外部存储器的低4K地址重叠,地址范围都是0000H~0FFFH。解决的办法就是利用引脚的状态来区分。如果引脚接地,即=0时,就使用64KB的外部程序存储器;如果引脚接高电平,即=1时,就使用4KB的内部程序存储器和外部程序存储器的高60KB空间,如图2.3所示。总之,CPU可访问的程序存储器的最大容量为64KB。注意:由于80C31单片机内部不含有程序存储器,要在片外外接程序存储器,因此它的引脚必须接地。

单片机的程序存储器中有两个具有特殊功能的区域。

总结

作者观点:总之,对于RAM和ROM,当我们写程序时,把程序烧到ROM,也就是按一定的逻辑形成一系列的逻辑开关,但是在CPU进行运算,转移时需要不断改变开关逻辑,于是RAM孕育而生,但是由于技术限制,RAM不能掉电保存逻辑,也就是电路中各个硅电子不能保存,且工艺限制做的内存大。于是形成了RAM与ROM通过CPU总线联动。

通过51单片机的RAM地址,ROM地址,可以看到,ROM存储程序,通过CPU传递数据,到RAM,而RAM是各个寄存器的集合,按ROM程序形成逻辑,响应CPU,同时传递给ROM信号(这里ROM的逻辑已不变,相当于与或非的各种开关)。

51单片机存储器原理相关推荐

  1. 51单片机——存储器

    目录 1.存储器概述 1.1 存储单位 1.2 存储器编址 1.3存储器数据读写说明 1.4 存储器的地址空间说明 2.ROM(程序存储器) 2.1 片内外ROM(程序存储器) 2.2 片内外ROM( ...

  2. 51单片机定时器原理及相关器件

    注:大部分图片来自B站:江科大自化协 目录 定时器 定时器作用 定时器的常用模式 中断系统 中断号 寄存器 寄存器详解 定时器 定时器作用 (1)用于计时系统,可实现软件计时,或者使程序每隔一固定时间 ...

  3. 【MCS-51】51单片机结构原理

    至今为止,MCS-51系列单片机有许多种型号的产品:其中又分为普通型51(8031.8051.89S51)和增强型52(8032.8052.89S52等).它们最大的区别在于存储器配置各有差异.下面我 ...

  4. nrf24l01无线通信模块与51单片机工作原理

    资源获取码:aaaa . 实物测试成功 . . 功能描述: 1 本无线用了NRF24l01作为无线模块,进行发射与接收. 2 当左边板的一个按键按下不放,右边板一盏灯点亮. 3 当左边板的一个按键松开 ...

  5. 【51单片机快速入门指南】3.2:定时器/计数器

    目录 快速使用 硬知识 传统51单片机 CPU 时序的有关知识(12T) 51 单片机定时器原理 51 单片机定时/计数器结构 定时器/计数器0/1 定时器/计数器0和1的相关寄存器 控制寄存器 工作 ...

  6. 51单片机 8*8点阵贪吃蛇

    在学完按键和点阵屏后,其实就可以做这个贪吃蛇了,只要理解了8*8点阵屏,贪吃蛇的显示就不成问题,理解了贪吃蛇的运作机制,做出贪吃蛇就不成问题,在网上也有很多人做出了这个程序,主要思想应该都是差不多的, ...

  7. 51单片机复位按钮不灵敏的问题

    开发环境(蓝色粗体字为特别注意内容) 1.开发板:12C5A60S2. 2.开发环境:Keil uv5 今天在做一个51单片机最小系统的时候,发现复位按键不灵敏,需要按下比较长的时间才能够正常复位,电 ...

  8. 51单片机定时器/计数器(定时器中断)

    51单片机定时器/计数器(中断系统:定时器中断) 实现功能 通过定时器终端控制LED灯 D1 间隔一秒闪烁 单片机型号:STC89C52 定时器介绍 1.51单片机定时器原理 定时器实质上就是一个加1 ...

  9. 2023-3-11基于单片机超声波原理的坐姿矫正

    此系统可直接用于开发板,具体实物可查看文末的图片.也可以用元器件根据原理图焊接.资料已上传在微信公众号:风吹摇铃 奔赴星海 0.整理及编写了19个常用的51单片机Proteus仿真,如下所示(可在第十 ...

最新文章

  1. MongoDB应用场景
  2. AbstractQueuedSynchronizer原理分析
  3. grub rescue 安装linux,Ubuntu重装启动失败进入修复grub rescue模式
  4. mysql 字段属性命令_mysql 操作字段 命令
  5. Java 第7章 数组
  6. 018 jquery中的事件
  7. 页面跳转的方法以及301 和 302的区别
  8. java reader utf-8_解決BufferedReader读取UTF-8文件中文乱码(转)
  9. ruby 生成哈希值_哈希 Ruby中的运算符
  10. 山西首次举办明清水陆画专题展 多数藏品首次面世
  11. 数据类型转换——Python
  12. Linux Command - alien
  13. linux打开dwg文件怎么打开方式,dwg文件扩展名,dwg文件怎么打开?
  14. 大牛的十多年技术人生的经验与心得
  15. 韩语零基础快速掌握韩语学习的小技…
  16. 商家如何利用小程序积分营销工具为小程序引流?
  17. 高通Camera数字成像系统简介
  18. SDK无埋点技术在百分点的探索和实践
  19. play框架,即学即用
  20. M2固态硬盘和普通硬盘相比有什么区别

热门文章

  1. vscode找不到执行文件导致更新失败
  2. LightGBM原理简介
  3. 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
  4. Linux 服务器用上 SS Client
  5. Windows注册服务的几种方式
  6. Opencv Mat数据类型操作
  7. 《人性的弱点》(一)
  8. Git 切换分支的命令
  9. mesh和wifi中继的区别_Mesh路由和无线中继的差距在哪里?谁才是更好的选择?
  10. 注塑模设计的一般流程,模具新人必看