请教外部中断问题

2019-03-24 19:00发布

请教外部中断问题
为什么一启动,P0.4亮,其他灭??
  1. /*
  2. 中断 2012-8-17
  3. 线路:
  4. P0.0、P0.4、P0.7各接一led
  5. P3.2、P3.3各接一按钮
  6. 要求:                                                  
  7. 初始状态,P0.0 led亮
  8. 当P3.2按钮按下时,中断,让P0.4 led 亮延时,然后灭,P0.0 led继续亮;
  9. 当P3.3按钮按下时,中断,让P0.7 led 亮延时,然后灭,P0.0 led继续亮
  10. */
  11. #include

  12. #define uint unsigned int

  13. sbit led_1 = P0^0;
  14. sbit led_2 = P0^4;
  15. sbit led_3 = P0^7;

  16. void ys(uint ms){//延时
  17.         uint i;
  18.         while(ms--){
  19.                 for(i=0;i<120;i++);
  20.         }
  21. }

  22. void zd_init(){//中断初始化
  23.         EX0 = 1;//打开外部中断0、1
  24.         EX1 = 1;

  25.         IT0 = 1;//下降沿触发中断0、1        
  26.         IT1 = 1;

  27.         IP = 0x05;//外部中断0、1的优先级为高

  28.         EA = 1;//打开全局中断
  29. }

  30. void zd_0(void) interrupt 0{//外部中断0
  31.         led_2 = 0;
  32.         ys(250);        
  33. }

  34. void zd_1(void) interrupt 2{//外部中断1
  35.         led_3 = 0;
  36.         ys(250);
  37. }

  38. void mian(void){
  39.         zd_init();//定时器初始化
  40.         while(1){
  41.                 P0 = 0xff;
  42.         };
  43. }
复制代码 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。