| /*------------------------------------------------------------ FILE NAME : FGPIO.c DEscrīptION : 键盘输入。当检测到有按键输入时,对蜂鸣器BUZZER进行取后控制。 使用FGPIO口输入方式对按键KEY进行扫描。
//--------------------Include files-------------------------// #include <lpc2103.h> //--------------------Variable ----------------------------//
//-------------------Function prototype-------------------//
//-------------------Function ----------------------------//
//-------------------Define-------------------------------//
#define BUZZER 0x00000080 /* P0.7引脚控制BUZZER,低电平点亮*/ #define KEY 0x00040000 /* P0.18引脚连接KEY */
/*-------------------------------------------------------- NAME : waitkey ENTRY TYPE : void RETURN TYPE : void PURPOSE : 等待一个有效按键。本函数有去抖功能。 VERSION : 0.0.0 DEscrīptION : CREATE DATE : 12.07.2006 LOGS :--\ - 1.create; ---------------------------------------------------------*/ void WaitKey(void) { unsigned int i;
while(1) { while( (FIOPIN&KEY)!=0 ); // 等待KEY键按下 for(i=0; i<500; i++); // 延时去抖 if( (FIOPIN&KEY)==0 ) break; } while( (FIOPIN&KEY)==0 ); // 等待KEY键放开 }
//------------------ End of file ----------------------------//
/*-------------------------------------------------------- NAME : main ENTRY TYPE : void
RETURN TYPE : void PURPOSE : 读取按键,控制BUZZER VERSION : 0.0.0 DEscrīptION : CREATE DATE : 12.07.2006 LOGS :--\ - 2.create; ---------------------------------------------------------*/ int main(void) { PINSEL0 = 0x00000000; // 设置所有管脚连接GPIO PINSEL1 = 0x00000000;
SCS=1; //设置快速FGPIO模 FIODIR = BUZZER; // 设置BUZZER控制口为输出,其它I/O为输入 FIOMASK=0x00000000; // 允许快速I/O while(1) { FIOSET =BUZZER; WaitKey(); FIOCLR =BUZZER; WaitKey(); } return(0); } //------------------ End of file ----------------------------// |