单片机C语言中能不能使用两个 uchar code table 【】
单片机C语言中能不能使用两个ucharcodetable【】我想用一个for语句调用两个不同的table中的内容,简单来说P0中是用第一个TABLE中的内容P1中是第二个...
单片机C语言中能不能使用两个 uchar code table 【】
我想用一个for语句 调用两个 不同的table中的内容,简单来说P0中是用 第一个TABLE中的内容 P1中是第二个table中的内容 可以实现吗?两个table是如何区分的? 展开
我想用一个for语句 调用两个 不同的table中的内容,简单来说P0中是用 第一个TABLE中的内容 P1中是第二个table中的内容 可以实现吗?两个table是如何区分的? 展开
7个回答
展开全部
可以的。参考下面的程序:
uchar code Pattern_P1[]={ 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f};
uchar code Pattern_P2[]={ 0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6};
for(i=136;i>0;i--)
{
P1=Pattern_P1[i];
P2=Pattern_P2[i];
DelayMS(150);
}
uchar code Pattern_P1[]={ 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f};
uchar code Pattern_P2[]={ 0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6};
for(i=136;i>0;i--)
{
P1=Pattern_P1[i];
P2=Pattern_P2[i];
DelayMS(150);
}
展开全部
1、可以。
2、你不要都起名叫table就行。可以一个叫table1一个叫table2
3、具体说区分的话,是根据你要读取哪个table,让dptr的值等于你要的table的基地址,以实现在代码中(就是code关键字)寻址的。要不然代码可是允许超过256字节长度的
2、你不要都起名叫table就行。可以一个叫table1一个叫table2
3、具体说区分的话,是根据你要读取哪个table,让dptr的值等于你要的table的基地址,以实现在代码中(就是code关键字)寻址的。要不然代码可是允许超过256字节长度的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
uchar code table[]是指在rom空间建立一个名为table的数组,至于里面的值你自己写,单你不能通过对ram操作修改它,因为他存在于rom空间,从烧入程序那一刻起,你就只能从rom中读取数组中的值,至于数组个数自己写,数组名随便,可以a[],abc[],tab[]......
如果你要对数组内的数据进行操作,那你要在内存ram空间中开辟数组,利用命令uchar tab[]={},里面的值自己写。
uchar是unsigned char的宏定义是对数组数据类型定义,而TABLE,table都是数组名,数组名可以自己取。
如果你要对数组内的数据进行操作,那你要在内存ram空间中开辟数组,利用命令uchar tab[]={},里面的值自己写。
uchar是unsigned char的宏定义是对数组数据类型定义,而TABLE,table都是数组名,数组名可以自己取。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
开头声明了uchar code table[]={0x00,0x00,0x00,0x01,0x03,0x07,0x0f,0x00};
之后如何对table[]里的数据进行修改?
需要把里面内容的位置互换就是改成
table[]={0x00,0x00,0x01,0x03,0x07,0x0f,0x00,0x00};
是用在LCD上用来让图像向上滚动void display()
{
char m=0;
lcd_init();
lcd_wcom(0x40); //设定CGRAM地址
for(m=0;m<64;m++) //将心型代码写入CGRAM中
{
lcd_wdat(table[m]);
}
lcd_wcom(0x85); //设定上排的显示位置
for(m=0;m<4;m++)
{
lcd_wdat(m);
}
lcd_wcom(0xc5); //将显示坐标转移到下排和上排相对应的地方
for(m=4;m<8;m++)
{
lcd_wdat(m);
}
}
之后如何对table[]里的数据进行修改?
需要把里面内容的位置互换就是改成
table[]={0x00,0x00,0x01,0x03,0x07,0x0f,0x00,0x00};
是用在LCD上用来让图像向上滚动void display()
{
char m=0;
lcd_init();
lcd_wcom(0x40); //设定CGRAM地址
for(m=0;m<64;m++) //将心型代码写入CGRAM中
{
lcd_wdat(table[m]);
}
lcd_wcom(0x85); //设定上排的显示位置
for(m=0;m<4;m++)
{
lcd_wdat(m);
}
lcd_wcom(0xc5); //将显示坐标转移到下排和上排相对应的地方
for(m=4;m<8;m++)
{
lcd_wdat(m);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然是可以的,实现方式有两种
一是建立两个table表table1[].table2[]
二是建立一个table表,P0的放0、2、4.....等偶地址,P1的放1、3、5....等奇地址。
一是建立两个table表table1[].table2[]
二是建立一个table表,P0的放0、2、4.....等偶地址,P1的放1、3、5....等奇地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询