key.c

来自「Lpc2103的小程序」· C语言 代码 · 共 74 行

C
74
字号
/*************************************** Copyright (c) *************************************************
*
*					POLAR STAR
*				北天星国际贸易(深圳)有限公司
*				    http://www.po-star.com

*********************************************************************************************************
* 文件名:key.C
* 功能:GPIO测试实验。
       当检测到有按键输入时,对发光二极管LED1进行取反控制。
*      使用I/O口输入方式对按键KEY1进行扫描。
* 说明:将跳线器JP1的KEY1短接及跳线器JP2的LED1短接;
*	
********************************************************************************************************/

#include  "..\inc\config.h"			


/********************************************************************************************************
*
* 函数名称:WaitKey()
*
* 功能描述:等待一个有效按键,本函数有去抖功能。
*
* 入口参数:无
* 出口参数:无
*
* 全局变量: 无
* 调用模块: 无
*
********************************************************************************************************/

void  WaitKey(void)
{
  U32  tmp;
  while(1)
 {
    while((IO0PIN&KEY1) != 0);			// 等待KEY1键按下
    for(tmp=0; tmp<50000; tmp++);		// 延时去抖
    if((IO0PIN&KEY1) == 0) break;		// 按键操作有效
 }
  while((IO0PIN&KEY1) == 0); 				// 等待KEY1键放开
}

/********************************************************************************************************
*
* 函数名称:main()
*
* 功能描述:读按键,控制LED闪烁
*
* 入口参数:无
* 出口参数:无
*
* 全局变量: 无
* 调用模块: 无
*
********************************************************************************************************/

void  main(void)
{
	PINSEL0 = 0x00000000;		    	// 设置所有管脚连接GPIO
	PINSEL1 = 0x00000000;

	IO0DIR = LED1CON;			        // 设置LED控制口为输出,其它I/O为输入
	
	while(1)	
	{
        IO0SET = LED1CON;				// 灭灯
      	WaitKey();				// 等待按键触发
      	IO0CLR = LED1CON;				// 亮灯
      	WaitKey();				// 等待按键再次触发
	}
}

⌨️ 快捷键说明

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