单片机用1602液晶连续显示按键按下的值
主程序如下,可是出不来结果,请教下高手该怎么修改voidmain(){uchari=0,j;lcdinit();while(1){for(i=0;i<7;i++){tab...
主程序如下,可是出不来结果,请教下高手该怎么修改
void main()
{
uchar i=0,j;
lcdinit();
while(1)
{
for(i=0;i<7;i++)
{
table=key(); //扫描键盘
delay(100);
}
for(j=0;j<7;j++)
{
writedate(table[j]);//液晶屏显示
delay(100);
}
}
}
主函数是这样的,但是还是出不来结果,能请问下到底应该怎么修改 展开
void main()
{
uchar i=0,j;
lcdinit();
while(1)
{
for(i=0;i<7;i++)
{
table=key(); //扫描键盘
delay(100);
}
for(j=0;j<7;j++)
{
writedate(table[j]);//液晶屏显示
delay(100);
}
}
}
主函数是这样的,但是还是出不来结果,能请问下到底应该怎么修改 展开
展开全部
table=key(); //扫描键盘
这table是一个数组吗,这么写就不对了,应该是
table[i]=key();
这函数key();返回数值是多少,是一位数还是几位数?
这行是写数据到液晶屏吗
writedate(table[j]);//液晶屏显示
这里用到了数组了,与前面table=key();不一致了
如果真是数组的话,写到液晶屏的数据需要变成ASCII码,才能显示
应该这样
writedate(table[j]+ox30);//液晶屏显示
但这只适合table[i]=key();是一位数的
要是多位数,还要分别取出个十百千位各位数,并分别转换成ASCII码,再分别写到液晶屏。
这table是一个数组吗,这么写就不对了,应该是
table[i]=key();
这函数key();返回数值是多少,是一位数还是几位数?
这行是写数据到液晶屏吗
writedate(table[j]);//液晶屏显示
这里用到了数组了,与前面table=key();不一致了
如果真是数组的话,写到液晶屏的数据需要变成ASCII码,才能显示
应该这样
writedate(table[j]+ox30);//液晶屏显示
但这只适合table[i]=key();是一位数的
要是多位数,还要分别取出个十百千位各位数,并分别转换成ASCII码,再分别写到液晶屏。
追问
key()返回值是按键按下的那个键值;我这样编出来的结果是满屏都是按下的值。‘
就是没有把按下的几个数一起保存到数组中然后用液晶屏显示数组
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询