保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

MCS-51系统中断优先级的软扩展


//…

//先调整系统栈以保存IP、IE,其过程如图1所示,再为给定中断

//(prio也是中断号)设置优先级

void SetPriority(unsigned char prio){

ENTER_CRITICAL();//关中断

#pragma asm

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

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

PUSH IP

PUSH IE //EA= =0

PUSH B //LAddr进栈

PUSH ACC //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 re

《MCS-51系统中断优先级的软扩展(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/167048.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。