标题: 求各位大佬,关于51中断程序的问题 [打印本页]

作者: dfmj891234    时间: 2021-11-23 20:41
标题: 求各位大佬,关于51中断程序的问题
51单片机中断系统,一开始8个led闪烁循环,按键以后,变为流水循环,再按一次回到闪烁循环,我的程序只会到流水,回不去闪烁。这是我的程序include <reg51.h> void mDelay(unsigned int Delay)                  //延时1s子程序:由Dleay决定延时时间
{         unsigned int data i;                 
for(;Delay>0;Delay--)  {               
for(i=0;i<54;i++) ;  }}     
void main(){                IT0=1;                  //外部0中断边沿触发               
EA=1;                  //开总中断               
EX0=1;                  //开外部0中断               
while(1)
{ P1=0x00;                           //LED点亮                       
mDelay(1000);                   //延时1s                       
P1=0xff;                           //LED熄灭                        
mDelay(1000);                   //延时1s                              
}}void ex0_int() interrupt 0                  //外部0中断处理子程序
{ if(P3^2==0)      
{ unsigned char outdata=0xfe,i ;                 //初始选择最右边LED               
for(;;)        {
IE0=0 ;               
outdata=0xfe;               
for( i=0;i<8;i++ )              
  {  P1= outdata ; // LED选择码送P1口显示                 
mDelay (500);   //延时500ms               
outdata = (outdata << 1)+1 ;  //值左移一位              
  }        }                                                      
}        
else        return;}

作者: 188610329    时间: 2021-11-23 22:17
while(1)
{
      if(LED_Mode)
      {
              循环代码
       }
       else
       {
               闪烁代码。
        }
}

void ex0_int() interrupt 0   
{
     LED_Mode =  !LED_Mode;
}
作者: dfmj891234    时间: 2021-11-23 22:20
188610329 发表于 2021-11-23 22:17
while(1)
{
      if(LED_Mode)

感谢去试一试
作者: dfmj891234    时间: 2021-11-23 22:54
188610329 发表于 2021-11-23 22:17
while(1)
{
      if(LED_Mode)

大佬,问一下,我在最前面 Int LED_Mode,然后出来的还是和我一开始一样,停在那个流水,不能会循环
作者: 188610329    时间: 2021-11-23 22:59
dfmj891234 发表于 2021-11-23 22:54
大佬,问一下,我在最前面 Int LED_Mode,然后出来的还是和我一开始一样,停在那个流水,不能会循环

最前面 不能 int  LED_Mode
要 bit LED_Mode;
作者: dfmj891234    时间: 2021-11-23 23:08
可以了可以了,感谢大佬,感恩




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1