⑴ 51单片机能不能定义位数组 比如:bit i;//定义一个位变量i
不可。
位寻址,只能使用直接寻址。
就像特殊功能寄存器一样,不可用数组。
⑵ 51单片机中如何定义比较大的数组变量 比如 char[1024][10]
定义这种大的数组,你首先得有这么大的RAM才可以,不然肯定不好用。内部地址空间就别想了,肯定是放在外部。
如果是常数数组,可以定义到代码里面,code char cc[1024][10],这种程序只能读,不能改,像字库点阵一般用这种。
如果有足够的外部RAM,xdata char xx[1024][10]; 这是把数组定义到外部RAM,需要用MOVX访问。
⑶ 51单片机定义数组
不确定你如何用数线呢?51单片机不支持动态数组,本身只有那么一点儿内存,你必须先明确需要多大数组。
一个办法是声明足够用的数组,比如text[16],并在程序中判断不要超出数组范围。
⑷ c51单片机,如何定义可变长数组
用int定义长数组是16位的,没有问题的,可以定义的,也没有限制的。下面的程序是定义了30元素的。用单步执行来查看数组的值,用P1口显示高8位,用P0显示低8位,即可以赋值,也可以输出值的,没有问题,这个程序测试通过的。
#include <reg52.h>
int number[30];
unsigned char i;
void main()
{
for(i=0;i<30;i++)
{
number[i]=256*i+2*i;
}
while(1)
{
for(i=0;i<30;i++)
{
P0=number[i]%256;
P1=number[i]/256;
}
}
}
⑸ 单片机数组的定义和使用方法
单片机数组的定义和使用方法,单片机数组的定义就是说他是通过一个单机片组成个主板,然后使用方法是相对来说比较简单的,然后可以参照使用说明来操作
⑹ 单片机C语言数组最多能定义多少个元素
原则上,C语言中数组所包含的元素个数理论上多少都行,如果要开一个很大的数组,比如int arrayint[10000][10000];在main()中声明该数组就会使应用程序退出,但是如果你把该数组的声明放在所有函数体之外,让它变成一个全局变量,就没有任何限制了,你想开多大的数组都可以。
但在单片机c语言程序中,实际上还是有限制的,原因在于单片机的存储空间是有限的,数组最多能有几个元素取决于单片机型号。
你定义了一个全局的数组,unsigned char型的数组,最多只能有93个元素,说明你还有其他变量占用存储空间。如果需要一个512个元素的数组,用的单片机是stc15f2k60s2,可在定义数组时进行XDATA声明,将数组存储于外部RAM当中。
⑺ 单片机如何正确定义一维数组
看你需要定义什么类型的数组,
8位
的是
char
array[20];
16位的是
int
array[20];
20表示数组的大小
赋值的话可以
array[0]=100;
表示
数组的第一个元素
的值=100
⑻ 51单片机如何设置数组变量
因为,51单片机的位地址,只能直接寻址,不能间接寻址。
所以,51单片机的位地址,就不能用数组来进行操作。
不过,可以利用逻辑运算,进行位操作。
先定义一个数组:a[8] = [128, 64,...8, 4, 2, 1];
然后:P1 |= a[3]; ,这就是令 P1.3 置一。
其实,采用数组的方法,并非是最简单的。
直接:P1 |= (1 << 3); ,就可以了。
⑼ 怎么确定STC单片机可定义数组的大小
试验一下 unsigned int pdata Data[90],
指定存储类型为pdata,用寄存器间接寻址才能访问高128字节的ram