#include<reg52.h> sbit a = P2^0; sbit c = P2^7; void delayms(int x) { int i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void main() { P2 = 0xff; PS = 1; //要设置的不然PX1 = 1这个设置可能不灵 PX1 = 1; //设置外部中断0为高级中断 IT0 = 1; //选择边沿触发方式;等于0为低电平触发方式 EA = 1; //开总中断 EX0 = 1; //外部中断0允许位对应的引脚为P3^2 EX1 = 1; while(1); //等待中断; } void waibuzhongduan(void) interrupt 0 { a = 0; delayms(1000); a = 1; } void waibuzhongduan1(void) interrupt 2 { c = 0; delayms(1000); c = 1; }
注意:1.外部中断1的中断号是2,不是1。(中断号1是 定时器中断)
2.设置的是外部中断1的优先级高于0,测试的时候可以这样设置按下中断0是马上按下中断1,会出现两个灯都亮(说明中断1的优先级高于0能在中断0执行时执行中断1),反之则不行,说明1的优先级高。