目标:外部中断1实现蜂鸣器报警
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit k1 = P1^4; //独立按键
sbit beef = P1^5; //蜂鸣器端口
u8 beef_flag = 0; //方便便利的状态标准
void delay(u16 i)
{
while(i--);
}
void INT1init() //INT1的初始化
{
EA = 1;
IT1 = 1;
EX1 = 1;
}
void main()
{
INT1init();
while(1){
if(beef_flag==1){
delay(10);
beef=~beef; } //蜂鸣器状态取反
}
}
void Int1() interrupt 2 //外部中断1的中断号是数字2
{
delay(1000);
if(k1==0){
beef_flag = ~beef_flag; // 状态标志取反
delay(10);
}
}