追答#include
sbit LED1=p1^1;
sbit LED2=p1^2;
bit LED_SET=0;//位定义,类似c++的bool类型数
void main()
{
EA=1;//前面就不变了;其实你结构安排的不好,应该有个端口设置子程序和终端初始化
EX0=1;
IT0=0;
while(1)
{
LED1=1;LED2=0;//按你的,初始端口
if(LED_SET)//有中断产生时,LED_SET被置1;
{
EX0=0;//关外部中断,这里为了在执行主程序时,不进入中断所以先关掉;
LED1=0;LED2=1;//你的操作;
delay();//加延时,延时是为了让灯(LED),状态更明显(因为不同晶振延时不同,未给出延时子程序)
LED_SET=0;复位中断标志
EX0=1;重开中断;
}
}
void int_0() interrupt 0
{
LED_SET=1;//有中断产生LED_SET被置位;中断里的操作越少越好;
}
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。