英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3651|回复: 0
打印 上一主题 下一主题

PIC16F57程序出现死机现象

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-8 16:46:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
每一个按键是独立扫描的。但是当我同时按下两个按键的时候,出现程序死机并喇叭长鸣现象,不知道是怎么回事。奇怪的是同时按另外两个键,就不会出现死机的现象。  这种死机一般是什么原因造成的,有人碰到过么?
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 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-5-5 04:51 , Processed in 0.056713 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表