外部中断控制LED
#include <REGX52.H> #include <INTRINS.H> // 定义LED1管脚 sbit LED1 = P2 ^ 0; /* *外部中断0初始化 *触发方式 type 1:下降沿 0:低电平 */ void externalInterrupt0Init(bit type) { IT0=type; EX0=1;//打开INT0的中断允许 EA=1;//打开总中断 } /** * 11.0592MHZ毫秒级延迟 */ void Delayms(unsigned int m) //@11.0592MHz { unsigned int n; for(n=0;n<m;n++){ unsigned char i, j; _nop_(); i = 2; j = 199; do { while (--j); } while (--i); } } void main() { externalInterrupt0Init(1); while (1) { } } /* *外部中断0触发回调 */ void externalInterruptCallback() interrupt 0 { Delayms(10);//消抖 if (P3_2 == 0) // P3_2是中断0控制位 { LED1=!LED1; } }
鲸之声为您拼命加载中...