📄 checker.c
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define TRUE 1
#define FAULSE 0
#define scan P2
sbit L1=P2^0;
sbit L2=P2^1;
sbit L3=P2^2;
sbit L4=P2^3;
sbit C1=P2^4;
sbit C2=P2^5;
sbit C3=P2^6;
sbit C4=P2^7;
uchar key=0;
/****************check if any key pressed*********************/
bit CheckState(void)
{
bit key=0;
uchar state=0;
scan=0x0F; //scan key
state=scan; //get kay state
if(state!=0x0F)key=TRUE; //check if any key pressed
else key=FAULSE;
return(key);
}
/****************** ckeck whitch key pressed*****************/
uchar GetKeys(void)
{
scan=0xFF;
if(L1==0) //line 1 have key pressed
{
if(C1==0)key=0x11;
else if(C2==0)key=0x21;
else if(C3==0)key=0x41;
else key=0x81;
}
else if(L2==0)
{
if(C1==0)key=0x12;
else if(C2==0)key=0x22;
else if(C3==0)key=0x42;
else key=0x82;
}
else if(L3==0)
{
if(C1==0)key=0x14;
else if(C2==0)key=0x24;
else if(C3==0)key=0x44;
else key=0x84;
}
else
{
if(C1==0)key=0x18;
else if(C2==0)key=0x28;
else if(C3==0)key=0x48;
else key=0x88;
}
return(key);
}
void DisplayKey(uchar key)
{
P1=key;
}
void main()
{
while(1)
{
if(CheckState())key=GetKeys();
DisplayKey(key);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -