📄 key.c
字号:
#include <msp430x13x.h>
//p37 Ok
//p30 Return
//p36 Left
//p31 Right
//p33 Up
//p32 Down
void init_key(void)
{
//P3DIR &=~0xcf;
P3DIR &= ~0x03;
P2DIR &= ~0xf0;
// P3DIR = 0x10;
}
/*******************************************************/
//p37=01111111=7fh ok 1
//p30=11111110=feh Return 2
//p36=10111111=bfh Left 3
//p31=11111101=fdh Right 4
//p33=11110111=f7h up 5
//p32=11111011=fbh down 6
/*******************************************************/
unsigned char read_key_val()
{
unsigned char key_buff,key_buff1;
key_buff=P3IN;
key_buff1=P2IN;
key_buff=key_buff|0Xfc;
key_buff1=key_buff1|0X0f;
if(key_buff==0xff && key_buff1==0xff)
{
key_buff=0xff;
}
else if(key_buff1==0xff)
{
switch(key_buff)
{
case 0xfd :
key_buff=1; //ok
break;
case 0xfe :
key_buff=3; //left
break;
default: break;
}
}
else if(key_buff==0xff)
{
switch(key_buff1)
{
case 0xef :
key_buff=2; //return
break;
case 0xdf :
key_buff=4; //right
break;
case 0x7f :
key_buff=5; //up
break;
case 0xbf :
key_buff=6; //down
break;
default: break;
}
}
return key_buff;
}
unsigned char read_key()
{
unsigned char val,val1,val2;
unsigned int i;
val1=read_key_val();
for(i=0;i<100;i++);
val2=read_key_val();
if(val1==val2 && val1!=0xff)
{
val=val1;
while(1)
{
if(read_key_val()==0xff) break;
}
}
else
{
val=0xff;
}
return val;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -