最近整理了一下有关按键扫描的子程序,和大家分享一下
1、多按键扫描,例如有四个按键K1,K2,K3,K4。
#include<intrins.h>
#define uchar unsigned char;
uchar key_v,key_s;
bit scan_key()
{
key_s=0x00;
key_s|=k4;
key_s<<=1;
key_s|=k3;
key_s<<=1;
return(key_s^key_v);
}
void proc_key()
{
if(key_v&0x01==0)//k1按下
{
}
else if(key_v&0x02==0)//k2按下
{
}
else if(key_v&0x04==0)//k3按下
{
}
else if(key_v&0x08==0)//k4按下
{
}
}
main()
{
.......
key_v=0x0f;
while(1)
{
if(scan_key)
delay();
if(scan_key)
{
key_v=key_s;
proc_key();
}
}
}