1、操作K4按键使LED8(D8)状态取反
#include <reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit K3=P3^2; //INT0
sbit K4=P3^3; //INT1
sbit led=P2^7;
void delay(u16 i)
{
while(i--);
}
//设置外部中断1
void Int1Init()
{
IT1=1;//设置触发方式
EX1=1;//打开INT1的中断允许
EA=1; //打开总中断
}
//中断服务函数
void Int1() interrupt 2
{
//消除抖动
delay(1000);
if(K4==0)
{
led=~led;
}
}
void main()
{
Int1Init(); //设置外部中断
while(1);
}
2、操作K4按键使LED8(D8)状态取反,同时蜂鸣器响,led点阵闪烁
#include <reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit K3=P3^2; //INT0
sbit K4=P3^3; //INT1
sbit beep=P1^5;
sbit led=P2^7;
void delay(u16 i)
{
while(i--);
}
void Int1Init()
{
IT1=1;//触发方式
EX1=1;
EA=1;
}
void Int1() interrupt 2
{
u16 i;
delay(1000);
if(K4==0)
{
P0=0x00;
P2=0x00;
for(i=100;i<150;i++)
{
beep=~beep;
delay(i);
}
delay(1000);
P0=0xff;
P2=0xff;
delay(1000);
}
}
void main()
{
Int1Init();
while(1);
}