简单4线扩展成4*4键盘的电路
在单片机的书籍上经常看到利用各种外围芯片来实现的键盘扩展,下面给大家推荐一个只利用4个二极管,4个IO口实现的4*4键盘。呵呵!!在这仅作抛砖引玉之用,对于高手可以无视!uchar key_scan(void)
{
uchar temp;
//--------------------------------------------------
PORTA =0b00001110;
DDRA=0b00000001;
Delayus(10);
temp=PINA&0b00001110;
if(temp!=0b00001110)
{
switch(temp)
{
case 0b00001100: return 1;break;
case 0b00001010: return 2;break;
case 0b00000110: return 3;break;
}
}
//--------------------------------------------------
PORTA =0b00001101;
DDRA=0b00000010;
Delayus(10);
temp=PINA&0b00001101;
if(temp!=0b00001101)
{
switch(temp)
{
case 0b00001100: return 4;break;
case 0b00001001: return 5;break;
case 0b00000101: return 6;break;
}
}
//--------------------------------------------------
PORTA =0b00001011;
DDRA=0b00000100;
Delayus(10);
temp=PINA&0b00001011;
if(temp!=0b00001011)
{
switch(temp)
{
case 0b00001010: return 7;break;
case 0b00001001: return 8;break;
case 0b00000011: return 9;break;
}
}
//--------------------------------------------------
PORTA =0b00000111;
DDRA=0b00001000;
Delayus(10);
temp=PINA&0b00000111;
if(temp!=0b00000111)
{
switch(temp)
{
case 0b00000110: return 10;break;
case 0b00000101: return 11;break;
case 0b00000011: return 12;break;
}
}
return 0;
} 学习学习。。。{:victory:} 这个。。是扩展3*4个IO吧。不是扩展成4X4de ... wx85105157 发表于 2012-9-29 10:04:17 static/image/common/back.gif
这个。。是扩展3*4个IO吧。不是扩展成4X4de ...
哦!不好意思是3x4,我写错了
来自:amoBBS 阿莫电子论坛 Android客户端 有意思,跟之前一个贴子的电路有点相似,那个更详细点 不好意思,现在才回帖。按正常的电路来说,这个电路有点问题 只能识别单键。组合键无能为力了。 天使之翼 发表于 2012-9-29 10:56:22 static/image/common/back.gif
不好意思,现在才回帖。按正常的电路来说,这个电路有点问题
请指点,会有什么向题呢?
来自:amoBBS 阿莫电子论坛 Android客户端 wx85105157 发表于 2012-9-29 12:21:25 static/image/common/back.gif
只能识别单键。组合键无能为力了。
可以实现组合键的,您可以试试
来自:amoBBS 阿莫电子论坛 Android客户端 这些按键基本够用了 Mcu_2009 发表于 2012-9-29 10:06 static/image/common/back.gif
哦!不好意思是3x4,我写错了
来自:amoBBS 阿莫电子论坛 Android客户端
4个IO + 4个二极管 可以实现16按键,你漏了4个
页:
[1]