新建
上传
首页
助手
最?/div>
资料?/div>
工具

uchar ScanKey(void) 

//

矩阵键盘

 

{ 

  uchar Tmp,Tmp2,KeyNum;//

定义变量

 

  P1=0xf0; 

 

 

 

 

//

屏蔽低四?/p>

 

  if(P1!=0xf0)  

 

 

//

行扫?/p>

 

  { 

 

 

 

 

 

 

 

   delay(10);  

 

 

//

延时去抖

 

   if(P1!=0xf0) 

 

 

//

确定按键按下

 

   { 

     Tmp=P1; 

 

 

 

//

取出

P1

口高四位数据

 

 P1 =0x0F; 

 

 

 

 

//

屏蔽高四?/p>

 

 _nop_();_nop_();_nop_();_nop_();//

延时

 

 Tmp2=P1; 

 

 

 

 

//

取出

P1

口低四位

 

 Tmp=Tmp+Tmp2; 

 

 

//

将取出的高四位,低四位组合,得到键?/p>

 

 while(P1!=0x0F) ; 

 

//

松手检?/p>

 

 switch(Tmp&0x0F) 

 

 

//

判断行号

 

 { 

   case 0x0E:KeyNum=0;break; 

   case 0x0D:KeyNum=4;break; 

   case 0x0B:KeyNum=8;break; 

   case 0x07:KeyNum=12;break; 

 } 

 switch(Tmp&0xf0) 

 

 

//

判断列号,并与行号相加,获得键?/p>

 

 { 

   case 0xE0:KeyNum+=1;break; 

   case 0xD0:KeyNum+=2;break; 

   case 0xB0:KeyNum+=3;break; 

   case 0x70:KeyNum+=4;break; 

 

 }  

 

 return KeyNum; 

 

 

//

输出键?/p>

 

    } 

  } 

  return 0;  

 

 

 

//

无按键按下返?/p>

0

?/p>

 

}  

 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

uchar ScanKey(void) 

//

矩阵键盘

 

{ 

  uchar Tmp,Tmp2,KeyNum;//

定义变量

 

  P1=0xf0; 

 

 

 

 

//

屏蔽低四?/p>

 

  if(P1!=0xf0)  

 

 

//

行扫?/p>

 

  { 

 

 

 

 

 

 

 

   delay(10);  

 

 

//

延时去抖

 

   if(P1!=0xf0) 

 

 

//

确定按键按下

 

   { 

     Tmp=P1; 

 

 

 

//

取出

P1

口高四位数据

 

 P1 =0x0F; 

 

 

 

 

//

屏蔽高四?/p>

 

 _nop_();_nop_();_nop_();_nop_();//

延时

 

 Tmp2=P1; 

 

 

 

 

//

取出

P1

口低四位

 

 Tmp=Tmp+Tmp2; 

 

 

//

将取出的高四位,低四位组合,得到键?/p>

 

 while(P1!=0x0F) ; 

 

//

松手检?/p>

 

 switch(Tmp&0x0F) 

 

 

//

判断行号

 

 { 

   case 0x0E:KeyNum=0;break; 

   case 0x0D:KeyNum=4;break; 

   case 0x0B:KeyNum=8;break; 

   case 0x07:KeyNum=12;break; 

 } 

 switch(Tmp&0xf0) 

 

 

//

判断列号,并与行号相加,获得键?/p>

 

 { 

   case 0xE0:KeyNum+=1;break; 

   case 0xD0:KeyNum+=2;break; 

   case 0xB0:KeyNum+=3;break; 

   case 0x70:KeyNum+=4;break; 

 

 }  

 

 return KeyNum; 

 

 

//

输出键?/p>

 

    } 

  } 

  return 0;  

 

 

 

//

无按键按下返?/p>

0

?/p>

 

}  

 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

uchar ScanKey(void) 

//

矩阵键盘

 

{ 

  uchar Tmp,Tmp2,KeyNum;//

定义变量

 

  P1=0xf0; 

 

 

 

 

//

屏蔽低四?/p>

 

  if(P1!=0xf0)  

 

 

//

行扫?/p>

 

  { 

 

 

 

 

 

 

 

   delay(10);  

 

 

//

延时去抖

 

   if(P1!=0xf0) 

 

 

//

确定按键按下

 

   { 

     Tmp=P1; 

 

 

 

//

取出

P1

口高四位数据

 

 P1 =0x0F; 

 

 

 

 

//

屏蔽高四?/p>

 

 _nop_();_nop_();_nop_();_nop_();//

延时

 

 Tmp2=P1; 

 

 

 

 

//

取出

P1

口低四位

 

 Tmp=Tmp+Tmp2; 

 

 

//

将取出的高四位,低四位组合,得到键?/p>

 

 while(P1!=0x0F) ; 

 

//

松手检?/p>

 

 switch(Tmp&0x0F) 

 

 

//

判断行号

 

 { 

   case 0x0E:KeyNum=0;break; 

   case 0x0D:KeyNum=4;break; 

   case 0x0B:KeyNum=8;break; 

   case 0x07:KeyNum=12;break; 

 } 

 switch(Tmp&0xf0) 

 

 

//

判断列号,并与行号相加,获得键?/p>

 

 { 

   case 0xE0:KeyNum+=1;break; 

   case 0xD0:KeyNum+=2;break; 

   case 0xB0:KeyNum+=3;break; 

   case 0x70:KeyNum+=4;break; 

 

 }  

 

 return KeyNum; 

 

 

//

输出键?/p>

 

    } 

  } 

  return 0;  

 

 

 

//

无按键按下返?/p>

0

?/p>

 

}  

 

Ͼλ">
Ͼλ
Ŀ

4x4矩阵键盘c语言程序 - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

uchar ScanKey(void) 

//

矩阵键盘

 

{ 

  uchar Tmp,Tmp2,KeyNum;//

定义变量

 

  P1=0xf0; 

 

 

 

 

//

屏蔽低四?/p>

 

  if(P1!=0xf0)  

 

 

//

行扫?/p>

 

  { 

 

 

 

 

 

 

 

   delay(10);  

 

 

//

延时去抖

 

   if(P1!=0xf0) 

 

 

//

确定按键按下

 

   { 

     Tmp=P1; 

 

 

 

//

取出

P1

口高四位数据

 

 P1 =0x0F; 

 

 

 

 

//

屏蔽高四?/p>

 

 _nop_();_nop_();_nop_();_nop_();//

延时

 

 Tmp2=P1; 

 

 

 

 

//

取出

P1

口低四位

 

 Tmp=Tmp+Tmp2; 

 

 

//

将取出的高四位,低四位组合,得到键?/p>

 

 while(P1!=0x0F) ; 

 

//

松手检?/p>

 

 switch(Tmp&0x0F) 

 

 

//

判断行号

 

 { 

   case 0x0E:KeyNum=0;break; 

   case 0x0D:KeyNum=4;break; 

   case 0x0B:KeyNum=8;break; 

   case 0x07:KeyNum=12;break; 

 } 

 switch(Tmp&0xf0) 

 

 

//

判断列号,并与行号相加,获得键?/p>

 

 { 

   case 0xE0:KeyNum+=1;break; 

   case 0xD0:KeyNum+=2;break; 

   case 0xB0:KeyNum+=3;break; 

   case 0x70:KeyNum+=4;break; 

 

 }  

 

 return KeyNum; 

 

 

//

输出键?/p>

 

    } 

  } 

  return 0;  

 

 

 

//

无按键按下返?/p>

0

?/p>

 

}  

 



ļ׺.doc޸Ϊ.docĶ

  • 2016ʦƸԳԾ()
  • ԪȺĶⷽ
  • ѡۺϲԾ
  • ʦ⡰ʻ
  • ۾ѧϰ(޴)
  • 1ըҩ¹ӦԤ
  • IJ𽲾˳
  • 1ըҩ¹ӦԤ
  • ѡۺϲԾ
  • 1ըҩ¹ӦԤ

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)