?? driver.h
字號(hào):
#include<LCD.h>
bit capslock=0;
bit kb_hit=0;
bit kb_up=0;
sbit kb_dat=P1^5;
unsigned char kb_buf;
void it1()interrupt 2
{
static unsigned char cnt;
static unsigned char k;
if(cnt==0)
{;}
else if(cnt<=8)
{
k>>=1;
if(kb_dat)
k=k|0x80;
}
else
{;}
cnt++;
if(cnt>=11)
{
cnt=0;
if(k==0xf0)
kb_up=1;
else
{
if(kb_up)
kb_up=0;
else
{
kb_buf=k;
kb_hit=1;
}
}
}
}
unsigned char getkey()
{
unsigned char k;
for (;;)
{
putgb();
if ( kb_hit )
{
k = kb_buf;
kb_hit = 0;
break;
}
}
switch (k)
{
case 0x1C: k = 'A'; break;
case 0x32: k = 'B'; break;
case 0x21: k = 'C'; break;
case 0x23: k = 'D'; break;
case 0x24: k = 'E'; break;
case 0x2B: k = 'F'; break;
case 0x34: k = 'G'; break;
case 0x33: k = 'H'; break;
case 0x43: k = 'I'; break;
case 0x3B: k = 'J'; break;
case 0x42: k = 'K'; break;
case 0x4B: k = 'L'; break;
case 0x3A: k = 'M'; break;
case 0x31: k = 'N'; break;
case 0x44: k = 'O'; break;
case 0x4D: k = 'P'; break;
case 0x15: k = 'Q'; break;
case 0x2D: k = 'R'; break;
case 0x1B: k = 'S'; break;
case 0x2C: k = 'T'; break;
case 0x3C: k = 'U'; break;
case 0x2A: k = 'V'; break;
case 0x1D: k = 'W'; break;
case 0x22: k = 'X'; break;
case 0x35: k = 'Y'; break;
case 0x1A: k = 'Z'; break;
case 0x45: k = '0'; break;
case 0x16: k = '1'; break;
case 0x1E: k = '2'; break;
case 0x26: k = '3'; break;
case 0x25: k = '4'; break;
case 0x2E: k = '5'; break;
case 0x36: k = '6'; break;
case 0x3D: k = '7'; break;
case 0x3E: k = '8'; break;
case 0x46: k = '9'; break;
case 0x0E: k = '`'; break;
case 0x4E: k = '-'; break;
case 0x55: k = '='; break;
case 0x5D: k = '\\'; break;
case 0x66: k = '\b'; break; //BackSpace
case 0x29: k = ' '; break; //空格
case 0x58: //CapsLock
k = '\0';
capslock = !capslock;
return k;
case 0x5A: k = '\n'; break; //Enter
case 0x76: k = 0x27; break; //ESC
case 0x54: k = '['; break;
case 0x5B: k = ']'; break;
case 0x4C: k = ';'; break;
case 0x52: k = '\''; break;
case 0x41: k = ','; break;
case 0x49: k = '.'; break;
case 0x4A: k = '/'; break;
default: k = '\0'; break;
}
if ( capslock )
{
if ( (k >= 'A') && (k <= 'Z') )
{
k += ('a'-'A');
}
}
return k;
}
void kb_init()
{
PX1=1;
IT1=1;
EX1=1;
EA=1;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -