51外部中断程序

#include <reg52.h>#define unchar unsigned char#define unint unsigned intsbit Led1 = P1^0;sbit Led2 = P1^1;sbit Key = P3^2;void main(){ Led1=1; Led2=0; IT0 = 0; //外部中断0采用电平触发方式;边沿触发为1下降沿有效 EA = 1; //中断允许 EX0 = 1; //开外部中断0 while(1);}void int0() interrupt 0 //边沿触发方式中断函数。每次Key下降沿改变Led状态{ Led1 = ~Led1; Led2 = ~Led2; //改变Led状态}我想开关开的时候LED1不亮,LED2亮,开关关闭时候LED1亮,LED2不亮。但是上面的程序出现不了这样的效果,老师非让用外部中断来写这个程序
2026年09月23日 17:06
有2个网友回答
网友(1):

#include

sbit Led1 = P1^0;
sbit Led2 = P1^1;
sbit Key = P3^2;

void main()
{
EA = 1; //中断允许
EX0 = 1; //开外部中断0

while(1) {
Led1 = 1; Led2 = 0; //开关开的时候LED1不亮,LED2亮
}
}

void int0() interrupt 0 //电平触发
{
Led1 = 0; Led2 = 1; //开关关闭时候LED1亮,LED2不亮

while(Key == 0); //为零(开关关闭)就循环
}

网友(2):

,,,