单片机中断多优先级的软件扩展方法 单片机中断系统是单片机系统中不可缺少的一部分,通过中断机制,单片机可以快速响应外部事件,提高系统的实时性和响应能力。但是,MCS-51系列单片机只能由IP寄存器设定两级优先级,这限制了中断系统的灵活性和可扩展性。 为了解决这个问题,本文提出了一种利用软件对中断优先级进行扩展的方法,该方法可以实现高于两个优先级的多优先级软件扩展程序。该方法的核心思想是利用RETI指令清零“优先级生效”触发器,以便让高级中断源响应低级中断源。 我们了解了中断的概念。中断是指当CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的一个过程称之为中断。 在8051单片机中,中断系统含有5个中断源,分别是外部中断0请求(INT0),外部中断1请求(INT1),定时/计数器0溢出中断请求(T0),定时/计数器1溢出中断请求(T1)以及串行口中断请求(SS)。这些中断源需要根据它们的轻重缓急来确定CPU对其的响应顺序。 然而,对于中断优先级寄存器IP来说,只可能设定两级优先,即控制位为1时对应的中断源为高级中断,反之,控制位为0时对应的为低级中断。这样就出现一个问题:如果一个中断正在执行,如何才能让它响应同级甚至是低级中断请求呢? 为了解决这个问题,我们可以利用RETI指令清零“优先级生效”触发器,以便让高级中断源响应低级中断源。同时,我们还需要设计一个软件扩展方法来实现高于两个优先级的多优先级软件扩展程序。 该方法的设计思路是:我们需要将中断源分为高级中断源和低级中断源,然后,我们可以使用RETI指令清零“优先级生效”触发器,以便让高级中断源响应低级中断源。我们可以使用软件扩展方法来实现高于两个优先级的多优先级软件扩展程序。 在实际实现中,我们可以使用如下代码来实现高级中断源响应低级中断源: PUSHL IE ;保护IE内容 MOVL IE, #10010000B ;开放串行口中断 CALL PP ;继续执行原中断子程序,但可随时响应串行口中断请求 POPL IE ;恢复原IE内容 RETI ;返回中断子程序 该代码体现了高级中断源响应低级中断源的软件实现方法。 在同级中断源之间的响应中,我们可以使用以下代码: ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 000BH LJMP T0 ORG 0013H LJMP X1 ORG 001BH LJMP T1 ORG 0023H LJMP SS MAIN: MOV IE, #9FH ;开放所有中断 MOV IP, #03H ;设定INT0、T0为高优先级 SJMP X0 X0RL: ;INT0子程序的真实入口地址 ··· POP DP ;保护DPL Registers PUSH DP ;恢复DPL Registers RET ;返回子程序 T0RL: ;T0子程序的真实入口地址 ··· POP DP ;保护DPL Registers PUSH DP ;恢复DPL Registers RET ;返回子程序 X1RL: ;INT1子程序的真实入口地址 ··· POP DP ;保护DPL Registers PUSH DP ;恢复DPL Registers RET ;返回子程序 T1RL: ;T1子程序的真实入口地址 ··· POP DP ;保护DPL Registers PUSH DP ;恢复DPL Registers RET ;返回子程序 SSRL: ;串行口子程序的真实入口地址 ··· POP DP ;保护DPL Registers PUSH DP ;恢复DPL Registers RET ;返回子程序 该代码体现了同级中断源之间的响应实现方法。 本文提出了一种利用软件对中断优先级进行扩展的方法,该方法可以实现高于两个优先级的多优先级软件扩展程序。该方法可以解决MCS-51系列单片机只能由IP寄存器设定两级优先级的问题,提高了中断系统的灵活性和可扩展性。
- 粉丝: 2
- 资源: 893
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (全新整理)ESG榜单冲击数据(2000-2022年)
- 碳排放权交易明细数据(2024年5月更新).dta
- (2024年最新更新)!!!碳排放权交易明细数据
- 2017年A股上市公司人均薪酬指标相关资料
- JavaScript 要点总结
- 2004年至2024年间东风股份股东户数变化
- 人工智能-检索增强生成-利用开源大模型,通过RAG(检索增强生成)技术,实现基于企业内部知识图谱的,可内网运行的大模型智能客服
- 大学生职业规划.pptx
- 2023-04-06-项目笔记 - 第三百二十二阶段 - 4.4.2.320全局变量的作用域-320 -2025.11.19
- 《Linux操作系统实用教程(第2版)》- 配套软件