51单片机如何用矩阵键盘输入数值,最后赋值到一个变量上

如题所述

你好!!

你做矩阵键盘检测的时候,会触发相关的IO口的状态,通过分析IO口,就能知道那个键按下;

定义一个变量,将按下的键值赋给变量就行了
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-15

(1)用手指头按下矩阵键盘的0~9数字键即可输入数值。

 

(2)最后赋值到一个变量上

unsigned char const str1[]="最后";
unsigned char const* pt1=&str1[0];

这样就把最后赋值到指针pt1上了

本回答被网友采纳
第2个回答  推荐于2016-06-28
uchar keyscan()
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:num=1;
break;
case 0xde:num=2;
break;
case 0xbe:num=3;
break;
case 0x7e:num=4;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:num=5;
break;
case 0xdd:num=6;
break;
case 0xbd:num=7;
break;
case 0x7d:num=8;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}

P3=0xfb;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:num=9;
break;
case 0xdb:num=10;
break;
case 0xbb:num=11;
break;
case 0x7b:num=12;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}

P3=0xf7;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xe7:num=13;
break;
case 0xd7:num=14;
break;
case 0xb7:num=15;
break;
case 0x77:num=16;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
return num;
}追问

这些好像只是按键赋值吧?我是问怎么把矩阵键盘输入的键值赋到另一个变量上。就比如这样。我们设定一个变量long int x,按完你设的键码后,怎么再赋值到x上?可以直接x=keyscan()吗?

追答

可以啊 但是这里赋给X的是num的值!你可以直接从num的值判断IO口的值啊

追问

像P1^1=num;这样直接赋给IO口?

本回答被提问者采纳
相似回答