如何用4*4矩阵键盘实现多位输入

2019-07-15 16:56发布

我需要用4*4矩阵键盘输入位数最多为四位的多位数。我要实现输入0-9时,键盘可以继续输入,液晶1602保持不变,输入10-15时,液晶1602显示我所输入的数值。我写了键盘扫描程序,但是组合起来就不会写了,尝试了很多方法,总是不能成功,以下是我的部分代码,大神能否帮我看看。我觉得主要是逻辑的问题。
void count()
{
        uchar sn;
        uint num1=0;
        sn=key1();//这是键盘扫描程序,16个按键分别返回0-15
        while(sn<10)//当输入0-9时,键盘可以继续输入
        {
                num1=num1*10+sn;
                sn=key1();
        }
        write_f(num1);//输入10-15将我输入的多位数送到1602显示,write_f()是显示函数。
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
Aidaohuakai
1楼-- · 2019-07-16 15:48
 精彩回答 2  元偷偷看……
武力戡乱
2楼-- · 2019-07-16 19:02
Aidaohuakai 发表于 2015-6-2 12:31
真怀疑你没用过计算器,每输入一位数难道没显示?比如输入123,输入了123要按确定键才能显示,如果我有这计算器我绝对砸了!永不使用这计算器!
上面已经改了,和计算器一样!

wenzizaigaoge
3楼-- · 2019-07-16 20:20
Aidaohuakai 发表于 2015-6-2 12:31
真怀疑你没用过计算器,每输入一位数难道没显示?比如输入123,输入了123要按确定键才能显示,如果我有这计算器我绝对砸了!永不使用这计算器!
上面已经改了,和计算器一样!

哈哈哈对不起我用过计算器,照你说的改如下
void count()
{
        uchar sn;
        num1=0;
        sn=key1();
        if(sn<10)//°´ÏÂÊý×Ö¼ü
        {
                num1=num1*10+sn;
                write_f(num1);
        }

       
}
可是这样改只能输入一位数,不能输入多位数的。而且我不明白,要是输入一位显示一位的话,那它怎么知道我什么时候输完这个数啊
Aidaohuakai
4楼-- · 2019-07-16 22:25
wenzizaigaoge 发表于 2015-6-2 14:02
哈哈哈对不起我用过计算器,照你说的改如下
void count()
{

      把num1=0;去掉
wenzizaigaoge
5楼-- · 2019-07-17 02:26
Aidaohuakai 发表于 2015-6-2 15:07
把num1=0;去掉

改了还是不行呀(T_T)……
Aidaohuakai
6楼-- · 2019-07-17 02:26
 精彩回答 2  元偷偷看……

一周热门 更多>