您的位置:首页 > 其它

节约单片机端口资源的键盘电路

2013-08-28 14:56 169 查看
 

当键盘按键少于4个时,通常采用独立式接法。但当需要管理键盘的数目增加时,独立式这种简单的接法显然就不适用了。

一般单片机的书上通常会介绍另一种扫描式的方法:用8个I/O口控制16按键。虽然有所优化,但占用的端口资源仍然比较多。



下面介绍一个只需要用3个端口,就能控制16个按键的十分巧妙的接法。

原理图如下:



驱动程序如下:

/*********************************************************************************************/

unsigned chargetkey(void)

{

unsigned char x;

P1|=0x07;

x=P1&0x07;

if(x==0x07)  /*判断K0-K6是否有键按下,如果没有,检测K7-K15*/

{

P1&=0xfe;x=P1&0x07;x=x/2+7;

if(x==10)

{

P1|=0x07;P1&=0xfd;x=P1&0x07;x=(x+1)/2+10;

if(x==13)

{

P1|=0x07;P1&=0xfb;x=P1&0x07;x+=13;

}

}

}

return(x);

}

//返回的X为相应的键盘值,如果没有键按下,则返回16
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单片机 键盘