导航:首页 > 操作系统 > 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单片机数组个数相关的资料

热点内容
小爱同学app里怎么设置闹钟 浏览:626
微信小程序题库源码 浏览:734
国内程序员女高管 浏览:881
程序员会压抑 浏览:682
物探编程 浏览:302
vuepdf预览 浏览:327
迷你世界出编程软件了 浏览:673
res文件夹有哪些 浏览:142
交通信号灯单片机课程设计 浏览:826
如何测试流媒体服务器的并发能力 浏览:161
溯源码有分国家认证的吗 浏览:218
如何通过app查询产检报告 浏览:944
拉结尔安卓手机怎么用 浏览:695
驱动级进程代理源码 浏览:782
androidshape画线 浏览:511
程序员想辞职被拒绝 浏览:101
java面试逻辑 浏览:749
如何下载全英文app 浏览:724
js函数式编程指南 浏览:380
为什么安卓手机相机启动会卡 浏览:341