中断系统练习题之中断优先级应用

本文介绍了一个基于51单片机的外部中断优先级的应用案例。通过设置外部中断1为高优先级,外部中断0为低优先级,实现了在执行外部中断0的过程中被外部中断1打断的效果,并在完成外部中断1后返回外部中断0继续执行。具体功能包括:外部中断0使LED依次循环点亮,而外部中断1则使所有LED闪烁三次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目: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);


}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值