导航:首页 > 操作系统 > 51单片机数组个数

51单片机数组个数

发布时间:2022-07-22 02:47:56

Ⅰ 在stc51单片机中用数组的问题

我随便写了一点,你看看
void
main()
{
int
unm;
int
a[10]={0,1,2,3,4,5,6,,7,8,9};
sbit
key=P1^0;
if(key==0)
{
delayms(10);
//去抖动
if(key==0)
num++;
if(num==10)
num=0;
}
SBUF=a[num];
//将数传到串口
}

Ⅱ 51单片机定义数组

不确定你如何用数线呢?51单片机不支持动态数组,本身只有那么一点儿内存,你必须先明确需要多大数组。
一个办法是声明足够用的数组,比如text[16],并在程序中判断不要超出数组范围。

Ⅲ 51单片机 数组

你给的信息太有限, 我需要知道你的单片机的具体型号,还有你创建工程的属性。
我先猜一下:
你用的是STC增强型52单片机,除了自带的256字节内存还有256字节的扩展内存,并且你在工程属性里面选择的是大内存模式(Large: variables in xdata )这样在你定义内存的时候如果不加data,idata,pdata关键字的话,默认就是xdata。这用的是外部RAM,是通过P0和P2口用总线模式扩展芯片得到的,可访问64K的内存空间。但是STC增强型52内置了256字节(某些版本会更大,我猜你用的是256的),默认访问方式一样,但是被STC集成到了片内。你定义了一个a[160]一个b[160],加起来远远超过256.按你的说法,有用的是160+48(这里你又有一个表达错误,a[0]~a[47]应该是48个。)=208个,算上你其他地方定义的变量,应该满256个,那么a[48]~a[159]是怎么出现的呢,理论上是从P0口读回来的。但是这里你还有一个不严谨的地方,不知道你有没有证明到底是a[48]~a[159]全部成为了0xFF还是b[48]~b[159]早早的就成为了0xFF。
处理办法一:内存模式先改成small:variables in data . 这时你应该都无法通过编译
然后改变这句话:void 2(char a[160]) 变成 void 2(char pdata a[160])
方法二:直接改 char b[160]= 变成 char code b[160]=

试试看。
如果猜错了,请别笑话我。

Ⅳ 51单片机关于数组处理的问题

unsigned char code ASII_DATA[14][7]={//这个是举例的14x7的二维素组,你想用就把14改成100,7改成6就行啦!
//-
{0X1F,0X1F,0X1F,0X11,0X1F,0X1F,0X1F},

//,
{0X00,0X00,0X00,0X00,0X00,0X00,0X00},
///
{0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F},
//0
{0X11,0X0E,0X0C,0X0A,0X06,0X0E,0X11},
//1
{0X1B,0X13,0X1B,0X1B,0X1B,0X1B,0X11},
//2
{0X11,0X0E,0X1E,0X1D,0X1B,0X17,0X00},
//3
{0X11,0X0E,0X1E,0X11,0X1E,0X0E,0X11},
//4
{0X19,0X15,0X0D,0X0D,0X00,0X1D,0X1D},
//5
{0X00,0X0F,0X0F,0X01,0X1E,0X1E,0X01},
//6
{0X11,0X0E,0X0F,0X01,0X0E,0X0E,0X11},
//7
{0X00,0X1E,0X1E,0X1D,0X1B,0X17,0X17},
//8
{0X11,0X0E,0X0E,0X11,0X0E,0X0E,0X11},
//9
{0X11,0X0E,0X0E,0X10,0X1E,0X0E,0X11},
//:
{0X1F,0X1B,0X1B,0X1F,0X1B,0X1B,0X1F}};
//读法
for(i=0;i<100;i++)
{
for(j=0;j<6;j++)

A= ASII_DATA[i][j];
}

Ⅳ 一个单片机能放下多少个数组

= =看你什么单片机,里面RAM ROM大小

Ⅵ 在C51单片机中两个数组有什么区别。

很可惜,c51并不支持位数组。
你先说明你这么定义的目的,然后才能有相应的解决方案。

Ⅶ 单片机C语言数组最多能定义多少个元素

  1. 原则上,C语言中数组所包含的元素个数理论上多少都行,如果要开一个很大的数组,比如int arrayint[10000][10000];在main()中声明该数组就会使应用程序退出,但是如果你把该数组的声明放在所有函数体之外,让它变成一个全局变量,就没有任何限制了,你想开多大的数组都可以。

  2. 但在单片机c语言程序中,实际上还是有限制的,原因在于单片机的存储空间是有限的,数组最多能有几个元素取决于单片机型号。

  3. 你定义了一个全局的数组,unsigned char型的数组,最多只能有93个元素,说明你还有其他变量占用存储空间。如果需要一个512个元素的数组,用的单片机是stc15f2k60s2,可在定义数组时进行XDATA声明,将数组存储于外部RAM当中。

Ⅷ 51单片机C语言数组问题

值是不确定的,不同的编译器会用不同的值填充未知的内存区域,而且你确实不必在意到底的是什么值,毕竟数组越界本身就不该发生

Ⅸ 51单片机 汇编 数组

用伪指令DB来定义
比如我想定义一个数码管0~9的断码可以这样定义
MOV DPTR,#TAB
MOVC A,@A+DPTR

TAB: DB 06H,5BH,4FH,73H,66H,6DH
DB 7DH,3FH,07H,7FH,6FH,40H
想显示什么数时只要把数放到A里面就可以了

阅读全文

与51单片机数组个数相关的资料

热点内容
加密门禁如何写到小米手机 浏览:163
java静态方法的多线程 浏览:259
CAXAXp下载打不开要加密 浏览:238
开锁pdf 浏览:83
python可视化奶茶 浏览:218
命令方字幕 浏览:591
苹果手机如何连接ipad服务器 浏览:975
打印矩阵java 浏览:393
如何双开一个不能双开的app 浏览:528
抖音喜欢加密了怎么打开 浏览:385
mysql命令行显示表 浏览:364
国防离我们源码200字 浏览:777
vmwaretoolslinux 浏览:92
命令方块生存放不了吗 浏览:697
程序员入门很难吗 浏览:103
70后程序员照片 浏览:194
一个普通程序员能干多久 浏览:936
adobe的PDF转换器 浏览:862
单片机数字码表汇编 浏览:486
单片机开发用的软件 浏览:160