📄 key.c
字号:
/********************************************
/* 键盘扫描函数
/* PROTC口用于扫描键盘
/* 函数返回键值,无按键时返回0x7F
/* 在其他文件中调用函数时应做以下说明
/* extern unsigned char scan_key(void);
/* extern unsigned char keypad(void);
********************************************/
#include <io8515v.h>
#include <Key.h>
#pragma data:code
const char keyset[]=
{
12,13,14,15,
8, 9, 10,11,
4, 5, 6, 7,
0, 1, 2, 3
};
#pragma data:data
void key_init(void)
{
JP = 0xFF;
JP_FX = 0x00;
}
unsigned char scan_key(void)
{
unsigned char i,temp;
JP_FX=0x0F;
JP=0xFF;
for(i=0;i<4;i++)
{
JP=~(1<<i);
delay_nus(100);
temp=JP_IN&0xF0;
if(temp!=0xF0)
{
delay_nms(15);
temp=JP_IN&0xF0;
if(temp!=0xF0)
{
temp&=0xF0;
switch(temp)
{
case 0x70:temp=15-(3-i)*4;break;
case 0xb0:temp=14-(3-i)*4;break;
case 0xd0:temp=13-(3-i)*4;break;
case 0xe0:temp=12-(3-i)*4;break;
default:temp=0x7F;
}
temp=keyset[temp];
return temp;
}
}
JP=0x7F;
}
return 0x7F;
}
unsigned char keypad(void)
{
unsigned char temp1,temp2;
temp1=scan_key();
if(temp1==0x7F)
return 0x7F;
do
temp2=scan_key();
while(temp1==temp2);
return temp1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -