📄 keyboard.c
字号:
#include <hardware.h>
extern void delay10ms();
extern unsigned char point;
#define KEY_NULL 100;
unsigned char keypoint;
extern unsigned char code key[8][11]=//钯盘分值表
{
{0x0a,0x0f,0x02,0x11,0x03,0x00,0x0d,0x04,0x12,0x06,0x01},
{0x0a,0x0f,0x02,0x11,0x03,0x00,0x0d,0x04,0x12,0x06,0x01},
{0x0a,0x0f,0x02,0x11,0x03,0x00,0x0d,0x04,0x12,0x06,0x01},
{0x0a,0x0f,0x02,0x11,0x03,0x00,0x0d,0x04,0x12,0x06,0x01},
{0x0b,0x08,0x10,0x07,0x13,0x32,0x0e,0x09,0x0c,0x05,0x14},
{0x0b,0x08,0x10,0x07,0x13,0x32,0x0e,0x09,0x0c,0x05,0x14},
{0x0b,0x08,0x10,0x07,0x13,0x32,0x00,0x09,0x0c,0x05,0x14},
{0x0b,0x08,0x10,0x07,0x13,0x32,0x00,0x09,0x0c,0x05,0x14}
};
unsigned char keyboard();
unsigned char keyboard()
{
unsigned char row;
unsigned char mask;
unsigned char multiple[8]={1,3,1,2,1,3,1,2};//8个倍区
// KEY_OUT_PORT=0x00;
P1=0x00;
if(KEY_IN0_PORT&KEY_IN1_PORT&KEY_IN2_PORT&KEY_IN3_PORT&KEY_IN4_PORT
&KEY_IN5_PORT&KEY_IN6_PORT&KEY_IN7_PORT&KEY_IN8_PORT&KEY_IN9_PORT&
KEY_IN10_PORT)
// {
// delay10ms();//去抖
// if(KEY_IN0_PORT&KEY_IN1_PORT&KEY_IN2_PORT&KEY_IN3_PORT&KEY_IN4_PORT
// &KEY_IN5_PORT&KEY_IN6_PORT&KEY_IN7_PORT&KEY_IN8_PORT&KEY_IN9_PORT&
// KEY_IN10_PORT)
return KEY_NULL;//返回空按键
//else
// return KEY_DOWN;
// }
for(row=0,mask=0x01;row<8; row++,mask<<=1)
{
P1=~mask;
if(KEY_IN0_PORT==0) {delay10ms();if(KEY_IN0_PORT==0) return (keypoint=multiple[row]*key[row][0]);}
else if(KEY_IN1_PORT==0) {delay10ms();if(KEY_IN1_PORT==0) return (keypoint=multiple[row]*key[row][1]);}
else if(KEY_IN2_PORT==0) {delay10ms();if(KEY_IN2_PORT==0) return (keypoint=multiple[row]*key[row][2]);}
else if(KEY_IN3_PORT==0) {delay10ms();if(KEY_IN3_PORT==0) return (keypoint=multiple[row]*key[row][3]);}
else if(KEY_IN4_PORT==0) {delay10ms();if(KEY_IN4_PORT==0) return (keypoint=multiple[row]*key[row][4]);}
else if(KEY_IN5_PORT==0) {delay10ms();if(KEY_IN5_PORT==0) return (keypoint=multiple[row]*key[row][5]);}
else if(KEY_IN6_PORT==0) {delay10ms();if(KEY_IN6_PORT==0) return (keypoint=multiple[row]*key[row][6]);}
else if(KEY_IN7_PORT==0) {delay10ms();if(KEY_IN7_PORT==0) return (keypoint=multiple[row]*key[row][7]);}
else if(KEY_IN8_PORT==0) {delay10ms();if(KEY_IN8_PORT==0) return (keypoint=multiple[row]*key[row][8]);}
else if(KEY_IN9_PORT==0) {delay10ms();if(KEY_IN9_PORT==0) return (keypoint=multiple[row]*key[row][9]);}
else if(KEY_IN10_PORT==0) {delay10ms();if(KEY_IN10_PORT==0) return (keypoint=multiple[row]*key[row][10]);}
}
return KEY_NULL;
}
/*
unsigned int result()
{
//unsigned char i,j;
unsigned char multiple[8]={1,3,1,2,1,3,1,2};//8个倍区
// unsigned int point;
numpoint=multiple[row]*keyboard();//分数=倍数乘以键值
return(numpoint);
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -