📄 key.c
字号:
//在LPC2148中BP8--BP3对应与P0.10-P0.15
//其为低电平有效
//在IO初始化时,“0”代表输入,“1”代表输出
/* BP6 BP7 BP8
BP3 BP4 BP5
对应的按键编号:
1 2 3
4 5 6
*/
#include"lpc214x.h"
#include"PCF8833.H"
#include "head.h"
INT16U file_num0=0;
INT16U file_id=0;
void delay0()
{
int a0,b;
for(a0=1;a0<20000;a0++)
for(b=1;b<50;b++)
;
}
INT8U key_scan()
{
int a=0;
INT8U key=0;
a=IO0PIN;
a=a&0X0000FC00;
a=a>>10;
switch(a)
{
case 0x3e: key=3; //对应于BP8
break;
case 0x3d: key=2; //对应于BP7
break;
case 0x3b: key=1; //对应于BP6
break;
case 0x37: key=6; //对应于BP5
break;
case 0x2f: key=5; //对应于BP4
break;
case 0x1f: key=4; //对应于BP3
break;
default: key=0;
break;
}
return(key);
}
void clear_sign(INT16U file_id)
{
INT8U y;
if(file_id<8)
{
y=file_id*16;
PutGBstring(120,y," ",0xf800,0xffff);
}
else PutGBstring(120,112," ",0xf800,0xffff);
}
void LIST_key_dispose(INT8U key,INT16U file_num,INT8U *Buffer)
{
INT8U y=file_id*16;
if(file_num0!=0)
{
if(file_num!=file_num0)
file_num=file_num0;
}
switch(key)
{
case 2: clear_sign(file_id);
delay0(); //此处是为了防止按键反应太灵敏而设
file_id=file_id-1;
if(file_id>=file_num)
file_id=file_num-1;
LIST_dispose(file_id);
break;
case 5: clear_sign(file_id);
delay0();
file_id=file_id+1;
if(file_id==file_num)
file_id=0;
LIST_dispose(file_id);
break;
case 3:PutGBstring(120,y," ",0xf800,0xffff);
delay0();
file_num0=read_file(file_id,Buffer);
file_id=0;
break;
case 6: file_num0=SD_List(folder_father,Buffer);
file_id=0;
break;
default: break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -