注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
a532727489的个人空间 https://home.eeworld.com.cn/space-uid-323548.html [收藏] [复制] [分享] [RSS]
日志

单片机按键定时扫描问题

已有 1235 次阅读2011-5-10 12:00

哪位高手能帮忙把下面按键扫描程序改成用定时器对按键进行定时扫描啊,我用的是51单片机,感激万分!!!!




/*键盘扫描*/
void judge(void)
{
 
  
P1=0xf0;
lie=P1;
lie=lie&0xf0;
if(lie!=0xf0)
{
delay();
if(lie!=0xf0) //假设第二行第三列按下
{
lie=P1;
key0=lie; //10110000
P1=key0|0x0f; //10111111 实际上按键还没断开的话,赋值后P3的值为10111101,因为第二行被按下为低电平
hang=P1&0x0f; //00001101
key=hang+lie; //10111101  

}
P1=0xf0;
temp=P1;
while(temp!=0xf0) //等待按键松开
{
temp=P1;

switch ( key ) //判断键值(那一个键按下)
 { case 0x7d: key1(); break;  
  case 0xee: key2(); break; //对键值赋值
  case 0xde: key3(); break;  
  case 0xbe: key4(); break;  
  case 0x7e: key5(); break;
  case 0xed: key6(); break;  
  case 0xdd: key7(); break;  
  case 0xbd: key8(); break;  
  default: break;
 }} 
 }
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章