📄 key.c
字号:
/******************************************************************************/
/* This file is part of the uVision/ARM development tools */
/* Copyright KEIL ELEKTRONIK GmbH 2002-2004 */
/******************************************************************************/
/* */
/* */
/* KEY.C: KEY Example */
/* */
/* */
/* KEY_SUB 0x13; //00010011 */
/* KEY_RETURN 0x23; //00100011 */
/* KEY_DOWN 0x43; //01000011 */
/* KEY_LEFT 0x83; //10000011 */
/* KEY_OK 0x15; //00010101 */
/* KEY_PULS 0x25; //00100101 */
/* KEY_RIGHT 0x45; //01000101 */
/* KEY_UP 0x85; //10000101 */
/* KEY_F4 0x16; //00010110 */
/* KEY_F3 0x26; //00010110 */
/* KEY_F2 0x46; //00010110 */
/* KEY_F1 0x86; //00010110 */
/* */
/******************************************************************************/
#include <LPC2294.H> /* LPC21xx definitions */
extern void putstr(char *p);
extern void puthex (int hex);
unsigned char bKeyDown,bKey_p,bKey_m;
unsigned char KeyNum;
unsigned long KeyOut[4] = {0x00080000,0x00100000,0x00200000,0x00400000};
//获得按键
void Get_Key(void)
{
unsigned char i;
unsigned long InputKeyTemp;
unsigned char KeyCodeTemp;
unsigned char InputKey2;
IOCLR0 =0x00780000; //P0.19:22 =0000;
InputKeyTemp = IOPIN0; //InputKey=P27:29;
InputKey2 = (unsigned char )(InputKeyTemp >> 27) & 0x07;
if (InputKey2 == 0x07) //no key push down
{
bKey_m = 0; bKey_p = 0;
return;
}
else
{
if (bKey_m == 0)
{
bKey_m = 1; return;
}
else if (bKey_m==1 && bKey_p==0)
{
for(i=0;i<4;i++)
{
IOSET0 = 0x00780000 - KeyOut[i]; //P0.19:22
IOCLR0 = KeyOut[i] ; //P0.19:22
InputKeyTemp = IOPIN0; //InputKey=P27:29;
if (InputKey2 != 0x07)
{
KeyCodeTemp = (unsigned char)((KeyOut[i]>>15)+ InputKey2);
bKeyDown = 1;
KeyNum = KeyCodeTemp;
bKey_p=1;
break;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -