注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

耳朵的博客

做自己想做的人

 
 
 

日志

 
 

4×4矩阵键盘扫描函数(按下后立即得到键值)  

2009-10-08 22:52:33|  分类: 单片机 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

代码截图:

4×4矩阵键盘扫描函数 - 耳朵 - 耳朵的博客

/**********************************\
*      4×4矩阵键盘扫描函数     *
*    函数特点:按下后立即得到键值   *
*      返回值:unsigned char     *
*        16:无键按下      *
*        0-15:按下的键值     *
*       陈利栋   2009.8.7        *
\**********************************/
#define KEYBOARD_IO P1  //定义键盘使用的单片机IO口
bit KeyDown=0;    //全局变量,用于标记按键已按下

unsigned char KeyboardScan()
{
 unsigned int i;
 unsigned char key=16;
 if(KeyDown==1)
 {
  for(i=0;i<1000;i++)
  {
   KEYBOARD_IO=0xf0;
   if(KEYBOARD_IO!=0xf0)
    return 16;
  }
  KeyDown=0;
  return 16;
 } 
 for(i=0;i<4;i++)
 {
  KEYBOARD_IO=0x01<<i;
  if(KEYBOARD_IO!=0x01<<i)//有键按下
  {
   KEYBOARD_IO=0xf0; //使用高电平检测按键
   key=KEYBOARD_IO;  //读取当前IO口值
   if(key!=0xf0)   //验证有键按下
   {
    switch(key)
    {
     case 0x70: KeyDown=1; return 4*i+0;
     case 0xb0: KeyDown=1; return 4*i+1;
     case 0xd0: KeyDown=1; return 4*i+2;
     case 0xe0: KeyDown=1; return 4*i+3;
     default: return 16;
    }
   }
  }       
 }
 return 16;
}

 

  评论这张
 
阅读(1108)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018