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

📄 keyin.c

📁 查询方式测按健
💻 C
字号:
/****************************************************************************
* File:KEYIN.C
* 功能:键盘输入。当检测到有按键输入时,对发光二极管LED4进行取后控制。
*      使用I/O口输入方式对按键KEY1进行扫描。
* 说明:将跳线器JP8_LED4短接。
****************************************************************************/
#include  "config.h"


#define	  LEDCON	0x00002000		/* P0.13引脚控制LED4,低电平点亮*/
#define   KEY1		0x00004000		/* P0.14引脚连接KEY1 */
#define   KEY2		0x00008000
#define   KEY3		0x00010000
#define   KEY4		0x00400000
#define   KEY5		0x00800000
#define   KEY6		0x01000000
#define   KEY		0x0001c000     // 0x01c1c000
uint8 remark;

/****************************************************************************
* 名称:WaitKey()
* 功能:等待一个有效按键。本函数有去抖功能。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  WaitKey(void)
{  uint32  i,temp;
   while(1)
   {  
      while( (IOPIN&KEY1)!=0 & (IOPIN&KEY2)!=0 & (IOPIN&KEY3)!=0); 		
         // 等待KEY1,KEY2 或 KEY3键按下
      for(i=0; i<300; i++);		   // 延时去抖
      temp = IOPIN&KEY;
      switch(temp)
       { case 0x00018000:while( (IOPIN&KEY1)==0 );remark=0x01;break; 
         case 0x00014000:while( (IOPIN&KEY2)==0 );remark=0x02;break;
         case 0x0000c000:while( (IOPIN&KEY3)==0 );remark=0x03;break;
       } 
       if(remark==0x01)break; 
       if(remark==0x02)break;
       if(remark==0x03)break;            
    }
    		
}
/****************************************************************************
* 名称:main()
* 功能:读取按键,控制LED闪烁
****************************************************************************/
int  main(void)
{  PINSEL0 = 0x00000000;		    // 设置所有管脚连接GPIO
   PINSEL1 = 0x00000000;
   remark = 0xff;
   IODIR = LEDCON;			        // 设置LED控制口为输出,其它I/O为输入
   while(1)	
   {  IOSET = LEDCON;
      WaitKey();
      IOCLR = LEDCON;
      WaitKey();
   }
   return(0);
}








⌨️ 快捷键说明

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