单片机用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);
}
}
}
主函数是这样的,但是还是出不来结果,能请问下到底应该怎么修改
展开
 我来答
lycdl
高粉答主

2015-06-04 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4891万
展开全部
table=key(); //扫描键盘

这table是一个数组吗,这么写就不对了,应该是
table[i]=key();
这函数key();返回数值是多少,是一位数还是几位数?
这行是写数据到液晶屏吗
writedate(table[j]);//液晶屏显示

这里用到了数组了,与前面table=key();不一致了
如果真是数组的话,写到液晶屏的数据需要变成ASCII码,才能显示
应该这样
writedate(table[j]+ox30);//液晶屏显示
但这只适合table[i]=key();是一位数的
要是多位数,还要分别取出个十百千位各位数,并分别转换成ASCII码,再分别写到液晶屏。
追问
key()返回值是按键按下的那个键值;我这样编出来的结果是满屏都是按下的值。‘
就是没有把按下的几个数一起保存到数组中然后用液晶屏显示数组
迟爵裴珍瑞
2019-08-08 · TA获得超过1174个赞
知道小有建树答主
回答量:1716
采纳率:100%
帮助的人:8.2万
展开全部
先根据你要显示数字的个数定义一个unsigned
char型的字符数组,调用扫描键盘函数,扫描到哪个键被按下的同时将键值存进对应的数组元素中,再调用液晶显示程序显示,液晶显示程序中显示的位数可变,可以定义一个变量来记录已按下的位数,显示的程序中实参为已按下按键的个数,这样就能实时显示数字了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式