【51单片机流水灯中断嵌套,低优先级中断完成后如何返回主程序】2023-10-15

缘由流水灯中断嵌套,低优先级中断完成后如何返回主程序_嵌入式-CSDN问答

题目要求:在 Proteus 里实现两级中断嵌套:当K1和K2都未按下时,P1口8只 LED 呈流水灯显示,当按一下 K 1时,产生一个低优先级外中断0请求(跳沿触发),进入外中断0中断服务程序,标号为偶数的 LED 和奇数 LED 交替闪烁10次。此时按一下 K 2时,产生一个高优先级的外中断1请求(跳沿触发),进入外中断1中断服务程序,使8只 LED 全部闪烁。当显示5次后,再从外中断1返回继续执行外中断0中断服务程序,直至偶数和奇数 LED 交替闪烁10次完成,然后再次返回主程序,8只 LED 呈流水灯显示。设置外中断0为低优先级,外中断1为高优先级。

cpp 复制代码
#include <REG52.H>
#include "intrins.h"
#define uchar unsigned char
bit K1=0,K2=0;//标记逻辑组合可以替代中断优先
void Delay(unsigned int i)//延时函数                                       
{      
  unsigned int j;
	for(;i>0;i--)               
	for(j=0;j<125;j++)               
	{;}//空函数                                                                       
}
void main()//主函数https://ask.csdn.net/questions/8011758
{
	unsigned char display [9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水灯显示数据数组
	unsigned char a;
	EA=1;//总中断允许
	EX0=1;//允许外部中断0中断
	EX1=1;//允许外部中断1中断
	IT0=1;//选择外部中断0为跳沿触发方式
	IT1=1;//选择外部中断1为跳沿触发方式
	PX0=0;//外部中断0为低优先级
	PX1=1;//外部中断1为高优先级  
	for(;;)               
	{     
		for(a=0;a<9;a++)               
		{                                               
			Delay(400);//延时,切换会延时阻塞设定时间
			P1=display[a];//已定义的流水灯显示数据送到P1口
		}
	}
}
void int0_isr() interrupt 0      //删除using 0否则无法返回主函数外中断0的中断服务函数
{
	unsigned char m=0;
  for(m=0;m<10;m++)//标号为偶数的LED和奇数LED交替闪烁10次
  {
    P1=0x55;//标号为偶数的LED灯点亮
    Delay(500);//延时
	P1=0xaa;//标号为奇数的LED灯点亮
	Delay(500);//延时
  }
}
void int1_isr() interrupt 2      //using 1外中断1的中断服务函数,体现了中断优先和返回
{
    unsigned char n=0;
  for(n=0;n<5;n++)//8位LED全亮全灭5次
  {
    P1=0;//8位LED全亮
	Delay(500);//延时
	P1=0xff;//8位LED全灭
	Delay(500);//延时
  }
}

有详细注释在代码中。

具壽善現復白佛言:「若依世俗,施設因果分位差別,不依勝義,

則應一切愚夫異生亦有預流、一來、不還、阿羅漢果、獨覺菩提及

佛無上正等菩提。」

佛告善現:「於意云何?愚夫異生為如實覺世俗、勝義二諦理不?

若如實覺二諦理者,彼亦應有預流、一來、不還、阿羅漢果、獨覺

菩提及佛無上正等菩提。然諸愚夫異生不如實覺世俗、勝義故,無

聖道、無修聖道,不可施設有諸聖果分位差別。唯諸聖者能如實覺

世俗、勝義故,有聖道、有修聖道,由斯得有聖果差別。」

......

佛告善現:「名唯是客,唯假施設,表所顯義,謂此名色、受、

想、行、識,此名眼處乃至意處,此名色處乃至法處,此名眼界乃

至意界,此名色界乃至法界,此名眼識界乃至意識界,此名為男,

此名為女;此名為小,此名為大;此名地獄,此名傍生,此名鬼

界,此名為人,此名為天;此名善法,此名非善法;此名有記法,

此名無記法;此名有漏法,此名無漏法;此名世間法,此名出世間

法;此名有為法,此名無為法;此名預流果,此名一來果,此名不

還果,此名阿羅漢果,此名獨覺菩提;此名一切菩薩摩訶薩行,此

名諸佛無上正等菩提;此名異生,此名聲聞,此名獨覺,此名菩

薩,此名如來。

「善現!如是等一切名,為表諸義唯假施設故,一切名皆非實有。

諸有為法亦但有名,由此無為亦非實有,愚夫異生於中妄執。諸菩

薩摩訶薩行深般若波羅蜜多,悲願熏心,方便善巧教令遠離,作如

是言:『名是分別妄想所起,亦是眾緣和合假立,汝等於中不應執

著,名無實事自性皆空,誰有智者執著空法?』如是,善現!諸菩

薩摩訶薩行深般若波羅蜜多,方便善巧為諸有情說遣名法。

「善現!是謂為名。相有二種,愚夫異生於中執著。何等為二?所

謂色相及無色相。云何色相?謂所有色,若過去若未來若現在、若

內若外、若麁若細、若劣若勝、若遠若近,如是一切自性皆空,愚

夫異生分別執著謂之為色,是名色相。無色相者,謂諸所有無色法

中,愚夫異生取相分別生諸煩惱,名無色相。諸菩薩摩訶薩行深般

若波羅蜜多,方便善巧教諸有情遠離二相,復教安住無相界中,雖

教安住無相界中,而不令其墮二邊執,謂此是相、此是無相。如

是,善現!諸菩薩摩訶薩行深般若波羅蜜多,方便善巧令諸有情遠

離諸相,行無相界而無執著。」

相关推荐
Dillon Dong2 小时前
【风电控制】TI TMS320F28379D 双CPU架构解析与任务分布设计
嵌入式硬件·算法·变流器·风电控制
NiceCloud喜云7 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
杨连江7 小时前
仿人脑抑制机制的图像识别网络抗全域异常激活算法研究
经验分享·神经网络
小羊在睡觉7 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
cjhbachelor7 小时前
c++继承
c++
3DVisionary7 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解
人工智能·算法·制造·蓝光三维扫描·医疗制造·三维检测·义齿检测
好评笔记7 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_468466857 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
肩上风骋8 小时前
C++14特性
开发语言·c++·c++14特性
sheeta19988 小时前
LeetCode 每日一题笔记 日期:2026.05.29 题目:3300. 最小元素
笔记·leetcode