① 单片机内的ROM和RAM如何储存程序与数据
ROM一般用户只读不存(部份FLASH单片机的
ROM可以由特殊
指令
进行先擦除,再改写存储),ROM掉电后数据不会丢失;RAM在上电后可由用户随意存取,但掉电后数据丢失;
② 单片机中的ROM与RAM
ROM里装的是二进制码,不是源代码。#include 这些宏定义已经被编译器编译为所需的汇编代码放进去的。
code 一般用来定义数组或常数。比如你声明个数组后面要用,但这个数组的内容不会改变。那就可以放到ROM里节省RAM。
③ 单片机中rom与ram是怎么相互联系的,程序写入rom后如何开始执行
ROM是程序存储器,单片机的执行程序都存在里面,断电后里面的程序不会丢失。RAM是数据存储器,CPU在执行任务时将数据暂时存储在里面,断电后里面的数据就没有了。ROM和RAM是通过CPU建立联系的
④ 单片机的RAM和ROM是什么意思
打个比方吧!假如要搞个什么活动,有两块地方,一个叫ROM.一个叫RAM,和一个老大叫cpu。其中人们规定rom这个地方的所有东西你老大cpu都不能改动它,里面放着活动的方案,也就相当于你编写的程序,cpu必须要按照这个方案去主持搞这个活动。这个地方允许放一些其它东西,〔单片机中也就是数据!〕。当这个活动开始的时候,老大cpu就会到rom这里复制里面的全部内容〔有特别标明的除外,一般是不常用的数据〕放到RAM里面运行。当需要用要标明的不常用数据时,老大根据数据的编号,也就是地址,去读回来那个数,再继续运行!当你要终止这次活动时,ram里面的东西,就全部扔掉,不保留。下次再需要的时候,再去rom这个地方复制回来,从新开始运行。
寄存器,要说功能的话,每个寄存器都有它的功能!建议你搜索一下单片机寄存器功能,有很多的出来。他们介绍的都很好!在这里我就不说了打字累啊。呵呵
⑤ [急]单片机编程 把ROM里的复制到RAM
啥公司啥型号型号的片子?多少位的?用汇编还是用c?
学电子的吧,搞单片机编程一定要把硬件搞清楚。
⑥ 51单片机中rom和ram
不是P0和P1,而是P0(地址低8位)和P2(地址高8位),这是实地址空间,也就是可以扩展到64K,物理RAM或ROM都可以达到64K,他们是相互独立的,访问ROM和RAM的指令分别是MOVC和MOVX,所以不会造成混乱。算法就如你所说2的16次方。
⑦ 单片机 ram 中执行代码的 如何链接
单片机的程序一般默认从Fash启动。要想在RAM执行程序,首先得单片机支持,一般只要Flash和RAM是统一编址的都可以在RAM运行程序。
程序的启动一般都是从一个固定地址(厂家规定)启动的,而这个地址一般都不在RAM地址范围内。因此常用的做法是在单片机厂家规定的启动的地址开始处预先烧录一段启动代码,这就是我们常说的BootLoader,然后再在BootLoader中按照单片机的运行规则跳转到RAM中代码(我们一般称为App程序)的起始地址。
链接的不同之处就是ROM模型,一般,按照单片机对应的开发工具,默认都是将ROM的起始地址设置到了厂家规定的启动地址处,要将程序编译到其他地址,只需要找到这个ROM的配置修改其起始地址和空间大小即可。例如Keil里面的Target页面或者sct文件,还有DSP中的link文件……
根据上述说明可知想要在非厂家规定的地址跑程序,需要有一个BootLoader引导程序(如果是使用在线仿真器仿真跑可以不要):
App程序:链接到实际需要的地址(可能是Flash也可能是RAM),如果为RAM要注意掉电后程序丢失;
BootLoader程序:链接到厂家规定的启动地址,在BootLoader中再通过软件跳转到App的地址。
⑧ 单片机程序运行要不要把程序从ROM中读入到RAM中
不要。但是ram中肯定会保留与当前程序运行状态有关的寄存器(SFR,对于ST89C52应该就是0x80~0xFF的单元)。
对于51系列或者类51的单片机,程序空间和数据空间是分开的,并不存在由rom加载到ram的问题。
这么说吧,ST89C52可以支持到64K的程序存储,如果都加载到外部RAM里,那RAM肯定是放不下了。
data是内部直接寻址的RAM,idata是内部间接寻址的RAM
⑨ 51单片机一些RAM与ROM之间的数据转移代码
d如何将片内RAM中某单元数据传送至片内RAM另一单元?使用MOV指令;MOVDirece,Direct
如何将外部RAM某单元数据传送至片内RAM某一单元?使用MOVX指令和MOV指令
如何将外部ROM某单元数据传送至片内RAM某一单元?使用MOVC指令和MOV指令
如何将外部ROM某单元数据传送至片外RAM某一单元?使用MOVC指令和MOVX指令。
⑩ 单片机有 rom 和 ram,rom是存放指令,ram是数据,我想知道程序代码是写进哪里的
程序代码经过编译、下载后,是放到ROM里面,这样掉电才不会丢失,而存放数据的RAM分为两部分,单片机自己运行需要一些寄存器,其余部分被程序中程序设计者定义的变量使用了。