存储器

本文参考《爱上单片机》这本书。

程序无影无形,硬件实实在在,是存储器沟通了两者。

对于程序来水存储器是一个空盒子,可以放入数据和语句,最基础的由1和0的二进制数组成。对于硬件来说存储器是一些开关组,每一个开关都有2个状态—“开”和“关”。1对应着“开”,0对应着“关”,程序世界与物质实体之间找到了沟通的管道。

在这里插入图片描述

存储器是由一大堆开关组组成的,每一个开关都有“开”和“关”2种状态,每一个开关对应程序中位的概念,每8个开关为一组,组成程序中字节的概念。(每一个字节8位,1位有0和1两种可能。)

单片机中的编译就是将C语言程序转换成二进制的由0和1组成的文件。程序的下载过程就是将这些二进制数按顺序放到单片机的存储器中,改变开关的状态。如果数值为1则接通开关,如果数值为0则断开开关。单片机里有非常复杂的集成电路,存储器中的开关是连接在电路上的,开关的状态会改变电路的状态,最终实现了对硬件的控制。

单片机的存储器有许许多多个这样的开关,单片机的设计者根据不同的应用,把这些开关分开,并按一定顺序排列起来。最后再给每一个或每一组开关编上号,以便需要的时候很容易找到。在程序的世界里这些存储器的编号被叫做地址。不同型号的单片机中,存储器开关的个数也不相同,但它们的地址都是从0x00地址开始编号的。

一般的单片机内部有2种类型的存储器,一种是数据存储器(RAM),另一种是程序存储器(ROM)。我们用ISP下载线的程序存储在ROM空间里;在单片机运行的时候,程序中的变量储存在RAM空间里。

在这里插入图片描述

从表中你会发现所有的存储器都存在了速度、易失性和成本之间的博弈。

随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

只读存储器(英语:Read-Only Memory,简称:ROM)。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。

外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。

我们有了RAM和ROM存储器,也有了地址编号,下面的问题就是怎么找到我们需要的存储器单元。解决这个问题就需要涉及到寻址的概念。寻址顾名思义就是寻找地址嘛,我们用十六进制数为所有的存储器编好地址名。

寻址的原理,单片机程序的二进制代码下载时按程序运行的先后顺序从0x00地址开始向后写入ROM,有一个指针叫作PC指针,好像手表的指针一样,是专门用来指向需要运行的程序的地址,PC指针指到哪,就把哪里的二进制数读出来,然后按照对比结果操作内部的复杂的电路来完成任务。

在这里插入图片描述

一个存储器包含许多存储单元,每个存储单元可存放一个字节。每个存储单元的位置都有一个编号,即地址,一般用十六进制表示。

要知道每一个地址都代表一个字节,即8个位。每一个字节都可以表示边路0x00到0xFF的256个数值,也可以表示8个0、1的开关。

8051单片机内部结构示意图:

在这里插入图片描述

上面是通过单片机的例子讲述存储器的作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值