单片机存储器类型介绍

合集下载

51单片机:存储器

51单片机:存储器
特殊功 能寄存器
内部 RAM 0000 H
RAM (64K )
007FH
0000 H
数据存储器
引脚接为高电平时,CPU可访问内部和外部ROM,并 且程序自片内程序存储器开始执行,PC值超出片内 ROM容量时,会自动转向片外程序存储器中的程序。 引脚接为低电平时,CPU只 能访问外部ROM,无法使 用片内程序存储器。
(3)EPROM型(Erasable Programmable ROM,可擦除可编程 ROM),其典型外观标志是芯片上有一个紫外线擦除窗口。 这种存储器编程使用一定的直流电源(如+21V电压),而 擦除则用紫外线灯光照射芯片窗口(一般需15~30分钟), 重新编程后用不透明标签将窗口贴覆遮盖住即可。 MCS-51系列单片机8751的片内ROM以及27系列存储器 芯片都属于此类产品。 (4)E2PROM型(Electrically Erasable Programmable ROM,电可擦除可编程ROM)。这种存储器可以直接用电擦 写,比较方便数据的改写,较新型只读存储器,编程速度较 快。擦除、写入和读出电压均为+5V。28系列存储器属于此 类产品。
(二) 存储器的分类
sk ROM 型 OTPROM型
ROM
半导体存储器 (Memory)
EPROM型 E2PROM型 Flash ROM型 SRAM
RAM
DRAM
(1)Mask ROM 型:掩膜ROM。其编程只能由制造商通过 半导体掩膜技术完成,用户无法改写,所以对用户而言, 它是严格意义的只读存储器。如8051中的4KB程序存储器 就是这一种,这种ROM适用于有固定程序且大批量生产的 产品中。 一次可编程ROM(One Time 型:一次可编程 (2)OTPROM型: Programmable ROM)。用户可通过专门设备对其一次性写 入程序,此后便不能改写。这种程序存储器可靠性很高, 适合于存放已调试成功的用户程序,投入规模生产,但调 试阶段不宜用。目前,国内外有很多单片机制造商提供片 内集有OTPROM的单片机产品,可供用户选择。

单片机存储器

单片机存储器

单片机存储器1. MCS-51单片机的存贮器有程序存贮器ROM和数据存贮器RAM 之分。

由于外部程序存贮器和外部数据存贮器的地址可以重迭,所以我们说MCS-51单片机的寻址空间为2×64KB=128KB ,不过要注意:“片外程序存贮器和片外数据存贮器,根据实际需要也可以合并成一个统一的地址空间,此时最大寻址空间为64KB而不是128KB了。

”对外部程序存贮器的写操作是由编程器完成,而对其读操作则是由读选通控制信号/PSEN( Program Store Enable)再配以读操作指令MOVC来完成。

也就是由MOVC指令产生信号/PSEN,从而对片外程序存储器进行读操作。

对外部数据存贮器的写操作是由写选通控制信号/WR再配以指令MOVX来完成,而对其读操作则是由读选通控制信号/RD再配以MOVX 来完成。

也就是由指令MOVX指令产生/WR或/RD信号,从而对片外RAM进行写或读操作。

2. 程序存贮器ROMMCS-51单片机中设有一个片内、片外程序存贮器选择控制信号/EA(External Access)。

MCS-51单片机程序存储器示意图如果使/EA=1,则片内、片外程序存贮器ROM统一编址为64KB。

系统复位后,将先执行片内存贮器ROM中的程序。

当PC中内容超过OFFFH或1FFFH时,将自动转到执行片外程序存贮器中的程序。

片内程序存储器空间为0000H~0FFFH或0000H~1FFFH,片外程序存储器空间的地址不能与片内程序存储器空间地址相重迭。

至于具体执行哪里的程序完全取决于PC值。

如果使/EA=0,则只执行片外程序存贮器的程序,其地址空间为0000H~FFFFH 。

换言之,如果片内无程序存贮器ROM或不想访问片内程序存贮器ROM,则必须使/EA=0 。

注意:当系统复位时PC内容为0000H ,这意味着程序的执行总要从0000H单元开始,但用户程序又不能从0000H开始存放。

这是因为在程序存储器中有7个非常特殊的、固定的单元,这些单元所存放的内容是有特定要求的。

单片机的结构

单片机的结构

单片机的结构单片机是一种集成电路,它是一种微型计算机系统,由中央处理器、存储器、输入输出接口等组成。

单片机广泛应用于各种电子设备中,例如电视机、音响、电脑等。

单片机的核心是中央处理器,它负责单片机的运算和控制。

中央处理器由控制器和运算器两部分组成,控制器负责指令的执行和程序的控制,运算器负责数据的运算和逻辑判断。

中央处理器的性能直接影响单片机的运算速度和应用范围。

单片机的存储器包括程序存储器和数据存储器。

程序存储器用于存储单片机的程序,它通常采用闪存或EEPROM。

数据存储器用于存储单片机的数据,包括RAM和ROM。

RAM是一种易失性存储器,它在断电后会丢失存储的数据;ROM是一种只读存储器,它存储的数据在断电后不会丢失。

单片机的输入输出接口用于连接外部设备,包括LED、LCD、键盘、麦克风、扬声器等。

输入输出接口的数量和类型根据不同的应用需求进行选择。

单片机的时钟电路是单片机的重要组成部分,它用于提供单片机运行的时钟信号。

时钟信号的频率决定了单片机的运行速度,频率越高,运行速度越快。

时钟电路通常采用晶体振荡器,它提供稳定的时钟信号,使单片机能够正常运行。

单片机的复位电路用于保证单片机在上电或复位后能够正常启动。

复位电路通常采用复位芯片或电容复位电路。

复位芯片具有复位延迟时间,能够保证单片机在复位后稳定运行;电容复位电路则直接通过电容充放电实现复位功能。

单片机的电源电路用于提供单片机的电源,通常采用直流电源或电池。

电源电路的质量直接影响单片机的稳定性和可靠性。

单片机的结构包括中央处理器、存储器、输入输出接口、时钟电路、复位电路和电源电路。

这些组成部分密切配合,使单片机能够完成各种应用需求。

第三章 AT89S52单片机存储器结构PPT课件

第三章 AT89S52单片机存储器结构PPT课件

见书P39 表3.2.5
11
3.3 外部存储器及其访问
一、外部程序存储器及访问 1、访问外部ROM所用控制信号
ALE:低8位地址锁存信号; PSEN:读取控制信号; EA:片内、外ROM访问控制信号,EA=1,访问片内;
EA=0,访问片外。 2、访问片外ROM的过程
首先通过地址总线给出地址信号,选中程序存储器该地 址的存储单元,然后由PSEN发出读选通信号,在读选通信号 的控制作用下,将存储在被选中存储单元中的指令代码读出 并送至数据总线,单片机通过对数据总线的访问读取已送至 数据总线的指令代码,完成一次对外部程序存储器的访问1过2
3.2 存储器结构
10
3.2 存储器结构
三、特殊功能寄存器SFR AT89S52有128B特殊功能寄存器区,其特殊功能寄
存器有32个,比AT89C51增加11个,比AT89S51增加6 个。
特殊功能寄存器虽与片内RAM高128B地址完全重叠, 但在物理上是完全独立的。可以用寻址方式区分:直 接寻址访问的是SFR; 间接寻址访问,访问的是数据 RAM。
14
3.3 外部存储器及其访问
一、外部程序存储器及访问 5、访问外部程序存储器的时序
15
3.3 外部存储器及其访问
一、外部程序存储器及访问 5、访问外部程序存储器的时序
16
3.3 外部存储器及其访问
二、外部数据存储器及访问 1、扩展外部数据存储器的方法
17
3.3 外部存储器及其访问
二、外部数据存储器及访问 2、访问外部数据存储器的时序
5
3.2 存储器结构
一、程序存储器
1)程序存储器结构
8KB Flash存储器,地址0000H~1FFFH,可外扩展

51单片机数据类型

51单片机数据类型

从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率。

在51系列中data,idata,xdata,pdata的区别:1、data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。

2、idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。

idata是用类似C中的指针方式访问的。

汇编中的语句为:moxACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)3、 xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。

4、 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movxACC,@Rx读写。

这个比较特殊,而且C51好象有对此BUG,建议少用。

但也有他的优点,具体用法属于中级问题,这里不提。

当然现在有些51单片本身内部就有扩展的RAM区域,故在允许使用内部扩展RAM的时候使用xdata 和pdata并不影响P2和P0口。

单片机C语言unsigned char code table[] code 是什么作用?code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM 还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data 是存入RAM的意思。

程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data 区的数据进行运算处理,因此code区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash里面,然后load到 ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom 里面改动不了。

C51存储器类型MCS-51单片机物理存储器区域

C51存储器类型MCS-51单片机物理存储器区域

C51存储器类型MCS-51单⽚机物理存储器区域1、 data区空间⼩,所以只有频繁⽤到或对运算速度要求很⾼的变量才放到data区内,⽐如for循环中的计数值。

2、 data区内最好放局部变量。

因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提⾼内存利⽤率。

当然静态局部变量除外,其内存使⽤⽅式与全局变量相同;3、确保你的程序中没有未调⽤的函数。

在Keil C⾥遇到未调⽤函数,编译器就将其认为可能是中断函数。

函数⾥⽤的局部变量的空间是不释放,也就是同全局变量⼀样处理。

这⼀点Keil C做得很愚蠢,但也没办法。

4、程序中遇到的逻辑标志变量可以定义到bdata中,可以⼤⼤降低内存占⽤空间。

在51系列芯⽚中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。

定义⽅法是: bdata bit LedState;但位类型不能⽤在数组和结构体中。

5、其他不频繁⽤到和对运算速度要求不⾼的变量都放到xdata区。

6、如果想节省data空间就必须⽤large模式,将未定义内存位置的变量全放到xdata区。

当然最好对所有变量都要指定内存类型。

7、当使⽤到指针时,要指定指针指向的内存类型。

在C51中未定义指向内存类型的通⽤指针占⽤3个字节;⽽指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。

如指针p是指向data区,则应定义为: char data *p;。

还可指定指针本⾝的存放内存类型,如:char data * xdata p;。

其含义是指针p指向data区变量,⽽其本⾝存放在xdata区。

bit是在内部数据存储空间中 20H .. 2FH 区域中⼀个位的地址,或者 8051 位可寻址 SFR 的⼀个位地址。

code是在 0000H .. 0FFFFH 之间的⼀个代码地址。

data是在 0 到 127 之间的⼀个数据存储器地址,或者在 128 .. 255 范围内的⼀个特殊功能寄存器(SFR)地址。

单片机的寄存器类型

单片机的寄存器类型

单片机的寄存器类型有:
1.累加器A:累加器A是微处理器中使用最频繁的寄存器。

在算术
和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。

2.数据寄存器DR:数据寄存器通过数据总线向存储器和输入/输出
设备送(写)或取(读)数据的暂存单元。

3.指令寄存器IR:用来保存当前正在执行的一条指令。

4.程序计数器PC:PC用于确定下一条指令的地址,以保证程序能
够连续地执行下去,因此通常又被称为指令地址计数器。

5.地址寄存器AR:用来保存当前CPU所访问的内存单元的地址。

MCS-51单片机的内部存储器

MCS-51单片机的内部存储器
② AC(PSW.6)——辅助进位标志位。在加减运算中,当有低4 位 向 高 4 位 进 位 或 借 位 时 , AC 由 硬 件 置 位 , 否 则 AC 位 被 清 “0”。在进行十进制数运算时需要十进制调整,此时要用 到AC位状态进行判断。
③ F0(PSW.5)——用户标志位。这是一个由用户自定义的标 志位,用户根据需要用软件方法置位或复位。例如用它来控 制程序的转向。
4. 堆栈类型
向上生长型和向下生长型。MCS-51的堆栈是向上生长的。
5. 堆栈使用方法
① 调用子程序或中断时,返回地址(断点)自动进栈。程序返回时, 断点再自动弹回PC。
② 使用专用的堆栈操作指令,进行进出栈操作。保护现场(PUSH); 恢复现场(POP)。
1.4 内部程序存储器
MCS-51单片机的程序计数器PC为16位,因此可以寻址的 地址空间为64KB。8051和8751单片机内部有4KB字节 ROM/EPROM程序存储器(0000H~0FFFH),1000H~FFFFH是外 部扩展程序存储器地址空间。而8052单片机内部有8KB ROM程 序存储器,同样可以扩展到64KB。在64KB程序存储器中,有6 个地址单元具有特殊功能。
3. 堆栈指示器
堆栈共有两种操作:进栈和出栈。
但不论是数据进栈还是出栈,都是对堆栈的栈顶单元进行的, 即对堆栈栈顶单元的写和读操作。为了指示栈顶地址,所以 要设置堆栈指示器SP。SP的内容就是堆栈栈顶的存储单元地 址。
MCS-51单片机由于堆栈设在内部RAM上,因此SP是一个8位 寄存器。实际上SP就是专用寄存器的一员。系统复位后,SP 的内容为07H,但由于堆栈最好在内部RAM的30H~7FH单元中 开辟,所以在程序设计时,应注意把SP值初始化为30H。SP的 内容一旦确定,栈顶的位置就确定了。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机存储器类型详解
分为两大类RAM和ROM,每一类下面又有很多子类:
RAM:SRAM
SSRAM
DRAM
SDRAM
ROM:MASK ROM
OTP ROM
PROM
EPROM
EEPROM
FLASH Memory
RAM:Random Access Memory随机访问存储器
存储单元的内容可按需随意取出或存入,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。

它的特点就是是易挥发性(volatile),即掉电失忆。

我们常说的电脑内存就是RAM的。

ROM:Read Only Memory只读存储器
ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM相反。

RAM和ROM的分析对比:
1、我们通常可以这样认为,RAM是单片机的数据存储器,这里的数据包括内部数据存储器(用户RAM区,可位寻址区和工作组寄存器)和特殊功能寄存器SFR,或是电脑的内存和缓存,它们掉电后数据就消失了(非易失性存储器除外,比如某些数字电位器就是非易失性的)。

ROM是单片机的程序存储器,有些单片机可能还包括数据存储器,这里的数据指的是要保存下来的数据,即单片机掉电后仍然存在的数据,比如采集到的最终信号数据等。

而RAM 这个数据存储器只是在单片机运行时,起一个暂存数据的作用,比如对采集的数据做一些处理运算,这样就产生中间量,然后通过RAM暂时存取中间量,最终的结果要放到ROM的数据存储器中。

如下图所示:
2、ROM在正常工作状态下只能从中读取数据,不能快速的随时修改或重新写入数据。

它的优点是电路结构简单,而且在断电以后数据不会丢失。

缺点是只适用于存储那些固定数据的场合。

RAM与ROM的根本区别是RAM在正常工作状态下就可以随时向存储器里写入数据或从中读取数据。

SRAM:Static RAM静态随机访问存储器
它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。

不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,所以在主板上SRAM存储器要占用一部分面积。

优点:速度快,不必配合内存刷新电路,可提高整体的工作效率。

缺点:集成度低,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率。

DRAM:Dynamic RAM动态随机访问存储器
DRAM 只能将数据保持很短的时间。

为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。

既然内存是用来存放当前正在使用的(即执行中)的数据和程序,那么它是怎么工作的呢?
我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的“动态”,
指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。

但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,借此来保持数据的连续性。

DRAM存储单元的结构非常简单,所以它所那个达到的集成度远高于静态存储器。

但是DRAM的存取速度不如SRAM快。

SSRAM:Synchronous Static RAM同步静态随机访问存储器
同步是指Memory工作需要时钟,内部的命令的发送与数据的传输都以它为基准,随机是指数据不是线性依次存储,而是由指定地址进行数据读写。

对于SSRAM的所有访问都在时钟的上升/下降沿启动。

地址、数据输入和其它控制信号均于时钟信号相关。

这一点与异步SRAM不同,异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。

SDRAM:Synchronous Dynamic RAM同步动态随机访问存储器
由以上的对SSRAM的分析可以了解SDRAM
MASK ROM:掩模只读存储器
是制造商为了要大量生产,事先制作一颗有原始数据的ROM或EPROM当作样本,然后再大量生产与样本一样的ROM,这一种做为大量生产的ROM样本就是MASK ROM,而烧录在MASK ROM中的资料永远无法做修改。

OTP ROM:one-time programmable ROM一次性可编程只读存储器
PROM:Programmable ROM可编程只读存储器
内容一经写入以后,就不可能修改了,所以只可以写入一次
EPROM:Erasable Programmable ROM可擦除可编程只读存储器
用紫外线照射进行擦除,高压编程写入(+21V或+12V)
EEPROM:Electrically Erasable Programmable ROM
电信号可擦除可编程只读存储器,用电信号擦除
FLASH Memory:闪存
电信号可擦除,现在很多单片机都是FLASH的
MASK ROM,FALSH ROM和OTP ROM的区别:
MASK ROM的单片机价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合;FALSH ROM的单片机程序可以反复擦写,灵活性很强,价格最高,是目前市场的主流;OTP ROM的MCU价格介于前两者之间,同时又拥有一次性可编程能力,适合既要求一定灵活性,又要求低成本的应用场合,尤其是功能不断翻新、需要迅速量产的电子产品。

OTP ROM和PROM的共同点是只能被设备编程器进行一次编程。

DDR:Double Date Rate 双倍速
常见的DDR SDRAM指的是双倍速率同步动态随机访问存储器
1、DDR SDRAM和SDRAM的差别:
SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR 内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。

DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。

2、DDR其实是DDR1,后续的还有DDR2和DDR3,DDR3能代替DDR2内存的原因:
频率:DDR3可以在800MHz至1666MHz下运行(也可更高),而DDR2是在533MHz至1066MHz 下运行。

一般来讲,DDR3是DDR2频率的两倍,通过削减一半读写时间给系统带来操作性能提高。

功耗:DDR3相比DDR2可以节约16%的电能,因为新一代DDR3是在1.5V电压下工作,而DDR2则是在1.8V下工作,这样可以弥补由于过多的操作频率所产生的高电能消耗,同时,减少的能量消耗可以延长部件的使用寿命。

技术:DDR3内存Bank增加到了8个,比DDR2提高了一倍。

所以相比DDR2预读取会提高50%的效率,是DDR2标准的两倍。

相关文档
最新文档