C51 定义数组

作者&投稿:蛮嘉 (若有异议请与网页底部的电邮联系)
c51 如何定义数组~

code 为关键字,表示asbp[]数组是存在在ROM空间中,是不可改变的(只读),主程序或函数可以读取里面的值但不能写。这是用于存放一些常量数据、字表一类所使用的。

unsigned char data asb[]
data表示:在片内RAM空间定义了一个无符号字符型数组asb[]
相应xdata 在片外RAM。
idata:在52单片机中的128-256字节RAM(片内)区别于SFR
bdata:51系列有16字节的位寻址区,有逻辑标志位时可定义在这里,可大大减少data的占用
还有pdata,个人觉得用得少

定义数组是不要加 code 和普通变量定义一样
#define uint unsigned int
#define uchar unsigned char
uchar a【10】;

就是定义数组,不过元素都是十六进制,0x后面加十六进制数表示用十六进制表示,前面的unsigned表示非负(无符号整形,只能储存正数)。

你的这定义的是一维数组,,后面得[]内没有十进制数,表示没有很明确的定义你这个数组的个数,比如,unsigned char shu[] 里面有15个数,,那么系统会自己定义它的个数位14个,,,其实跟直接定义unsigned char shu[14]是一样的。。。


临县19336108387: c51 如何定义数组 -
标庄牛黄: code 为关键字,表示asbp[]数组是存在在ROM空间中,是不可改变的(只读),主程序或函数可以读取里面的值但不能写.这是用于存放一些常量数据、字表一类所使用的.unsigned char data asb[] data表示:在片内RAM空间定义了一个无符号字符型数组asb[] 相应xdata 在片外RAM.idata:在52单片机中的128-256字节RAM(片内)区别于SFR bdata:51系列有16字节的位寻址区,有逻辑标志位时可定义在这里,可大大减少data的占用 还有pdata,个人觉得用得少

临县19336108387: C51里面怎么定义一个数组 这个数组前4位确定 后两位是变量a和b 单片机是8051 编译环境是Keil uVision2
标庄牛黄: 也就是这个数组总共的长度是6 unsigned char buff[6] = { 0 }; /// 定义数组,数组元素全部初始化为0 unsigned char a = 1, b = 2; buff[4] = a; buff[5] = b; /// 数组最后两个元素是变量a和b的值 至于前4个元素的值是什么,用同样地方法由自己设定

临县19336108387: C51中如何定义一个可以改变内容的数组? -
标庄牛黄: 定义数组是不要加 code 和普通变量定义一样 #define uint unsigned int#define uchar unsigned char uchar a【10】;

临县19336108387: C51 定义数组 -
标庄牛黄: 就是定义数组,不过元素都是十六进制,0x后面加十六进制数表示用十六进制表示,前面的unsigned表示非负(无符号整形,只能储存正数).

临县19336108387: 我想问问,我能否在单片机C51中定义一个空数组,然后向里面写值,改变值???????? -
标庄牛黄: 完全可以而且必要的,比如说在异步串行收发应用中,就是用一个数组来做数据缓存的.寻址方便不易出错.单片机的内存少的可怜,定义数组要根据需求来定义,数值不超过256,就要用unsigned char型的.比如unsigned char a [10],注意,后面的10是必要的.这是在做单片机程序,必须要有这个数量.定义了以后,使用起来a [x]就跟普通变量一样,x可以是定值0--9,也可以是变量(0--9以内),用以寻址.

临县19336108387: 在C51中,定义一个数组时,为什麽要用code这个词,而不用data或其它的呢?如uchar code table[]={..}. -
标庄牛黄: 因为单片机的RAM有限,所以尽量把不变的数组都存在ROM中,在这里CODE就是起这个作用.

临县19336108387: c51如何定义一个中文数数组或者变量. -
标庄牛黄: 汉字是由两个字节组成的,所以定义成一维数组是不行的,可以定义成字符串变量,比如:unsigned char *str="12345您好";

临县19336108387: 急!!请用C51在ROM定义一个5元素的无符号字节数组Array,数组内容分别为:1,2,3,4,5; -
标庄牛黄: 1. unsigned char code Array[5]={1,2,3,4,5}; 2. void Timer1Init(void) //20毫秒@12.000MHz { TMOD &= 0x0F; //设置定时器模式TMOD |= 0x10; //设置定时器模式TL1 = 0xE0; //设置定时初值TH1 = 0xB1; //设置定时初值TF1 = 0; //清除TF1标志TR1 = 1; //定时器1开始计时 }

临县19336108387: c51中的数组
标庄牛黄: 你提的问题不明白啊...... 在C51中,C语言的那些规则完全符合,数组也可以定义啊.. main() { unsigned int a[4]={....} ...... } 大括号中可以赋值,后面的程序可以直接使用a[]数组中的值;;; 不知道你是什么问题???

临县19336108387: 单片机C51中二维字符串数组怎么定义?是a[2][2]={"我","我"};这样啊 -
标庄牛黄: 不可以,一个汉字有2个字节,每个字符串还必须有一个字节终止符/n,所以你的这个数组应该建立成这样a[2][3]={"我","我"};

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网