stc89c52为什么只执行一次外部中断的程序,主函数的开关再次按下,外部中断函数没反应

2019-07-15 09:29发布

#include <reg52.h>
#include<intrins.h>
#define  uchar    unsigned char
#define  uint     unsigned int
sbit deng=P3^7;

sbit jinshu=P1^4;  




void delay_1ms(unsigned int a)   
{   
unsigned int i;
        while( a-- != 0){
                for(i = 0; i < 552; i++);
}
                                                                          
}
void ini_int1(void)
{

EA=1;
EX1=0;    //开启外部中断 0
IT1=0;
//TCON=0x04;
}
void Int1() interrupt 2 using 2 //使用外部中断1,寄存器组3
{            EX1=0;//关闭中断
         
          delay_1ms(1000);
                  deng=1;
                  delay_1ms(1000);
                  deng=0;
                  delay_1ms(1000);
                  deng=1;
                  delay_1ms(1000);
                  deng=0;
                  delay_1ms(1000);
                  
                  delay_1ms(1000);
                  deng=1;
                  delay_1ms(1000);
                  deng=0;
                  delay_1ms(1000);
                  deng=1;
                  delay_1ms(1000);
                  deng=0;
                  delay_1ms(1000);
               
}



void main(void)
{         

               

          ini_int1();
         while(1)
         {        deng=0;
         if(jinshu==0)
                {
                        delay_1ms(10);
                        if(jinshu==0)
                        {        
                        
                        EX1=1;  //开关按下打开中断
                        
                                

                                
                        }
                }
                        
         }
}

0条回答

一周热门 更多>