A. msc-51单片机的存储器空间的划分为哪五类
msc-51单举橘片机的存储区划分五类,在用C51写程正缓团序时,应声明这五类存储区类型:
1. 内部RAM数据存储区,data类型,为默认的类型,可以省略。
2. 间址存储区,idata 类型。
3. 位存储区,bdata 类型。
4. 外部数据存储区,xdata 类型。
5. 程序存储区,code 类型。哪指
B. C51的变量定义中,为什么比基本C语言多出个存储类型
基本C语言程序是在电脑上运行的,而电脑上的内存只有一类。但是,单片机的内存分几类,即数据存储器的类型有分类,所以,声明变量时要定义存储类型,就是棚租为了链稿兆区分存放在什么存储器中。但是,通常默认的就是内部RAM存储敬败器,存储类型可省。常量数据存放在ROM中,存储类型code,而xdata类型需要扩展外部数据存储器才行。
C. 在单片机c51中,变量的存储类型
是指data idata xdata code吧
分别是存于片内低128字枣悄节,高128字节,片外RAM中,团带和程序存储器中凳或渣
D. c51查表操作使用的数组存放在
ROM跟RAM 。
在全局定义的数组: eg: char a [3]={0}; 此时数组a的存储位搭搭岩置为RAM。为什么全局变量会存储到RAM里?因为全局变 量在程序里面随时可能会被修改,比枝衡如自己调用,所以不能存储到ROM里。
每个变量可以用表1中所列的存储器类型明确地分配到指定的存储空间。表1 C51存储类型与80C51存储空间的关系对内部数据存储器的访问比知御对外部数据存储器的访问快许多。
E. C51单片机存储器类型有哪些
c51存储器类型有bit
sbit
data
xdata
bdata
pdata
sfr
code等,可能不全面有遗漏
对应的物理存储器是:
bit,即位数据:数据存储器位寻址区,即20h~2fh的范围,共16个字节,16*8=128个位,位地址00h~7fh,连续的。
sbit:特殊功能寄存器中的位数据:只有能够被8整除的那些特殊功能寄存器中的各个位才能被称为sbit,位地址80h~ffh,不连续的,间断的。
data:数据区,对51为00h~7fh共128个字节,对52为00h~ffh,共256个字节,用mov寻址,前128用直接寻址或寄存器(r0~r7)寻址,后128用r0、r1间接寻址。
xdata:外部数据区,0000h~ffffh连续,用dptr间接寻址(movx指令)
bdata:位寻址去的字节,20h~2fh
sfr:特殊功能寄存器(80h~ffh),直接寻址
pdata:外部数据区,p2口保持数据,用r0r1间接寻址(movx指令)
code:程序存储器,用movc指令只读
F. C51单片机应当将使用频繁的变量置于片外还是片内存储器,采用什么存储类型
C51单片机应当将使用频繁的变量置于片外还是片内存储器,采用什么存储类型?
G. C51系统中大容量数据存储方式
如果是常量,一般是存在ROM中和昌告程序放在一起,只需要将这个常量定义成code存储类型,如果这个常量数组很大,也可以存在外部NVM中顷瞎,例如FLASH,EEPROM等等。
当需要大容量变量时,一般是放在FLASH、雀迅空EEPROM中。
H. c51的存储 类型 有几种他们分别表示的存储区域是什么
data 直接寻址区
idata 间接寻址区
xdata 外部寄存器
pdata 分页寻址区
code 程配岁序存储区
bdata 位寻培运睁址悄升区
I. Keil c51 三种存储模式的作用是什么啊
存储模式只是规段陪定默认的存储区:\x0d\x0asmall :默认变量在内部RAM中,即data\x0d\x0acompact:默认变量在外部分页的256字节RAM中,,即pdata\x0d\x0alarge:默认变量在外部64KRAM中,即xdata\x0d\x0a 如果,char Xdata i这样显式地规判燃巧定了变量的存掘键放区,则以定义为准。不受存储模式影响。
J. 关于c51存储类型和其数据长度,有点不懂,求指点
你上面的表格,可以说,是完全上的逻辑错误。
C语言,一个数据类型的长度只有以下几种:
unsigned char 或者 char 固定8位的长度,即一个字节
unsigned short 或者 short 固定16位长度,即两个字节
unsigned long 或者 long 固定 32位长度,即四个字节
float固定32位长度,即四个字节
double ,固定64位长度,即8个字节,但是在C51里,是32位,因为C51是把double转换成float来编译的。
另外还有union和struct,长度是不固定的。
在C51里扩展了bit类型,1个位的长度
长度,只取决与以上类型,与data,idata,bdata,xdata,pdata没有关系,所以,你上面的表格是错误的。
而那些data,idata,bdata,xdata,pdata等等,是变量或者常量的存储空间。
51单片机有以下几个内存模块组成:
ROM或者Flash就不说了。
RAM有------内部RAM的低128字节(00-7F)
-------内部RAM的高128字节(80-FF)---【89C51单片机没有这一段空间】
-------特殊功能寄存器(SFR)(80-FF)
------外部RAM 64K(0000-FFFF)
code表示是在Flash(ROM)中,是只读的。
data 表示的是内部RAM的低128字节,可以直接寻址,速度比较快
idata 表示内部RAM高128字节,只能是间接寻址,速度比data里的数据要慢。
pdata是外部RAM,也就是xdata中的前256个,也就是外部RAM中的00--FF,只能MOVX 间接寻址,但是,因册档为可以用R0做为指针,所以,速度与idata是一样的。
xdata是外部RAM的全部,也可以包括前256个,也就是说,者冲外部RAM前256个,可以用pdata和xdata定义,都行,只能是MOVX 和 DPTR联合寻址,速度最慢。
详细内容,参考下面的链接:
http://..com/question/400032408?&oldq=1
举例:
data unsigned char a;//---放州嫌乱在内部RAM空间的低128字节,长度是8位
data unsigned short a;//---放在内部RAM空间的低128字节,长度是16位
data unsigned long a;//---放在内部RAM空间的低128字节,长度是32位
idata unsigned char a;//---放在内部RAM空间的高128字节,长度是8位
idata unsigned short a;//---放在内部RAM空间的高128字节,长度是16位
idata unsigned long a;//---放在内部RAM空间的高128字节,长度是32位
pdata unsigned char a;//---放在外部RAM空间的低256字节,长度是8位
pdata unsigned short a;//---放在外部RAM空间的低256字节,长度是16位
pdata unsigned long a;//---放在内部RAM空间的低256字节,长度是32位