?? 矩陣式鍵盤的識別(二).c
字號:
/******************************************************************************
4x4 矩陣鍵盤與4*4LED顯示
******************************************************************************/
#include"reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit p00=P0^0;
sbit p01=P0^1;
sbit p02=P0^2;
sbit p03=P0^3;
uchar key;
void keyscan(void) //鍵盤掃描
{ uchar i,y; uchar x=0;
i=0xEF;
for(y=0;y<4;y++)
{ P0=i;
if(p00==0)
break;
key++;
if(p01==0)
break;
key++;
if(p02==0)
break;
key++;
if(p03==0)
break;
key++;
i=_crol_(i,1);//左移一次
}
}
void display() //把按下的鍵盤用LED顯示
{
switch(key)
{ case 0 : P3=0X1E; break;
case 1 : P3=0X1d; break;
case 2 : P3=0X1b; break;
case 3: P3=0X17; break;
case 4: P3=0X2E; break;
case 5: P3=0X2d; break;
case 6: P3=0X2b; break;
case 7: P3=0X27; break;
case 8: P3=0X4E; break;
case 9: P3=0X4d; break;
case 10: P3=0X4b; break;
case 11: P3=0X47; break;
case 12: P3=0X8e; break;
case 13: P3=0X8d; break;
case 14: P3=0X8b; break;
case 15 : P3=0X87; break;
}
}
void main(void)
{ uchar i;
uchar z;
while(1)
{ P0=0X0F;
i=P0;
if(i!=0x0F)
{ keyscan(); //鍵盤掃描
for(;;) /*判斷是否鍵以松*/
{ P0=0x0f;
z=P0;
if(z==0x0f)
break;
}
display(); //調用LED顯示
key=0;//重新開始計算鍵盤值
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -