导航:首页 > 操作系统 > 单片机的数组赋值

单片机的数组赋值

发布时间:2022-09-08 09:41:03

单片机给数组赋值可以用strcpy么

strcpy是c语言库程序,其代码没有公开、也许包含Debug信息,这种库程序要额外占用一些你也许用不到的资源(比如需要申请堆栈空间),而单片机一般资源紧张,所以如果只用strcpy这一个功能的话,最好自己动手写一段子程序替代它实现同样功能。

Ⅱ 51单片机 C语言 串口数组赋值问题

贴上来的程序部分,修改如下:
#include<reg52.h>
#include<stdio.h> //打印到串口函数
#define uchar unsigned char
#define uint unsigned int
uchar date_zi[4][11]; //存放接收到的数据
uint i_index=0; //接收到的字符个数
uint i=0; //i字符用于循环
unsigned int xia = 0; //用于保存到数据的下标
void fh_zi(uchar a) //返回字符到串口
{
ES=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0Xfd;
//TH0=(65536-45872)/256;
//TL0=(65536-45872)%256;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}
void main()
{
i_index=0;
xia=2;
init();

while(1);
}
void ser() interrupt 4 //串口
{
if(RI == 1)
{
RI=0;
date_zi[xia][i_index] = SBUF;
i_index++;
if(i_index>10) //接受完10个字符后显示数组所有内容
{
i_index=0;
for(i=0;i<11;i++) //显示数组中所有内容
fh_zi(date_zi[0][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[1][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[2][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[3][i]);
}

}
}

Ⅲ C语言 AVR单片机中 给数组赋值

你问题前后矛盾啊,到底是左补0还是右补0啊,另外,你举的例子是10进制还是16进制,数组中是BCD码还是HEX,快补充一下吧

Ⅳ 单片机数组的定义和使用方法

单片机数组的定义和使用方法,单片机数组的定义就是说他是通过一个单机片组成个主板,然后使用方法是相对来说比较简单的,然后可以参照使用说明来操作

Ⅳ 单片机程序 把数组赋值给p什么意思数组有很多位数据,哪一位赋给了p p=table1

p是指针,指向数组后,默认是其首个成员的地址,循环中执行P++或j++,p或p+j便指向下一个成员。L1602_char(1,17-i+j,*(p+j))即相当于L1602_char(1,17-i+j,table1[j])

Ⅵ 单片机C语言数组赋值求助

数组只能在定义的时候整体赋值,不能在之后这样用。
所以你只能写成
uchar frist[5]={a,b,c,d,e,f};
而不能写成
uchar frist[5];
frist[5]={a,b,c,d,e,f};
如果你真的要在之后赋值,特别是每个成员不一样,你只能用循环或者手动一个一个赋值。
或者先把所有值放在另外一个数值然后memcpy给目标数组。

Ⅶ 变量赋值给数组 c语言单片机中

你定义了位于xdata的数组,可是你确认你的设计中包含
外部存储器
吗?
先确认。

Ⅷ 单片机c语言编程 数组赋值问题:

uchar
code
table2[]={"12.3"};
注意到你用什么样的数据类型了没有
uchar
是整形
而你的数组里带小数点

Ⅸ 单片机数组赋值问题!

这个程序我已经调试过可以使用,放到数组中应该为了用数码管显示吧
uchar
i=0,j=0,z=0,m=0;
//i-整数位数,j-小数位数
float
a=0,b=0;
//a-整数,b-小数
uint
c=0,d=0;
uchar
k[8]={0};//数组设大一点没关系的
adval=P1
a=ad_vol;
ad_vol=(float)adval*5.0/255
d=a;
c=a;
while(c)
{
k[i]=c%10;
c=c/10;
i++;
}
for(
m=0;m
评论
0
0
加载更多

Ⅹ 关于单片机 数组使用

你给的信息太有限,
我需要知道你的单片机的具体型号,还有你创建工程的属性。
我先猜一下:
你用的是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单片机测脉冲宽度 浏览:286
文件夹弄成二维码 浏览:283
python字典循环添加 浏览:692
闲置服务器怎么收费 浏览:162
阅读app是用什么开发的 浏览:37
js赋值给java 浏览:41
android下载音乐源码 浏览:4
如果爱奇艺被压缩怎么办 浏览:432
c语言编译器运行慢 浏览:862
朱正廷直播用什么app 浏览:839
python运行工作目录改变 浏览:196
云服务器过期怎么处理 浏览:474
win10远程命令 浏览:116
java加密包 浏览:50
PDF电子书百度云 浏览:885
在哪里下载社保查询app 浏览:577
我的世界服务服务器地址 浏览:457
linuxphp配置文件 浏览:955
哪种加密算法是非对称算法 浏览:989
多文件夹加序号 浏览:845