key.c

来自「应用于利而达MSP430-TEST42X板的液晶屏测试代码」· C语言 代码 · 共 45 行

C
45
字号
//****************************************************************************
//********                  Made by Karon /2006-06-06                 ********
//****************************************************************************
unsigned char keybuf;		//键值缓冲器

//****************************************************************************
//********                         判断键子程序                       ********
//****************************************************************************
unsigned char p1keyj(void);
{
  unsigned char x;
  x=(P1IN&0x07);		//P10--P12接有按键
  return(x);			//有按键返回,非0
}

//****************************************************************************
//********                 找哪个按键被按下,查键值子程序             ********
//****************************************************************************
unsigned char keycode()
{
  unsigned char x;
  if((P1IN&0x07)==1)		//是否第一个按键
    then  x=0;
  else if((P1IN&0x07)==2	//是否第二个按键
         then x=1;
       else if((P1IN&0x07)==4)	//是否第三个按键
            x=2;
  return(x);
}

//****************************************************************************
//********                      端口1的中断服务程序                   ********
//****************************************************************************
interrupt[PORT1_VCETOR] void port1key(void)
{
  while(p1keyj()!=0)
       {
         delay(500);		//延时消除抖动
         while(p1keyj()!=0)
              {
                keybuf=keycode();//确信有按键按下,找按键得键值,送到全局变量keybuf
                while(p1keyj()==0);//等待按键松开
              }
       }
}

⌨️ 快捷键说明

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