外部中断之上升沿触发程序
由于外部中断只有下降沿触发,因此我想通过一个三极管来实现上升沿触发。这个是可以的,但是还有一个问题,每次一上电就会产生一个上升沿,造成误动作。因此用的时候要特别注意!!!!!!!!!!!!!!
#include<reg52.h> #define uchar unsigned char #define uint unsigned int
sbit kz=P1^0; sbit key=P1^1; sbit led1=P1^4; sbit led2=P1^5;
void delay(uint x) { uint i; uchar j; for(i=0;i<x;i++) for(j=0;j<110;j++); }
void INT_init (void){ EA = 1; //中断总开关 //EX1 = 1; //允许外部中断1中断 EX0 = 1; //允许外部中断0中断 //IT1 = 1; //1:下沿触发 0:低电平触发 IT0 = 1; //1:下沿触发 0:低电平触发 }
void main() { INT_init (); while(1) { if(key==0) { delay(10) ; if(key==0) { led2=0; while(!key); delay(50); kz=0; kz=1; } } } }
void INT_0 (void) interrupt 0 using 2 { led2=1; P2=0x55; delay(500); P2=0xaa; delay(500); P2=0x55; delay(500); P2=0xaa; delay(500);
}
