微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 一个流水灯程序,不知错在哪里,请高手支招

一个流水灯程序,不知错在哪里,请高手支招

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
#define uchar unsigned char
uchar i=1;
main()
{ P0=0xff;
  EA=1;
  EX0=1;
  IT0=0;
  while(1);
}
voidINT0 () interrupt 0
{switch(i)
  { case 1:P0=0xfe;break;
    case 2:P0=0xfd;break;
    case 3:P0=0xfb;break;
    case 4:P0=0xf7;break;
    case 5:P0=0xef;break;
    case 6:P0=0xdf;break;
    case 7:P0=0xbf;break;
        case 8:P0=0x7f;break;
   }
   i++;
   if(i==9)
   {EA=0;EX0=0;}
  }

干嘛用中断啊。

从你的程序看先是开启中断总允许,然后是允许外部中断零,然后设置了外部中断低电平有效,然后无限循环,在循环过程中若有按键按下或是给予低电平则转入终端服务子程序,然后就是点亮流水灯,从程序上看貌似没撒问题,不知道你是不是给对了低电平,还有这个中断是INTO,也就是P3.2脚

ITO=1                         ..

#include<reg52.h>
#define uchar unsigned char
uchar i=1;
main()
{ P0=0xff;
  EA=1;
  EX0=1;
  IT0=1;
  while(1);
}
voidINT0() interrupt 0
{switch(i)
  { case 1:P1=0xfe;break;
    case 2:P1=0xfd;break;
    case 3:P1=0xfb;break;
    case 4:P1=0xf7;break;
    case 5:P1=0xef;break;
    case 6:P1=0xdf;break;
    case 7:P1=0xbf;break;
    case 8:P1=0x7f;break;
   }
   i++;
   if(i==9)
   i=1;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top