0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

今天给大家讲解一下单片机的储存器!

嵌入式悦翔园 来源:嵌入式悦翔园 2023-01-09 11:52 次阅读

一、前言

程序存储器(又称数据Flash),顾名思义,是用来存储用户的程序,使单片机能够按照编写的代码顺序执行,完成指定的任务。所以程序存储器是只读存储器(只读存储器),我们已经听过很多次了。

代码存储在程序存储器里面,一般有常数、表格、pi值、数码管形状、SCM ID号、内部参考信号源、关机唤醒定时器频率、IRC参数等数据。

注意: 单片机每次都是烧录程序,烧录就是为了把代码放到程序存储器中,而我们用的电脑则是把硬盘的数据和程序放到RAM,再用CPU去读取RAM里面的数据和程序。

二、存储器的存储单位与编址

存储信息的基本单位称存储元件,每个存储元件是一个二进制位,一位可存放一个二进制数0或1。. 每8位组成一个字节。

编址是为了方便我们存取存储器中的信息,我们需要给每个存储单元编号,即编址。

1.存储单位

位(bit):计算机的最小数据单位

字节(Byte):1Byte = 8bits

字(Word):1Word = 2Bytes = 16bits

2.编址

51单片机的存储单元是一个字节,为了存取数据方便,每个存储单元都有编号,这个编号就是编址,编址采用二进制数。例如:0000 0010B可以代表第二个存储单元。

三、51单片机有哪些内部存储器

存储器是单片机的又一个重要组成部分,存储容量为256个单元的存储器结构中每个存储单元对应一个地址,256个单元共有256个地址,用两位16进制数表示,即存储器的地址(00H~FFH)。

存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。存储器的存储单元地址和存储单元的内容是不同的两个概念,不能混淆。

1.片内RAM

RAM(Random Access Memory)又叫随机存取存储器,正常情况下不仅可以写入数据到RAM,也可以从RAM读取数据。

单片机内部总共有256Bytes的RAM。RAM的每一个字节都有编码,从0000 0000开始直到1111 1111,不同区域的RAM有着不同的功能。可以把RAM想象成一栋办公楼,不同的楼层有不同的部门,不同的部门自然干不同的活。

注意: 因为单片机一次只能处理8个bit的数据(字长为8),并且一个8位二进制数的范围是0到256,所以单片机一次能寻址的范围也就是0到256。

2.片内ROM

ROM(Read-OnlyMemory),又叫只读存储器,正常情况下只能从ROM读取数据,不能往写入数据。

单片机内部的ROM大小为4KB(4096Bytes),字节地址范围为000H~0FFFH。

在特殊条件下,可以把程序烧入到ROM中,所以ROM也叫程序存储器。

如果ROM的大小不够存入所有程序,也可以外接ROM。单片机最多可外接64KB的ROM。内部ROM和外部ROM是统一编址,要么就只用64KB的外部ROM,要么就用4KB的内部ROM+60KB的外部ROM(外部ROM的开头4KB闲置)。

3.外部数据存储器

外部数据存储器一般由静态 RAM 构成,其容量大小由用户根据需要而定,最大可扩展到 64KB RAM,地址是 0000H~0FFFFH。CPU 通过 MOVX 指令访问外部数据存储器,用间接寻址方式,R0 、R1 和 DPTR 都可作间接寄存器。

注意: 外部 RAM 和 扩展的 I/O接口是统一编址的,所有的外扩I/O 口都要占用 64KB 中的地址单元。

四、如何区分ROM和ROM

片内ROM和片外ROM的区分:在单片机既有片内ROM又有片外ROM时,会产生一部分重复的地址范围,为了解决区分片内和片外ROM的问题,51单片机设置了一根控制线EA(低电平有效),所以

EA = 0 => 有效 => 访问片内存储器

EA = 1 => 无效 => 片内存储器被忽略

本质的原理:

就是当PC的值大于了某个值时将访问外部存储器,PC的值小于了某个值时将访问内部存储器。这个值由存储器容量的大小绝定,在8051单片机中,片内ROM = 4KB,所以当PC小于0FFFH时,访问片内ROM。

五、存储器数据读写说明

要对256字节存储器的每个存储单元进行读写,需要8根地址线和8根数据线,先送8位地址选中某个存储单元,再根据读控制或写控制,将选中的存储单元的8位数据从8根数据线送出,或通过8根数据线将8位数据存入选中的存储单元中。

当地址总线A7~A0将8位地址00011111(1FH)送入存储器时,会选中内部编址为1FH的存储单元,这时再从读控制线送入一个读控制信号,1FH 存储单元中的数据00010111从8根数据总线D7~D0送出。

六、总结

对于RAM和ROM,当我们写程序的时候,我们把程序误认为ROM,也就是说,我的某个逻辑形成了一系列的逻辑开关,但是当CPL进行操作的时候,在传输的过程中,交换逻辑需要不断的改变,所以RAM就诞生了。

但是由于技术的限制,RAM不能下电来保存逻辑,即电路中的每个硅电子都不能被保存,并且这个过程限制了内存的大小。因此,RAM和ROM是通过CPU总线连接的。

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620864
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1322

    浏览量

    113706
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120701
  • 程序存储器
    +关注

    关注

    0

    文章

    20

    浏览量

    12356
  • 储存器
    +关注

    关注

    1

    文章

    92

    浏览量

    17336

原文标题:今天给大家讲解一下单片机的储存器!

文章出处:【微信号:嵌入式悦翔园,微信公众号:嵌入式悦翔园】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机上电,但是没反应,只有将RXD和RST短接一下单片...

    单片机上电,但是没反应,只有将RXD和RST短接一下单片机才得电,开始工作,求解这是怎么回事?
    发表于 05-20 21:54

    各位推荐一下单片机初学者看哪些视频呢?谢谢!

    大家好,我是一名单片机初学者,不想走弯路,各位推荐几个单片机的视频,谢谢。。。各位推荐一下单片机
    发表于 05-30 15:08

    下单片机应用现状

    我想问一下广大朋友们,当下单片机应用的发展现状,现在仍然是8051是主流吗?对于现在的大学生在学好学校课程的基础上,应该涉足单片机什么领域的内容呢?希望大家
    发表于 04-04 20:38

    大家好,我先问一下单片机的上位语言做界面最好是选用哪种语言,不胜感激。

    大家好,我先问一下单片机的上位语言做界面最好是选用哪种语言,不胜感激
    发表于 10-27 10:50

    请问一下单片机是什么?

    请问一下单片机是什么?
    发表于 07-23 07:04

    请问一下单片机中IIR滤波的实现方法是什么?

    请问一下单片机中IIR滤波的实现方法是什么?
    发表于 10-14 07:45

    请问一下单片机入门需要多久?

    请问一下单片机入门需要多久?
    发表于 10-18 09:25

    请问一下单片机/树莓派扩展双串口有哪些特点

    请问一下单片机/树莓派扩展双串口有哪些特点?
    发表于 10-18 06:40

    分享一下单片机毕设如何选题

    文章目录单片机毕设选题推荐选题建议创新性不要给自己挖坑单片机作品展示单片机毕设选题推荐 ()单片机毕设选题推荐Hi,这里是丹成学长,这篇文
    发表于 10-27 08:29

    请问一下单片机串口接收如何断帧?

    请问一下单片机串口接收如何断帧?
    发表于 11-01 07:12

    常见的储存器有哪些?如何选择储存器

    存储有哪些分类?由哪些部分组成?常见的储存器有哪些?如何选择储存器
    发表于 11-04 06:44

    讲解一下A/D和 D/A的基本概念

    文章目录前言A/D 和 D/A 的基本概念前言今天大家讲解一下单片机中的基础概念,A/D 和
    发表于 11-25 06:31

    安装一下单片机开发最常用的软件–keil

    要想在单片机的世界里遨游,最重要的是要有个钥匙。没错,那就是keil软件。今天我们来安装一下单片机开发最常用的软件–keil1、官网下载keil软件下载网址我们需要下载两个版本,
    发表于 01-13 06:10

    分享一下单片机和PLC哪个更好上手

    关注我,每天学习坚持学习点点,你很快就会有进步哦!今天我们来分享一下单片机和PLC哪个更好上手,小小电工与你起进步我是雄飞电气小栋,今天
    发表于 02-16 06:54

    记录一下单片机的IO口

    IO口模式回顾点滴分享A int *p, i;B int i, *p=i;C int i, *p; D int *p=&i, i;(答案解析在文末!先做做看看)今天回顾记录一下单片机的IO口
    发表于 02-28 06:53