原创 4*4行列式键盘扫描程序

2009-4-11 12:22 2976 6 7 分类: MCU/ 嵌入式

uchar code keytab[]={0x7E,0x7D,0x7B,0x77,  //0,1,2,3,
                     0xBE,0xBD,0xBB,0xB7,   //4,5,6,7,
                     0xDE,0xDD,0xDB,0xD7,   //8,9,a,b,
                     0xEE,0xED,0xEB,0xE7};  //c,d,e,f,


uchar KeyScan()
{
 uint i;
 uchar h="0xef",b,c;
 for(i=4,P1=h;i>0;i--)
 {
  if((P1&0x0f)!=0x0f)
  {
   Delay(5000);
   if((P1&0x0f)!=0x0f)
   {
    uchar key,p;
    p=P1;
    for(key=0;key<16;key++)
    {
     if(p==keytab[key])
     {
      do{
       _nop_();
      }while((P1&0x0f)==0x0f); //等待按键放开,很重要
      //P1=0xff;
      return(key);
     }
    }
   }
   
  }
  b=h>>7;          
  c=h<<1;
  h=c|b;                 
  P1=h;
 }
 P1=0xff;
 return(16);
}

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

tengjingshu_112148725 2009-4-11 16:01

支持原创
相关推荐阅读
用户398463 2009-05-24 11:15
各种电容的用途和性能区分
转自Emile的工作收藏:【电容专题】什么是CBB电容,独石电容,电解电容?1、聚酯(涤纶)电容(CL) 电容量:40p--4u 额定电压:63--630V 主要特点:小体积,大容量,耐热耐湿,稳定性...
用户398463 2009-04-11 12:38
自带字库的点阵式液晶12864单片机控制程序
一、概述    带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16...
用户398463 2009-04-11 12:38
液晶1602的单片机控制程序
#include <reg52.h>#include <intrins.h>#include<absacc.h>   #define uchar unsigned ...
用户398463 2009-04-11 12:22
ByteBlasterII下载线电路图
此电路所制作的下载线既可以用来下载51单片机的程序,也可以用来下载FPGA/CPLD的程序。...
EE直播间
更多
我要评论
1
6
关闭 站长推荐上一条 /3 下一条