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

📄 msp430的键盘程序.c

📁 MSP430系列单片机适用小程序
💻 C
字号:
#include  "msp430x13x.h"

unsigned char keybuff=0;
unsigned char disbuffer[8]={0,1,3,8,0xf,5,8,7};
unsigned char seg[]={0x3f,0x06,0x5b,0x4f,
	0x66,0x6d,0x7d,0x07,
	0x7f,0x6f,0x77,0x7c,
	0x39,0x5e,0x79,0x71,
	0xbf,0x86,0xdb,0xcf,
	0xe6,0xed,0xfd,0x87,
	0xff,0xef,0xf7,0xfc,
	0xb9,0xde,0xf9,0xf1,

	0x80,0x40,0x00,0x73,0xc0};

void delay(int v)
    {
        while(v!=0)v--;
    }

unsigned char key4_12judge(void)
  {
  unsigned char hang=1,i;
  for(i=0;i<4;i++)
     {
     P3DIR|=0x0f;       //P2低4位输出方式
     P3OUT&=~0x0f;       //P2低4位输出低电平
     P3OUT=hang;        //扫描信号
     P3DIR&=~(0x0f-hang);
     if((P3IN&0x0f)!=hang)
          return(0xff);
     hang=hang<<1;
     }
     P3DIR  =  0x1f;    //
  return(0x00);         //没有按键返回0
  }

unsigned char key4_12code(void)     //扫描键码值
   {
   unsigned char hang=1,i,temp=0;
   for(i=0;i<4;i++)
     {
  //   P3DIR|=0x0f;       //P2低4位输出方式
     P3OUT&=~0x0f;       //P2低4位输出低电平
     P3OUT=hang;        //扫描信号
     P3DIR&=~(0x0f-hang);
     if((P3IN&0x0f)!=hang)
          {
          if(((P3IN&0xf)-hang)==1)
            return(3+temp);
            else
              if(((P3IN&0xf)-hang)==2)
              return(2+temp);
              else
                 if(((P3IN&0xf)-hang)==4)
                 return(1+temp);
                 else 
                    if(((P3IN&0xf)-hang)==8)
                    return(0+temp);
          }
     hang=hang<<1;
     temp=temp+4;
     }  
   }
 
void key4_12(void)
  {
  unsigned char keytab[]={1,2,3,15,4,5,15,6,7,15,8,9,15,10,0,11};
  if(key4_12judge()!=0)  
       {
       delay(1000);
       if(key4_12judge()!=0)
            {
            keybuff=key4_12code();
            keybuff=keytab[keybuff];
keywait:      if(key4_12judge()!=0)
              goto keywait;
            }
        }       
  }


void main(void)
{
  P3DIR  =  0x1f;
  while(1)
  {

  key4_12();
  ;
  delay(10);
  ;
  ;
  }
}

⌨️ 快捷键说明

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