51外部中断测试

#include
#include


#define GPIO_LED P2
//外部中断的IO
sbit K3=P3^2;
sbit K4=P3^3;


void IntConfiguration();
void Delay(unsigned int n);
unsigned char KeyValue=http://www.dg8.com.cn/tool/0;
void main(void)
{
GPIO_LED=0Xfe;
IntConfiguration();
while(1)
{
if(KeyValue)
GPIO_LED=_crol_(GPIO_LED,1);
else
GPIO_LED=_cror_(GPIO_LED,1);
Delay(2000);
}
}
void IntConfiguration()
{
//设置INT0
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开INT0的中断允许 。
//设置INT1
IT1=1;
EX1=1;
EA=1;//打开总中断
}


void Delay(unsigned int n) //延时50us误差 0us
{
unsigned char a,b;
for(;n>0;n--)
{
for(b=1;b>0;b--)
for(a=22;a>0;a--);
【51外部中断测试】}
}


void Int0() interrupt 0 //外部中断0的中断函数
{
Delay(1); //延时消抖
if(K3==0)
KeyValue=http://www.dg8.com.cn/tool/1;
}


void Int1() interrupt 2 //外部中断1的中断函数
{
Delay(1); //延时消抖
if(K4==0)
KeyValue=http://www.dg8.com.cn/tool/0;
}


    推荐阅读