Mcu_2009 发表于 2012-9-29 09:01:48

简单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;
}

worldly_guest 发表于 2012-9-29 09:39:04

学习学习。。。{:victory:}

wx85105157 发表于 2012-9-29 10:04:17

这个。。是扩展3*4个IO吧。不是扩展成4X4de ...

Mcu_2009 发表于 2012-9-29 10:06:30

wx85105157 发表于 2012-9-29 10:04:17 static/image/common/back.gif
这个。。是扩展3*4个IO吧。不是扩展成4X4de ...

哦!不好意思是3x4,我写错了
来自:amoBBS 阿莫电子论坛 Android客户端

weiwei4 发表于 2012-9-29 10:12:25

有意思,跟之前一个贴子的电路有点相似,那个更详细点

天使之翼 发表于 2012-9-29 10:56:22

不好意思,现在才回帖。按正常的电路来说,这个电路有点问题

wx85105157 发表于 2012-9-29 12:21:25

只能识别单键。组合键无能为力了。

Mcu_2009 发表于 2012-9-29 12:37:13

天使之翼 发表于 2012-9-29 10:56:22 static/image/common/back.gif
不好意思,现在才回帖。按正常的电路来说,这个电路有点问题

请指点,会有什么向题呢?
来自:amoBBS 阿莫电子论坛 Android客户端

Mcu_2009 发表于 2012-9-29 12:45:10

wx85105157 发表于 2012-9-29 12:21:25 static/image/common/back.gif
只能识别单键。组合键无能为力了。

可以实现组合键的,您可以试试
来自:amoBBS 阿莫电子论坛 Android客户端

amnumber 发表于 2012-10-1 13:22:06

这些按键基本够用了

BXAK 发表于 2012-10-1 13:44:56

Mcu_2009 发表于 2012-9-29 10:06 static/image/common/back.gif
哦!不好意思是3x4,我写错了
来自:amoBBS 阿莫电子论坛 Android客户端

4个IO + 4个二极管 可以实现16按键,你漏了4个
页: [1]
查看完整版本: 简单4线扩展成4*4键盘的电路