⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.c

📁 基本原则qrwrfewtrrgvcdgf
💻 C
字号:
#include <LPC214X.H>

/*============================================================
	LPC214X 按键功能演示
功能:按下键,对应的LED灯点亮。
作者: Mingtree	ycxms88@163.com   http://www.mcu123.com
==============================================================
*/
/*
引脚分布
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
TX0	 RX0			CS1		  K4   K3

P0.8 P0.9 P0.10 P0.11 P0.12 P0.13 P0.14 P0.15
TX1	 RX1  RW 	SCL	  SDA	 K1	  VRST	K2

P0.16 P0.17 P0.18 P0.19 P0.20 P0.21 P0.22 P0.23
BEEP  SCK1	MISO  MOSI	SSEL  RS_COM RW	   VB
P0.24 P0.25 P0.26 P0.27 P0.28 P0.29 P0.30 P0.31
	  AOUT	D+	   D-	A_IN1 A_IN2	 CS2   ULED

LED引脚
L1---------L8
P1.16----P1.23
*/

#define KEY1 13
#define KEY2 15
#define KEY3 7
#define KEY4 6

#define KEY_MASK=(1<<KEY1)|(1<<KEY2)|(1<<KEY3)|(1<<KEY4)

 void init_port(void)
 {

 //port initialized
 IODIR1=0x00FF0000;
 IODIR0=0x40600010;

 }
/*
unsigned char Scan_Key(void)
{
	unsigned int k;
	k=IOPIN0;
	if((k&1<<KEY1)==0)return 1;
	if((k&1<<KEY2)==0)return 2;
	if((k&1<<KEY3)==0)return 3;
	if((k&1<<KEY4)==0)return 4;
	return 0;
}
*/
unsigned char Scan_Key(void)
{
	unsigned int k;
	unsigned char key,i;

	i=0;
	key=0;

	k=IOPIN0;
	if((k&1<<KEY4)==0)key+=1;
	key=key<<1;
	if((k&1<<KEY3)==0)key+=1;
	key=key<<1;
	if((k&1<<KEY2)==0)key+=1;
	key=key<<1;
	if((k&1<<KEY1)==0)key+=1;
	switch(key)
	{
	case 0x00:
		i=0; 
		break;
	case 0x08:
		i=4; 
		break;
	
	case 0x04:
		i=3; 
		break;
	
	case 0x02:
		i=2; 
		break;
	
	case 0x01:
		i=1; 
		break;

	case 0x0F:	  //复合键
		i=0XF; 
		break;
	
	case 0x0E:
		i=0X0E; 
		break;
	default:
		i=0;
		break;
	}
	return i;
}

/*

*/
void delay (unsigned int i) {                        /* Delay function */
unsigned int n;
while(i>1)
{
	for(n=65535;n>1;n--);
	i--;
}
}



int main(void)
{
	unsigned char i;
	init_port();
	while(1)
	{
	 i=Scan_Key();
	 if(i!=0)IOCLR1 = (0x00008000<<i);	 
	 
	 delay(30);
	 IOSET1 = 0x00ff0000; //ALL LED OFF
	 //delay(100);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -