单片机外部中断
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};
void delay();
void main(void){
uint i=0;
//initUart(); //初始化串口
TCON=0x05; //设定外部中断触发方式
IE=0x85; //打开外部中断
IP=0x01; //定义外部中断0为高优先级中断
while(1){
for(i=0;i<9;i++){
P0=table[i];
delay();
}; //延时1ms
}
}
void Exint1(void) interrupt 0{
uint i=0;
//EA=0; //关总中断
for(i=0;i<9;i++){
P2=table[i];
delay();
}
//EA=1; //开总中断
}
void Exint2(void) interrupt 2{
uint i=0;
//EA=0; //关总中断
for(i=0;i<9;i++){
P1=table[i];
delay();
}
//EA=1; //开总中断
}
void _d15us(void){
_nop_();_nop_();_nop_();_nop_();_nop_();
}
void delay(){
uint i=0;
for(i=0;i<25500;i++){
for(i=0;i<25500;i++){
_d15us();
};
}
}