📄 4x4.c
字号:
#include<reg52.h>
//可输出0~9的ASCII码
#define uchar unsigned char
#define uint unsigned int
#define Key_Port P1//P1口为键盘接口
void dlms(void)
{
uchar i;
for(i=200;i>0;i--){}
}
uchar GetKey(void)//获取键值
{
uchar Set_Code,R_Code;
Key_Port=0xf0;
if((Key_Port&0xf0)!=0xf0)
{
dlms();
if((Key_Port&0xf0)!=0xf0)
{
Set_Code=0xfe;
while((Set_Code&0x10)!=0)
{
Key_Port=Set_Code;
if((Key_Port&0xf0)!=0xf0)
{
R_Code=(Key_Port&0xf0)|0x0f;
return ((~R_Code)+(~Set_Code));
}
else
Set_Code=(Set_Code<<1)|0x01;
}
}
}
return 0;
}
keyin()
{ uchar key;
key=GetKey();
switch(key)
{
case 0x11:
key=0;
P0=0x5f; //0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7,0xdf,0xca,0x9b,0xdc,0xdb,0x8b
break;
case 0x12:
key=1;
P0=0x44;
break;
case 0x14:
key=2;
P0=0x9d;
break;
case 0x18:
key=3;
P0=0xd5;
break;
case 0x21:
key=4;
P0=0xc6;
break;
case 0x22:
key=5;
P0=0xd3;
break;
case 0x24:
key=6;
P0=0xdb;
break;
case 0x28:
key=7;
P0=0x45;
break;
case 0x41:
key=8;
P0=0xdf;
break;
case 0x42:
key=9;
P0=0xd7;
break;
case 0x44:
key=10;
break;
case 0x48:
key=11;
break;
case 0x81:
key=12;
P0=0x01;
break;
case 0x82:
key=13;
P0=0x02;
break;
case 0x84:
key=14;
P0=0x04;
break;
case 0x88:
key=15;
P0=0x08;
break;
default:
key=0xff;
break;
}
return(key);
}
void main(void)
{
while(1)
{
keyin();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -