首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   MCS-51系统中断优先级的软扩展      ★★★ 【字体: 】  
MCS-51系统中断优先级的软扩展
收集整理:佚名    来源:本站整理  时间:2009-01-10 22:36:47   点击数:[]    

C //HAddr进制

#pragma endasm

switch(prio){

case 0:IP=X0_PRI_MASK;IE=X0_INT_MASK;

break;

//…

case4:IP=S_PRI_MASK;IE=S_INT_MASK;break;

}

ENTER_CRITICAL();//这里中断被打开,故再关中断

ResetIntSys();

EXIT_CRITICAL();//开中断

}

//从系统栈中恢复IE、IP,其过程如图1所示。该函数应在退出ISP时调用

void ResetPriority(void){

ENTER_CRITICAL();

#pragma asm

POP ACC //弹出返回地址的高位字节HAddr

POP B //弹出返回地址的低位字节LAddr

POP IE //EA= =0

POP IP

PUSH B //LAddr进栈

PUSH ACC //Haddr进栈

#pragma endasm

EXIT_CRITICAL();//开中断

}

//仅含一条指令:RETI,用以复位中断系统,以便系统在ISR执行过程中可响应其它中断

void ResetIntSys(void){

char code reti=0x32; //32H为RETI的机器码

(((void)(code*)(void))(&reti))();//将reti的地址强制转化为函数指针

}

使用时,只需将ExtIntPri.H头文件用#include加入相应源文件(当然,应将ExtIntPri.C的目标文件<*.Obj>、库文件<*.lib>或汇编源文件<*.src>加入当前工程)。不妨以定时器0(T0)为例,其中断号为1,故优先级亦应为1,如下所示:

////Test.C

#include "ExtIntPri.H"

//…

void T0_ISR(void)interrupt 1 using 2{

SetPriority(1);

//…

ResetPriority();

}

如此,T0即有了次最高优先级——1。

结语

使用本文所述的“软扩展”方法,可以将MCS-51系统的中断优先级扩展到5级。如果所用51系统的中断源个数为N(N≤8),只须对上述方法稍作修改即可将其优先级扩展到N级。该方法不需增加任何硬件,且所需的额外资源消耗很小,使用也非常简单,不会给用户增加编程负担。实际应用表明,这种方法是可行的和有效的。



上一页  [1] [2] [3] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:用PIC单片机实现的IC卡读写器

  • 下一篇文章:数码管显示驱动和键盘扫描控制器CH451及其应用
  • 返回上一页】【打 印】【关闭窗口
    中查找“MCS-51系统中断优先级的软扩展”更多相关内容 5VAR论文频道
    中查找“MCS-51系统中断优先级的软扩展”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››MCS-51系统中断优先级的软扩展
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .