📄 keyscan.c
字号:
#include <reg51.h>
#include <string.h>
#include <intrins.h>
#include <stdio.h>
#include "base.h"
#define KEYPORT P1
uchar code col_code[4]={0xe0,0xd0,0xb0,0x70};
uchar keypressed()
{uchar f=0;
KEYPORT=0xf0;
if((KEYPORT&0xf0)!=0xf0)
{
delay_ms(20);
if((KEYPORT&0xf0)!=0xf0)
f=KEYPORT&0xf0;
else
f=0;
}
else
f=0;
return f;
}
uchar getcol(uchar c)
{
uchar i=0;
bit find=0;
while (!find && i<4)
{
if (col_code[i]==(c&0xf0))
find=1;
i++;
}
if (find)
return i;
else
return 0;
}
uchar getkey()
{ uchar col=0,row=0,i=0,key;
bit f=1;
if (keypressed())
{
col=getcol(KEYPORT&0XF0);
for(i=0;i<4;i++)
{
KEYPORT=(col_code[i]>>4)|0xf0;
if ((KEYPORT&0xf0)!=0xf0)
row=i;
}
KEYPORT=0xf0;
while ((KEYPORT&0xf0)!=0xf0);
return row*10+col;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -