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

📄 jianpan.c

📁 MSP430F449 键盘接口 MSP430F449 MSP430F449 MSP430F449
💻 C
字号:
#include<msp430x44x.h>

void delay(unsigned int i)     //延时函数
{ 
  do i--;
  while(i!=0);
}

unsigned char key(void)       // 判断按键的键值        
{
  unsigned char x=0xff;
  P1DIR=0x0F;
  P1OUT=0x08;                 // 扫描第一行 P1.3
  if((P1IN&0xF0)==0x80)
    x=0;                       
    else if((P1IN&0xF0)==0x40)
     x=1;
    else if((P1IN&0xF0)==0x20)
     x=2;
    else if((P1IN&0xF0)==0x10)
     x=3;
  else
  {
    P1OUT=0x04;
    if((P1IN&0xF0)==0x80)       // 扫描第二行 P1.2
     x=4;
      else if((P1IN&0xF0)==0x40)
       x=5;
      else if((P1IN&0xF0)==0x20)
       x=6;
      else if((P1IN&0xF0)==0x10)
       x=7;
    else
    {
      P1OUT=0X02;                  //扫描第三行 P1.1
      if((P1IN&0xF0)==0x80)
       x=8;
        else if((P1IN&0xF0)==0x40)
         x=9;
        else if((P1IN&0xF0)==0x20)
         x=10;
        else if((P1IN&0xF0)==0x10)
         x=11;
    }
  }
  while(P1IN != 0x00) ; //等待按键松开
  return(x);
}

void main(void)     
{    
     int i=0;
     unsigned char a[100];
kkk: P1DIR=0xff;
     P1OUT=0x00;
     P1DIR=0x0f;
     P1OUT=0x0f;
     if((P1IN&0xf0)!=0)           //判键消抖动  
     {
       delay(1000);               
       if((P1IN&0xf0)!=0)
       {
         a[i]=key();              //判断键值
         i++;
         goto kkk;
       }
     }
     else goto kkk;
    
}



⌨️ 快捷键说明

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