4×4矩阵键盘代码
代码
u16 keyinit()
{
u16 keyvalue;
key=0xf0; //列扫描
if(key!=0xf0)
{
delay(100); //延时10ms 消抖
if(key!=0xf0)
{
switch (key)
{
case 0xe0: keyvalue=1;break;
case 0xd0: keyvalue=2;break;
case 0xb0: keyvalue=3;break;
case 0x70: keyvalue=4;break;
}
}
}
key=0x0f; //行扫描
if(key!=0x0f)
{
delay(100); //延时10ms 消抖
if(key!=0x0f)
{
switch (key)
{
case 0x0e: keyvalue=keyvalue;break;
case 0x0d: keyvalue=keyvalue+4;break;
case 0x0b: keyvalue=keyvalue+8;break;
case 0x07: keyvalue=keyvalue+12;break;
}
}
}
return keyvalue;
}
仿真图
元器件
button (按钮)