独立键盘
while(1)
{
if(key_s2 == 0)//判断S2是否被按下
{
delay(20);//按键消抖
if(key_s2 == 0)
{
//写入执行代码
}
}
if(key_s3 == 0)//判断S3是否被按下
{
delay(20);//按键消抖
if(key_s3 == 0)
{
//写入执行代码
}
}
矩阵键盘
要编写一个矩阵键盘扫描函数
void KeyScan()
{
//4*4矩阵键盘扫描
P3 = 0XF0;//列扫描
if(P3 != 0XF0)//判断按键是否被按下
{
delay(10);//软件消抖10ms
if(P3 != 0XF0)//判断按键是否被按下
{
switch(P3) //判断那一列被按下
{
case 0xe0: //执行代码; break;//第一列被按下
case 0xd0: //执行代码; break;//第二列被按下
case 0xb0: //执行代码; break;//第三列被按下
case 0x70: //执行代码; break;//第四列被按下
}
P3 = 0X0F;//行扫描
switch(P3) //判断那一行被按下
{
case 0x0e: //执行代码; break;//第一行被按下
case 0x0d: //执行代码; break;//第二行被按下
case 0x0b: //执行代码; break;//第三行被按下
case 0x07: //执行代码; break;//第四行被按下
}
while(P3 != 0X0F);//松手检测
}
}
}