sunhaojie 发表于 2011-1-5 21:04:34

430调试程序是出现奇怪现象

这个键盘程序是参照尹延辉的视频写的,下载后发现没反应,后来偶然发现上电后没法应,按一下复位按键有反应,再按一下复位按键程序正常执行,我是初学者,甚是不明白,望高手指导一下,下面是程序
#include "msp430x14x.h"
#include "My_define.h"
#include "My_function.h"

#define keyin (P1IN&0X0F)

uchar keyval = 0;

void main( void )
{

//init();
WDTCTL = WDTPW + WDTHOLD;

P1IES = 0X0F;
P1IE = 0X0F;
P1DIR = BIT7;
P1OUT = 0;

P4DIR = 0XFF;
P5DIR = 0XFF;
P5OUT = 0xc0;
P4OUT = 0XF7;

_EINT();
for(;;)
{
    LPM1;
    P5OUT = duan;
}
}

#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
if(P1IFG & 0X0F)
{
    switch(P1IFG)
    {
      case 0x01:if(keyin == 0x0e)
                {
                  delay_DCO_1ms(8);
                  if(keyin == 0x0e)
                  {
                  while(keyin != 0x0f);
                  keyval = 1;
                  LPM1_EXIT;
                  P1IFG=0;
                  return ;
                  }
                }
      case 0x02:if(keyin == 0x0d)
                {
                  delay_DCO_1ms(8);
                  if(keyin == 0x0d)
                  {
                  while(keyin != 0x0f);
                  keyval = 2;
                  LPM1_EXIT;
                  P1IFG=0;
                  return ;
                  }
                }
          case 0x04:if(keyin == 0x0b)
                {
                  delay_DCO_1ms(8);
                  if(keyin == 0x0b)
                  {
                  while(keyin != 0x0f);
                  keyval = 3;
                  LPM1_EXIT;
                  P1IFG=0;
                  return ;
                  }
                }
            case 0x08:if(keyin == 0x07)
                {
                  delay_DCO_1ms(8);
                  if(keyin == 0x07)
                  {
                  while(keyin != 0x0f);
                  keyval = 4;
                  LPM1_EXIT;
                  P1IFG=0;
                  return ;
                  }
                }
    }
}
}

liufeng10101 发表于 2011-2-27 16:12:13

代码不全吧
页: [1]
查看完整版本: 430调试程序是出现奇怪现象