求助怎么msp430g2553P1.6,P1.7改成P2.0,2.1

2019-07-15 16:05发布

unsigned char KEY_Scan()
{
unsigned char temp = 0;
unsigned char com = 0x55 , com1 = 0 , com2 = 0;
   P1DIR &= ~(BIT0+BIT1+BIT2+BIT3);//在中断设为输入,用于消抖   因为IO脚默认为输入,所以这句话不要也行,但是
  //最好加上使程序清晰
    /* delay_us(5);     //延迟5ms,消抖  延迟5ms 10ms都行
     P1DIR |=(BIT0+BIT1+BIT2+BIT3);
     if(P1DIR^=0xf0)
{
  com1=P1DIR;
  P1DIR |=0x0f;
  com2=P1DIR;        
}
P1DIR=0xf0;

temp=com1|com2;
if(temp==0xee)com=1;//数字1
if(temp==0xed)com=4;//数字4
if(temp==0xeb)com=7;//数字7
if(temp==0xe7)com=11;//备用键*号键
if(temp==0xd7)com=0;//数字0
if(temp==0xb7)com=14;//备用键*号键

if(temp==0xde)com=2; //数字2
if(temp==0xdd)com=5; //数字5
if(temp==0xdb)com=8;//数字8
if(temp==0xbe)com=3;//数字3
if(temp==0xbd)com=6; //数字6
if(temp==0xbb)com=9;//数字9
if(temp==0x7e)com=16;//数字A键
if(temp==0x7d)com=15;//数字B键
if(temp==0x7b)com=12;//数字C
if(temp==0x77)com=13;//数字D键
return(com);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。