?? keyscan.c
字號:
//#include <lcd.c>
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void lcd_wr(char a);
//sbit dc=P2^0;
//sbit rw=P2^1;
//sbit cs=P2^4;
void delay(uint i)
{while(i--);}
uchar keyscan(void)
{uchar rcode , lcode;
P0=0xf0;
if((P0&0xf0)!=0xf0)
{delay(500);
if((P0&0xf0)!=0xf0)
{rcode = 0xfe;
while((rcode&0x10)!=0)
{P0 = rcode;
if((P0&0xf0)!=0xf0)
{lcode = P0&0xf0;
rcode = rcode&0x0f;
return(rcode+lcode);
}
else
rcode = (rcode<<1)|0x01;
}
}
}
return(0);
}
/*void lcd_wr(uchar a)
{
P0 = a;
} */
void main(void)
{uchar key;
while(1)
{
key = keyscan();
switch(key)
{
case 0xee:lcd_wr('0');
case 0xde:lcd_wr('1');
case 0xbe:lcd_wr('2');
case 0x7e:lcd_wr('3');
case 0xed:lcd_wr('4');
case 0xdd:lcd_wr('5');
case 0xbd:lcd_wr('6');
case 0x7d:lcd_wr('7');
case 0xeb:lcd_wr('8');
case 0xdb:lcd_wr('9');
case 0xbb:lcd_wr('+');
case 0x7b:lcd_wr('-');
case 0xe7:lcd_wr('*');
case 0xd7:lcd_wr('%');
case 0xb7:lcd_wr('=');
case 0x77:lcd_wr('0');
default :break;
}
delay(500);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -