精华内容
下载资源
问答
  • 单片机程序存储器ROM

    2020-08-04 00:26:01
    单片机程序存储器英文简称ROM。
  • 文章介绍了单片机程序存储器ROM。
  • 本文主要介绍了关于单片机程序存储器ROM,希望对你的学习有所帮助。
  • PIC16C5X系列单片机内部有一定容量的程序存储器和数据存储器,程序存储器的字节宽度为12位,用于存放用户程序和数据表格。
  • 一、单片机中存储器结构 哈弗结构:程序空间与数据空间是分开的 冯诺依曼结构:程序空间与数据空间统一编址 二、ROM,RAM ROM程序存储器:

    一、单片机中存储器结构
    哈弗结构:程序空间与数据空间是分开的
    冯诺依曼结构:程序空间与数据空间统一编址

    二、ROM,RAM

    ROM程序存储器:
    先了解基本储存器容量关系
    1k=1024B( byte)=4096b( bit)

    RAM数据存储器
    data:0x00-0x7f128个ram可以用a寄存器直接读写,速度最快生成代码最少

    idata:指前面0x00-0xff的256个ram包含 data,只是访问数据方法类似c语言指针访问

    STC89C52 共有 512 字节的 RAM,是用来保存数据的,比如我们定义的变量都是直接存在 RAM 里边的。(变量由数据赋值处理在实际代码编写是一个确切不超过所定义变量的大小数值范围,在存储器器中存储的就只是一个变量)

    但是单片机的这 512 字节的 RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此我们在使用的时候,也要注意一些问题。
    51 单片机的 RAM 分为两个部分,一块是片内 RAM,一块是片外 RAM 地址从 0x00H~0x7F 共 128 个字节,而现在我们用的 51 系列的单片机都是带扩展片内 RAM 的,即 RAM 是从 0x00~0xFF 共 256 个字节。片外 RAM 最大可以扩展到 0x0000~0xFFFF 共 64K 字节。这里有一点大家要明白,片内 RAM 和片外 RAM 的地址不是连起来的,片内是从 0x00 开始,片外也是从 0x0000 开始的。
    还有一点,片内和片外这两个名词来自于早期的 51 单片机,分别指在芯片内部和芯片外部,但现在几乎所有的 51 单片机芯片内部都是集成了片外 RAM 的,而真正的芯片外扩展则很少用到了,虽然它还叫片外 RAM,但实际上它现在也是在单片机芯片内部的,我们的 STC89C52 就是这样。以下是几个 Keil C51 语言中的关键字,代表了 RAM 不同区域的划分,大家先记一下。
    data:片内 RAM 从 0x00~0x7F
    idata:片内 RAM 从 0x00~0xFF
    pdata:片外 RAM 从 0x00~0xFF
    xdata:片外 RAM 从 0x0000~0xFFFF

    展开全文
  • 单片机程序存储器英文简称ROM。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速
  • 今天小编为大家整理了关于存储IC的一些基础知识,文章中主要讲述了FLASH程序存储器的常见编程方法。希望对想要了解存储IC编程的读者们有所帮助。
  • 程序存储器与数据存储器

    千次阅读 2014-07-26 01:55:44
    单片机的存储空间有两种基本结构。一种是普林斯顿结构(Princeton),将...另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)结构。CPU用不同的指令访问不同的存储器空间。由于单片机实

    单片机的存储空间有两种基本结构。一种是普林斯顿结构(Princeton),将程序和数据合用一个存储器空间,即ROM和RAM的地址同在一个空间里分配不同的地址。CPU访问存储器时,一个地址对应惟一的一个存储单元,可以是ROM,也可以是RAM,用同类的访问指令。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)结构。CPU用不同的指令访问不同的存储器空间。由于单片机实际应用中“面向控制”的特点,一般需要较大的程序存储器。目前,包括MCS-51和80C51系列的单片机均采用程序存储器和数据存储器截然分开的哈佛结构。

    ① 数据存储器(RAM)

    在单片机中,用随机存取的存储器(RAM)来存储数据,暂存运行期间的数据、中间结果、缓冲和标志位等,所以称之为数据存储器。一般在单片机内部设置一定容量(64B~256B)的RAM,并以高速RAM的形式集成在单片机内,以加快单片机的运行速度。同时,单片机内还把专用的寄存器和通用的寄存器放在同一片内RAM统一编址,以利于运行速度的提高。对于某些应用系统,还可以外部扩展数据存储器。

    ② 程序存储器(ROM)

    单片机的应用中常常将开发调试成功后的应用程序存储在程序存储器中,因为不再改变,所以这种存储器都采用只读存储器ROM的形式。

    单片机内部的程序存储器常有以下几种形式:

    l          掩膜ROM(Mask ROM)  它是由半导体厂家在芯片生产封装时,将用户的应用程序代码通过掩膜工艺制作到单片机的ROM区中,一旦写入后用户则不能修改。所以它适合于程序已定型,并大批量使用的场合。8051就是采用掩膜ROM的单片机型号。

    l        EPROM  此种芯片带有透明窗口,可通过紫外线擦除程序存储器的内容。应用程序可通过专门的写入器脱机写入到单片机中,需要更改时可通过紫外线擦除后重新写入。8751就是采用EPROM的单片机型号。

    l          ROMLESS  这种单片机内部没有程序存储器,使用时必须在外部并行扩展一片EPROM作为程序存储器。8031就是ROMLESS型的单片机。

    l         OTP(one time programmable)ROM  这是用户一次性编程写入的程序存储器。用户可通过专用的写入器将应用程序写入OTPROM中,但只允许写入一次。

    l         Flash ROM(MTP ROM)闪速存储器  这是一种可由用户多次编程写入的程序存储器。它不需紫外线擦除,编程与擦除完全用电实现,数据不易挥发,可保存10年。编程/擦除速度快,4KB编程只需数秒,擦除只需10ms。例如AT89系列单片机,可实现在线编程,也可下载。这是目前大力发展的一种ROM,大有取代EPROM型产品之势。


    在硬件上,通过不同的片选信号来区别。因为程序存储器只读的,所以只需要一根选通信号——PSEN(程序选择使能)。

    而数据存储器是可读写的,所以需要两根选择信号:RD(读)跟WR(写)。

     

     

    在软件上,通过使用不同的指令来访问ROM跟RAM区。访问ROM时使用MOVC指令,而访问RAM时,使用MOVX指令。

    单片机会自动根据指令的不同,来产生不同的选通信号。

     

    时序:先在P0上产生地址低八位,P2上产生高八位地址。然后发出ALE信号,通知锁存器将P0低八位地址锁存。然后,P0口上地址消失(P2上的地址仍然保持)。如果是读操作,则将P0口置为输入,然后发出RD信号。如果是写操作,则将要输出的数据放到P0口上,再发出WR信号。

    展开全文
  • 因此对于PIC16C52程序存储器在1页之内,而对于PIC16C54和PIC15C55程序存储器容量为1页,PIC16C56和PIC16C57 的容量则分别为2页和4页。页面地址由状态寄存器f3的第5位和第6位(PA0、PA1)确定。程序转移时,在本页内...
  • 51单片机程序存储器扩展
  • 程序存储器编址及程序执行顺序

    千次阅读 2016-11-23 13:42:23
    对于内部有ROM的芯片,根据情况也可以扩展外部ROM,虽然内、外程序存储器总容量可以超过64KB,但其有效存储空间只有64KB,内、外程序存储器逻辑上将共用64K存储空间。片内程序存储器地址空间和片外程序存储器的低...

            对于内部有ROM的芯片,根据情况也可以扩展外部ROM,虽然内、外程序存储器总容量可以超过64KB,但其有效存储空间只有64KB,内、外程序存储器逻辑上将共用64K存储空间。片内程序存储器地址空间和片外程序存储器的低地址空间重叠。51子系列重叠区域为0000H~0FFFH,52子系列重叠区域为0000H~1FFFH。

           单片机在执行指令时,对于低地址部分,是从片内程序存储器取指令,还是从片外存储器取指令,是根据单片机芯片上的片外程序存储器选用引脚EA电平的高低来决定的。单片机复位后,如EA为低电平,则从片外程序存储器开始取指令并执行;EA接高电平,则从片内程序存储器取指令执行。对于8031和8032芯片,EA只能保持低电平,指令只能从片外程序存储器取得。


            当单片机上电复位后EA为1时,程序从片内程序存储器0000H单元开始执行。当执行到最后的内部ROM单元后,转到下一个拥有相邻地址的外部ROM单元中执行,而不是从外部ROM单元的0000H处开始执行。如8051有4K内部ROM,地址空间0000H到0FFFH。如果内部程序执行到0FFFH后,下面将从外部ROM的1000H处取指令继续执行,尽管外部扩展的ROM可能地址空间是000H~FFFFH。要注意的是,在内部用到最高位地址进行无缝连接而不是重合。当单片机上电复位后EA为1时,则程序将从片外程序存储器0000H处开始执行,在任何时刻都不会执行到内部程序存储器中。

    展开全文
  • 要保证系统正常工作,系统中需要有合法的向量表和合法的程序存储器,这样处理器才不会执行恶意软件代码。 要实现这个目的,Flash存储器一般是从地址0开始的。不过,在用户编程以前,现在市场上的微控制器产品的Flash...

    Cortex-M0处理器的启动

    当Cortex-M0处理器从复位中启动时,它会首先访问0地址的向量表,从而取得MSP的初始值和复位向量,然后它就可以从复位向量开始执行程序。要保证系统正常工作,系统中需要有合法的向量表和合法的程序存储器,这样处理器才不会执行恶意软件代码。

    要实现这个目的,Flash存储器一般是从地址0开始的。不过,在用户编程以前,现在市场上的微控制器产品的Flash存储器中可能没有任何程序。为了保证处理器可以正确地启动,有些基于Cortex-M0的微控制器含有一个Boot loader,这是个位于微控制器芯片上的一小段程序,它会在处理器上电后执行并跳转,而且如果Flash存储器已编程的话,它会跳转到Flash中的用户程序执行。Boot loader 由芯片供应商预先编程,有时它位于片上Flash存储器并且与用户程序是分离的(这样用户更新程序也不会影响到Boot loader), 而其他情况下Bootloader则会位于和可编程程序存储器分离的非易失性存储器中(防止用户意外擦除Boot loader)。

    当Bootloader存在时,微控制器通常会在系统总线上使用一种存储器映射切换特性,也就是“重映射”(remap)。存储器映射的切换由硬件寄存器控制, Boot loader执行时会设置这些寄存器。系统可以使用多种重映射方案,一种常见的处理是,Boot loader会在上电阶段通过地址别名被重映射到存储器的开头(见图7.4)。

    在这里插入图片描述
    Bootloader可能还具有其他特性,比如硬件初始化(时钟和PLL设置)、多种启动配置、固件保护,甚至可以用作Flash擦除工具。系统总线上的存储器映射特性并不是Cortex-M0处理器的一部分,因此,不同微控制器供应商产品的设计不同。ARM微控制器使用的另外一种重映射特性为,SRAM块可以重映射到地址0,上(见图7.5)。微控制器使用的非易失性存储器如Flash等要比SRAM慢,如果微控制器运行在较高的时钟频率下,Flash存储器中的程序在执行时就会需要插入等待状态。而将SRAM重映射到地址0后,程序就可以被复制到SRAM并以最快速度执行,这样会避免取向量表时出现等待,否则会增加中断等待的时间。

    在这里插入图片描述

    展开全文
  • 说明:单片机片外程序存储器数据存储器操作命令与通常所说的存储器不同,和I2C总线的AT24C02不同,SPI协议的也不同,是指采用专用接口电路,应用P0口P2口地址总线和控制线的“三总线”方式访问的。关于编程的时候,...
  • 程序存储器(program storage): 在计算机主存储器中专门用来存放程序,子程序的一个区域。 指令寄存器(IR):用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再...
  • MCS51 程序存储器(ROM)

    千次阅读 2019-03-02 09:37:58
    程序存储器(ROM) 作用:存放程序、表格或常数,具有非易失性 特点:片内ROM与片外ROM可有2种组合方案 方案1 : 4 KB以内的地址在片内ROM, 大于4KB的地址在片外ROM中(图中折 线),两者共同构成64KB空间; 方案2 ...
  • 程序存储器的分段

    2013-12-06 13:33:55
    程序存储器主要分为5锻:  1.text(代码段)  此段为代码执行段,禁用了写入权限,因为这个段不存储变量,同时这个段的大小是固定的。  2.data(全局变量段)  此段为数据段。存储全局变量,这个区域的变量在使用...
  • 程序存储器 #define tmpBuffer[64] //是要写入的数据 #define ProgrammingBuffer[64] //临时缓存 //写FlashBlock(一个块为64字节) void WriteFlashBlock(void) { uint8_t i; // 1. Read the 64 bytes ...
  • MCS-51单片机外程序存储器超大容量扩展及使用方法
  • 51单片机程序存储器和数据存储器

    万次阅读 多人点赞 2017-12-14 14:34:37
     为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定一条指令的地址。程序计数器PC正是起到了这种作用,所以通常又称其为指令地址计数器。在程序开始执行前,必须将其起始地址。即程序的第一条指令所在的...
  • 程序存储器低端的一些地址被固定地用作特定程序的入口地址: (1) 0000H——单片机复位后的程序入口地址。 (2) 0003H——外部中断 0 的中断服务子程序入口地址。 (3) 000BH——定时/计数器 0 的中断服务子程序入口...
  • NIOS中各程序存储器的关系 在FPGA开发板上都有几种不同的存储器,比如SDRAM,FLASH,EPCS,还有内部onchip memory,这几种存储器间是如何通信或者构建一个系统。该如何搭配他们呢,不少人都问到这个问题。在这里我...
  • 51单片机程序存储器和数据存…

    万次阅读 2014-08-19 16:26:49
    原文地址:51单片机程序存储器和数据存储器作者:SUN_403 为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定一条指令的地址。程序计数器PC正是起到了这种作用,所以通常又称其为指令地址计数器。在程序...
  • AVR GCC 程序存储器 API

    2010-10-15 16:52:00
    程序存储器 如果要将数据(如常量,字符串,等等)放在FLASH里,用户需要指明数据类型__ATTR_PROGMEM__。为了方便使用,AVR-GCC定义了一些更直观的符号,如下表所示。 类型数据定义 ...
  • MCS-51单片机的内部程序存储器

    千次阅读 2010-01-07 17:50:00
    MCS-51的程序存储器用于存放编好的程序和表格常数。8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器。MCS-51的片外最多能扩张64KB程序存储器,片内外的ROM是统一编址的。 端保持高电平时,8051的...
  • 为什么屏蔽一条简单的判断语录,程序存储器少了400多字节?![图片说明](https://img-ask.csdn.net/upload/201705/03/1493780140_101391.png)![图片说明]...
  • AVR-GCC程序存储器api

    千次阅读 2008-10-24 10:31:00
    程序存储器如果要将数据(如常量,字符串,等等)放在FLASH里,用户需要指明数据类型__ATTR_PROGMEM__。为了方便使用,AVR-GCC定义了一些更直观的符号,如下表所示。类型数据定义typedef void PROGMEM prog_void ...
  • 存储器间接寻址方式The Program Memory Addressing mode is used in branch instructions. These branch instructions are instructions which are responsible for changing the regular flow of the instruction ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,494
精华内容 7,797
关键字:

程序存储器