普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5956|回复: 0

C51中的中断服务程序

 关闭 [复制链接]

139

主题

382

帖子

1531

积分

金牌会员

Rank: 6Rank: 6

积分
1531
发表于 2015-9-10 17:12:22 | 显示全部楼层 |阅读模式
C51中的中断服务程序
   
  void       函数名(void)     interrupt     n       using     m  
  {  
   
  函数体语句
   
  }  
   
  interrupt       using       是C51中断服务程序引入关键字
  只能用于C51中断服务程序逻辑           
  n是中断号         
  0       是外部中断0  
  1       是定时中断T0  
  2       是外部中断1  
  3       是定时中断T1  
  4       是串行中断
  5       是定时器T2  
    m是寄存器组     
  0——3     4组
  不使用编译器将当前工作寄存器都入堆栈
   
  注意#include   <reg5X.h>   文件 单片机有四组寄存器组,如果你用汇编写程序,当进入中断后,你不想将现有的寄存器入栈,哪么可切换寄存器组,如切换到1组,然后退出中断时,再切换到0组,同时,在你另外一个中断里如果不想保存寄存器,你可切换到2组,返回时再切换到0组,也就是说程序采用0组寄存器,中断可采用其它三组,如果不想保存寄存器,一个中断只能用一组,否则得保存寄存器。在C51里就是通过using来实现这个功能的,如果你在写定时器时,并加上using    1,哪么你可以查看一下列表,它不再保存寄存器.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-9 05:16 , Processed in 0.080142 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表