xiaoguozi's Blog
Pay it forword - 我并不觉的自豪,我所尝试的事情都失败了······习惯原本生活的人不容易改变,就算现状很糟,他们也很难改变,在过程中,他们还是放弃了······他们一放弃,大家就都是输家······让爱传出去,很困难,也无法预料,人们需要更细心的观察别人,要随时注意才能保护别人,因为他们未必知道自己要什么·····
static bit isKeyDown(){
    KEY
=0x0f;
    
if((KEY&0x0f)!=0x0f)
        
return 1;
    
else return 0;
}
//线反转法 返回键盘索引
unsigned char KeyScan_XF(){
    unsigned 
char r=0,c=0;
    
if(isKeyDown()){
        delayms(
20); //去抖动
        if(isKeyDown()){
            KEY
=0x0f;
            
switch(KEY){
                
case 0x0e:c=0;break;   //第一列
                case 0x0d:c=1;break//第二列
                case 0x0b:c=2;break;   //第三列
                case 0x07:c=3;break//第四列
                default:  break;
            }
            KEY
=0xf0;//电平反向
            switch(KEY){
                
case 0xe0:r=0;break;   //第一行
                case 0xd0:r=1;break//第二行
                case 0xb0:r=2;break;   //第三行
                case 0x70:r=3;break//第四行
                default:  break;
            }

            
while(!isKeyDown());//  按键释放,处理长按
            return  r*4+c+1;
        }
   }
   
return 0;          
}

//查询法 返回键盘索引
unsigned char getRorC(){
    KEY
&=0x0F;
    KEY
|=0x70;     //0111

    
if((KEY&0x0f)!=0x0f){
        
return 3;
    }

    KEY
&=0x0f;
    KEY
|=0xB0;       //1011
    if((KEY&0x0f)!=0x0f){
        
return 2;
    }

    KEY
&=0x0f;
    KEY
|=0xD0;   //1101
    if((KEY&0x0f)!=0x0f){
        
return 1;
    }

    KEY
&=0x0f;
    KEY
|=0xE0;  //1110
    if((KEY&0x0f)!=0x0f){
        
return 0;
    }
    
return -1;//impossible
}
unsigned 
char KeyScan_CS(){
    unsigned 
char r=0,c=0;
    
if(isKeyDown()){
        delayms(
20); //去抖动
        if(isKeyDown()){
            
switch(KEY){
                
case 0x0e:c=0;break;//第一列
                case 0x0d:c=1;break;//第二列
                case 0x0b:c=2;break;//第三列
                case 0x07:c=3;break;//第四列
                default:break;
            }
            r
=getRorC();
            
return r*4+c+1;
        }
    }
    KEY
=0x0f;

    
return 0;
}

posted on 2010-07-29 15:42 小果子 阅读(228) 评论(0)  编辑 收藏 引用 所属分类: 单片机

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理