key123_q.c

来自「MSP430开发板413演示程序 MSP430开发板413演示程序」· C语言 代码 · 共 82 行

C
82
字号
/******************************************
*   文件名:
*       LED4.c
*   功能:
*     主程序
*     单个按键键盘测试程序
******************************************/
#include <msp430x44x.h>
#define uchar unsigned char
#define uint unsigned int

uint f = 0;
void flash_led(uint x)
    {
        uint temp ;
        P1DIR |= BIT0;
        for(temp=0;temp<x;temp++);
        P1OUT ^= BIT0;
    }
char key(void)
    {
      int temp=0;
      char x;
      P1DIR &= ~(BIT1+BIT2+BIT3);   //设置P1.123为输入
keystart:
      temp = P1IN ;
      flash_led(f);
      if((temp & 0x0e)!=0x0e)
          flash_led(f);
      else goto keystart;
      temp = P1IN ;
      if((temp & 0x0e)!=0x0e)
          {
            temp = P1IN ;
            temp = ~temp  ;
            if((temp & BIT1)== BIT1)
                temp = 0 ;
            else if((temp & BIT2)== BIT2)
                temp = 1 ;
            else if((temp & BIT3)== BIT3)
                temp = 2 ;
            x = temp ;
key1111:
            temp = P1IN ;
            if((temp & 0x0e)==0x0e)
                return(x);
            else goto key1111;
          }
    }

/******************************************/
void main(void)
{
    char i;
     WDTCTL = WDTHOLD + WDTPW;     //关闭看门狗
     P1DIR |= BIT0;
     P5DIR |= BIT1;
     for(;;)
         {
             i = key();
             if(i==0)
                 {
                 f = f + 4000;
                 if(f> 50000)
                     f = 50000;
                  }
             else if(i==1)
                 {
                     f = f - 4000 ;
                     if(f<0)
                         f = 0 ;
  
                  }
             else if(i==2)
                 {
                 P1OUT ^= BIT0;
                 P5OUT ^= BIT1;
                  }
             _NOP();  
         }
}

⌨️ 快捷键说明

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