如何在单片机程序中如何定义一个数组,用矩阵键盘输入里面的数组里面的变量?(我想用键盘扫描)

如题所述

矩阵扫描?正常我是用翻转法来检查按键的,下面贴出代码,希望能给你一些帮助

typedef  unsigned char  u8;
typedef  unsigned int   u16;


sbit key=P1;


u8 key_scan()
{
u8 key_value=0;
key=0x0f;
if(key!=0x0f)
{
 if(key==0x0e)   key_value=1;
 else if(key==0x0d)  key_value=2;
 else if(key==0x0b)  key_value=3;
 else if(key==0x07)  key_value=4;

 key=0xf0;
 if(key==0xe0)   key_value+=0;
 else if(key==0xd0)  key_value+=4;
 else if(key==0xb0)  key_value+=8;
 else if(key==0x70)  key_value+=12;

 while(key==0xf0);
}
 return key_value;
}

u8 key_scan()这个函数返回的就是键值,key是一个端口,请自行改(可以在最后加上10ms的延时,消抖用)。

其中key_value就是键值,从1-16,你需要时检测或者在定时器里检测。

追问

但是怎么把数据存放在数组里面呢?

温馨提示:答案为网友推荐,仅供参考