51单片机如何通过4*4矩阵键盘输入一个两位数,送给一个变量?求助。。。

2024-12-01 19:08:30
推荐回答(3个)
回答1:

可以的,假如键盘扫描程序是
#include
#define uchar unsigned char
uchar key()
{
//键盘扫描
}
main()
{
uchar keycode[2],i=0,x;
uchar a;
while(1)
{
x=key;
if(x<10)
{
keycode[i]=x;
if(i==1)a=keycode[0]*10+keycode[1];
}
i++;
i&=0x01;
}
}

回答2:

设置其中的一个按键,定为标志位

如果没有按下标志位 则

a=a*10+key ; //key为按键值

回答3:

具体实现要看矩阵键盘和单片机的接口。
实现思路为:
变量a = 0

if( 数字按键 )
(
if( a < 100 ) //还未成为两位数

a *= 10;
a += 数字按键对应值;

)

else if( 删除按键 )
{
a /= 10;

}

if( a > 10 && a < 100 ) //判断为两位数
return a;