📄 keyboardcode.c
字号:
/////////////////////////////////////////////////////////////////////////
//////--------------------键盘程序部分--------------////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////键盘扫描////////////////////////////////
Uchar keyscan(void) ////////////////////使用行扫描法
{
char n;
Uchar key;
DDRA=0x00;//设置I/O口为输入
DDRB=0xfc;//输出
PORTB=0x38;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
delay();
PORTB=0x38;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
switch(n)
{
case 0xe0:key=4;break;
case 0xd0:key=3;break;
case 0xb0:key=2;break;
case 0x70:key=1;break;
}
}
}
PORTB=0x34;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
delay();
PORTB=0x34;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
switch(n)
{
case 0xe0:key=8;break;
case 0xd0:key=7;break;
case 0xb0:key=6;break;
case 0x70:key=5;break;
}
}
}
PORTB=0x2C;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
delay();
PORTB=0x2C;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0){
switch(n)
{
case 0xe0:key=11;break;
case 0xd0:key=10;break;
case 0xb0:key=0;break;
case 0x70:key=9;break;
}
}
}
PORTB=0x1C;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
delay();
PORTB=0x1C;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
switch(n)
{
case 0xe0:key=15;break;
case 0xd0:key=14;break;
case 0xb0:key=13;break;
case 0x70:key=12;break;
}
}
}
if((key!=0x00)&&(key!=0x01)&&(key!=0x02)&&(key!=0x03)&&(key!=0x04)&&(key!=0x05)
&&(key!=0x06)&&(key!=0x07)&&(key!=0x08)&&(key!=0x09)&&(key!=0x0a)&&(key!=0x0b)
&&(key!=0x0c)&&(key!=0x0d)&&(key!=0x0e)&&(key!=0x0f))
key=0x10;
return(key);
}
//////////////////////////////////确认键查询//////////////////////////////////
Uchar ScanKey_okSel(void) //only scan the kye of OK
{ Uchar n;
Uchar i, temp;
DDRA=0x00;//设置I/O口为输入
DDRB=0xfc;//输出
PORTB=0x1C;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{
delay();
PORTB=0x1C;
PORTA=0xF0;
n=PINA&0xf0;
if(n!=0xf0)
{if(n==0xe0)
{
return 1;
}
PORTB=0x1C;
PORTA=0xF0;
}
}
else return 0;
//0-not selected 1-selected
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -