当前位置: 首页 > news >正文

mcs51单片机02

接着说存储器
存什么,存数据和程序,存在单片机内部,多少单片机内部特别抠门,所以必须外接空间。

所以一共有四块空间,片内存数据和程序,片外存数据和程序。

分别在哪里,占有多大空间呢?


先来讲讲存放程序的空间(ROM
先说片内rom,在内rom的某块空间有特殊功能。

地址为0开头的3个字节大小的空间存放的是无条件转移指令,因为这三个字节太小了,程序放不下,所以放的是指令(一张纸条)。比如当按下复位键时,PC就会指向0000h,但这个空间只放下了一张纸条告诉你去其他地方执行重启代码。从下至上接着的5个颜色块。分别有8个字节,这5个也就是我们前面说的一串二定四并5断中的5断,5个中断,从下至上分别是外部中断零,定时器零,外部中断一,定时器一和串行口中断。(这个顺序不会有任何改变,记下后面会考)。

再整体说说ROM。
EA=1和EA=0分别是什么意思。

你可以把外rom空间里从开始到1000h想象成裙子,上衣是从1000h到fff h。裙子2号是片内的rom。当AE=0的时候,低电平有效,也就是使用外部空间存放我们的程序(此时穿的是一个套装,上衣加裙子。当EA等于1的时候,程序就必须先用内部的rom,在内rom里面不够的,再放到外rom,也就是此时穿的是上衣加裙子2号。

需要细心看的是存放数据的空间也就是RAM
还是先说抠门的内ram。

内ram空间的20h-30h这一块,空间用来位寻址。

由于他也比较抠门,所以也是掰开用的。空间大小是10h也就是16个字节,掰开成128个位。

可以想象成有16个宿舍,每个宿舍有8个床位。如何通过地址知道他是在哪一个床位呢?

比如,1EH是31。31÷8得到3余六,也就是20h往上面三个字节的第6个地址就是这床位。

而存放数据的内部空间里面除了20h到30H还有高特。

我们说过内部空间特别的小气,空间大小只有256B,从128到256的空间叫做高128位特殊存储器,我们亲切的叫他高特,也可以叫sfr。因为他特别小气,所以他的内存也是掰开了用。

它里面存放离散分布的21个sfr(128字节➗8比特)。看图可能一开始有些许混乱,但是可以在人群中找到熟悉的名字,我们说的一串二定四并5断中的四并,也就是P0,P1,P2,P3。

同样因为抠门掰开用的,是一位一位的,所以也可以进行位寻址。
那这里面有多少个可以被寻址的呢(通过地址知道他是在哪个地方,叫什么名字)。能被八整除的,都是可以被位寻址的。能被八整除,也就是以零或者八结尾的数字,不难发现有11个,11×8还要减去空的5个,也就是有83个可以被位寻址的单元。

我们讲过宿舍和床位之间的关系,那高特区域里面的每个床位都还知道他的名字。
所以告诉我们地址的时候,我们可以喊他的名字,也可以喊他的床位编号。(先喊字节,再喊位)
比如D4H,我们可以喊他RS1(名字),也可以喊她,特殊功能寄存器psw的D4。

上面我们提到一共有两块地方都掰开了用,这两处都可以被位寻址,那可以被位寻址的个数是多少呢?高特的83个加上专门位寻址的128个。一共是211个。以上讲清楚了存放数据的内部空间(内RAM)。

等下,那既然这个专门用来位寻址空间是从0~127。而位地址所在的内部空间的地址也是从0~127,那我们怎么知道他是对字节操作,还是对位操作呢?

所以需要一个中间人,就是指令。看到mov指令,就说明是对字节进行操作,看到SETB或者CLR就是对位进行操作,这样很好区别说的是哪块地方了。


现在我们终于把为位寻址区域和高特区域讲清楚了,那存放数据的内部空间,还有其他的空地是用来干嘛的呢?如下图。


补充一下指令。我们说了分不清的位置的时候需要用到指令,各块区域使用的指令如下。


以上我们终于讲清楚了存储器,从内外rom套装的上衣和裙子,到内部抠门的ram(掰开用,位寻址)。

那空间有了,我们可以按需选择存放。比如程序小的,而且固定的,我们可以先使用内部的程序存储器,但是当程序比较大的时候,而且需要修改的时候,可以选择外部的程序存储器或者使用内部带有可修改功能的。比如有eprom(可修改)/ flash的单片机如8751。

当数据量比较小而且需要内部快速反应的时候,可以用到内部的数据存储器,但数据量很大,实在没办法的时候,那就用上外接的数据存储器。

http://www.jsqmd.com/news/468600/

相关文章:

  • Asp.net core使用ayui表单Ajax提交请求,后台接收参数为空,模型绑定失败
  • ooderAgent 深度实战——给你的应用挂上懂程序的 AI Chat小助手
  • 福州Q235B螺旋钢管:城市建设的坚实脊梁
  • OpenClaw 版本更新 2026.3.8 不只是多了几个命令
  • iTOP-3588烧写ubuntu一文通完全手册
  • 亲密关系继续学习1
  • 标题五个字
  • 基于MATLAB/Simulink的60W反激变换器模型:Flyback模型,闭环控制,带sn...
  • 结构化分析结果与可视化图表
  • Simulink二次调频AGC风电风机储能与电动汽车、水电火电对比研究及系统频率波形分析
  • 面向金融的深度学习(提前发布)(三)
  • ArcGIS水文分析、HEC-RAS模拟技术在洪水危险性及风险评估
  • 用直白语言讲透 Transformer
  • 虚拟机部署fdbus
  • 氯丁橡胶与再生胶并用生产微波吸收材料
  • 权威榜单今年最佳top海外用工服务,解决您的用人需求
  • 2026年广州机械网页设计,报价大揭秘!你敢看吗?
  • APM日志添加自定义数据
  • 哈哈哈哈哈哈哈哈哈哈哈哈
  • openclaw平替之nanobot 源码解析(三):Markdown 驱动的系统提示词
  • 从零学网安第3期——Windows漏洞
  • VS Code+Claude Code+Deepseek
  • AI元人文理论体系深度解析:从存在论根基到文明治理的完整架构
  • 高并发直接拉满!Qwen3-ASR 搭配 vLLM 实现高性能语音识别
  • 华为ensp:三种配置防火墙的方式
  • Spring Web MVC的异步请求解读
  • 2026年常见网页爬取住宅代理服务商整理与选择参考
  • 通信中继无人机市场前景明朗:未来六年复合年增长率锁定7.9%
  • 深入理解 RLHF/PPO/DPO/GRPO
  • Day 2:信号槽连接方式对比 - 实战练习题