单片机c语言-中断系统的c51编程2.ppt

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.2 中断优先级与中断函数 4.2.1 中断优先级 1 、中断优先级原则如下: 1 )高级中断请求可以打断正在执行的低级中断; 2 )同级或低级中断请求不能打断正在执行的中断; 3 )同级中断源同时提出请求时按 自然优先级 响应: INT0→ T0 → INT1→T1→TI/RI 4 )单片机复位时, IP 初值为 0 —— 默认所有中断源均 为低级中断。 2 、中断请求的撤除 (1) 定时器 / 计数器溢出中断请求的撤除 TF0 和 TF1 是定时器 / 计数器溢出中断标志位,定时器 / 计数器溢出中断请求时自动置位,中断得到响应后自动 复位成 0 状态。定时器 / 计数器溢出中断自动撤除。 (2) 串行口中断请求的撤除 TI 和 RI 是串行口中断标志位,中断系统不能自动将它 们撤除,需要通过以下的指令进行撤除: TI=0 // 撤除发送中断 RI=0 // 撤除接收中断 (3) 外部中断请求的撤除 ? 当 IT0( 或 IT1)=1 , 脉冲触发方式 时,若第一个机器 周期采样到 INTx 引脚为高电平,第二个机器周期采样 到 INTx 引脚为低电平,则由硬件置位 IE0( 或 IE1) ,并以 此来向 CPU 请求中断。当 CPU 响应中断转向中断服务 程序时,由硬件自动将 IE0( 或 IE1) 清 0 。 对于跳变触发的外部中断, CPU 在每个机器周期 采样 INTx ,为了保证检测到负跳变,输入到 INTx 引脚 上的高电平与低电平至少应各自保持 1 个机器周期。 对于 电平触发的外部中断 ,由于 CPU 对 INTx 引 脚没有控制作用,也没有相应的中断请求标志位, 因此需要外接电路来记录及撤除中断请求信号。下 图是一种可行的参考方案。 P1^0=1; P1^0=0; IE0=0; 4.2.2 中断函数的结构形式 C51 中断函数的声明格式: void 函数名 (void) interrupt n [using m] interrupt n ,表示是关于中断号为 n 的中断服务函数;外 部中断 0 中断、定时器 / 计数器 0 溢出中断、外部中断 1 中断、 定时器 / 计数器 1 溢出中断、串行口中断对应的中断类型号 分别为 0 、 1 、 2 、 3 、 4 。 using m ,表示该中断函数将使用第 m 组 工作寄存器。 缺省为当前工作寄存器组。 【注意】 1 、中断服务函数既没有返回值,也没有调用参数; 2 、中断服务函数只能由系统调用,不能被其他函数调用。

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档