外部中断控制灯亮灭
外部中断每发生一次,led亮灭状态转换一次(使用一个LED灯即可)
#include<reg51.h>
#define uchar unsigned char
sbit buzzer=P0^6; //蜂鸣器
sbit relay=P0^4; //继电器
sbit led=P0^0; //灯
void INT_0() interrupt 0
{
P2=0x80;led=~led;P2=0x00; //将灯的状态取反
}
void main()
{
P2=0xa0;buzzer=0;relay=0;P2=0x00; //关闭蜂鸣器和继电器
P2=0x80;P0=0xff;P2=0x00; //关闭8个灯
EA=1; //打开总中断
EX0=1; //打开中断0
IT0=1; //采用下降沿触发的方式
while(1);
}