一、题目:1、中断优先级应用:设置外部中断1为高优先级,外部中断0为低优先级。2、外部中断0为led依次循 环点亮,外部中断1为led全体闪烁3次,然后继续依次循环点亮。即:在执行外部中断0的过程中被外部中断1打断;执行完外部中断1后,返回外部中断0继续执行外部中断0;
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
uchar array[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
uchar *p;
void delay(int x)
{
int a, b;
for(a=x; a>0; a--)
for(b=200; b>0; b--);
}
int main()
{
IP=0x04;
EA=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
while(1)
{
for(p=array; p<(p+10); p++)
{
P0=*p
delay(350);
}
}
return 0;
}
void INT_0()interrupt 0
{ EX0=0;
delay(20);
EX0=1;
uchar D1;
P1=0xFE;
D1=P1;
while(1)
{
delay(600);
D1=_crol_(D1,1);
P1=D1;
}
}
void INT_1()interrupt 2
{ EX1=0;
delay(20);
EX1=1;
P1=0xff;delay(200);
P1=0x00;delay(200);
P1=0xff;delay(200);
P1=0x00;delay(200);
P1=0xff;delay(200);
P1=0x00;delay(200);
}