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

如题所述

可以的,假如键盘扫描程序是
#include<reg51.h>
#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;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-13
设置其中的一个按键,定为标志位

如果没有按下标志位 则

a=a*10+key ; //key为按键值
第2个回答  2012-08-14
具体实现要看矩阵键盘和单片机的接口。
实现思路为:
变量a = 0

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

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

)

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

}

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