winnie 发表于 2009-3-8 16:46:00

PIC16F57程序出现死机现象

每一个按键是独立扫描的。但是当我同时按下两个按键的时候,出现程序死机并喇叭长鸣现象,不知道是怎么回事。奇怪的是同时按另外两个键,就不会出现死机的现象。这种死机一般是什么原因造成的,有人碰到过么?
void main()
{
    while(1)
   {
         KeyScan();
      .............//其他函数
         while(1)//2 ms 定时
   {
         if(250 == TMR0) {T0Sub();break;}
   }
    }
}

void KeyScan(void)
{
//==================KeyF和其他按键扫描是独立的
   if(KeyF && (FKeyFUp == 0))
   {
      if(!FKeyF)
       {
          FKeyF = 1;
          KeyFN = 0;
       }
   
    if((KeyFN >= 5))
   {
      FKeyFSD = 1;
      FKeyF = 0;      
      FKeyFUp = 1;
            
       Speak();      
   }   
   }
   else
    {
       if(!KeyF)
       {
          FKeyFUp = 0;
          FKeyF = 0;
          KeyFN = 0;
       }
    }   

//====================KeyB和其他按键扫描是独立的

   if(KeyB && (FKeyBUp == 0))
   {
       if(!FKeyB)
       {
          FKeyB = 1;
          KeyBN = 0;
       }
   if((KeyBN >= 5))
   {
         FKeyBSD = 1;
         FKeyB = 0;
         FKeyBUp = 1;
            
         Speak();      
   }   
   }
   else
    {
   if(!KeyB)
   {
         FKeyBUp = 0;
         FKeyB = 0;
         KeyBN = 0;
   }
   }


//===================KeyD和其他按键扫描是独立的

if(KeyD && (FKeyDUp == 0))
{
if(!FKeyD)
{
   FKeyD = 1;
   KeyDN = 0;
}
if((KeyDN >= 5))
   {
      FKeyDSD = 1;
      FKeyD = 0;
      FKeyDUp = 1;
         
      Speak();   
   }
}
else
{
   if(!KeyD)
   {
      FKeyDUp = 0;
      FKeyD = 0;
   KeyDN = 0;
   }
}

}
页: [1]
查看完整版本: PIC16F57程序出现死机现象