51单片机中断系统

51单片机中断系统中断定义 CPU 在处理某一事件 A 时 发生了另一事件 B 请求 CPU 迅速去处理 中断发生 CPU 暂时中断当前的工作 转去处理事件 B 中断响应和中断服务 待 CPU 将事件 B 处理完毕后 再回到原来事件 A 被中断的地方继续处理事件 A 中断返回 这一过程称为中断 引起 CPU 中断的根源 称为中断源 中断源向 CPU 提出的中断请求 CPU 暂时中断原来的事务 A 转去处理事件 B 对事件

中断定义

  CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。

  51单片机中断系统

  引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统。

  51单片机中断系统

  89C51/52的中断系统有5个中断源 ,2个优先级,可实现二级中断嵌套 。

   51单片机中断系统

  1、(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。

  2、(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。

   3、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。

   4、TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。

  5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。

中断允许控制

  CPU对中断系统的所有中断以及某个中断源的开发和屏蔽是由中断允许寄存器IE控制的。

  51单片机中断系统

EA:中断允许总开关控制位。(1:所有中断请求被允许;0:所有中断请求被屏蔽)

ES:串行口中断允许控制位。(1:允许串口中断;0:禁止串口中断)

ET1:定时器/计数器T1的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX1:外部中断1中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

ET0:定时器/计数器T0的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX0:外部中断0中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

中断请求标志 

  TCON 的中断标志

  51单片机中断系统

  IT0(TCON.0),外部中断0触发方式控制位。

    当IT0=0时,为低电平触发方式。

    当IT0=1时,为边沿触发方式(下降沿有效)。

  IE0(TCON.1),外部中断0中断请求标志位。

  IT1(TCON.2),外部中断1触发方式控制位。

  IE1(TCON.3),外部中断1中断请求标志位。

  TF0(TCON.5),定时/计数器T0溢出中断请求标志位。

  TF1(TCON.7),定时/计数器T1溢出中断请求标志位。

 中断优先级

   51单片机中断系统

中断源

     51单片机中断系统

中断响应条件

  中断源有中断请求

  此中断源的中断允许位为1

  CPU开中断(EA=1)

使用中断,需要做什么?

  你想使用的中断是哪个?选择响应的终端号。

  你所希望的触发条件是什么?

  你希望在中断之后干什么?

 以外部中断0为例

主程序中需要有以下代码:

EA=1;//打开总中断开关 EX0=1;//开外部中断0 IT0=0/1;//设置外部中断的触发方式

中断服务函数:

void int0 () interrupt 0 using 1 // using 1 不用写也不用管 {   do anything that you want }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201933.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午8:16
下一篇 2026年3月20日 上午8:17


相关推荐

  • Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息

    Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息[网络安全]二.Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息最近开始学习网络安全和系统安全,接触到了很多新术语、新方法和新工具,作为一名初学者,感觉安全领域涉及的知识好广、好杂,但同时也非常有意思。所以我希望通过这100多篇网络安全文章,将Web渗透的相关工作、知识体系、学习路径和探索过程分享给大家,我们一起去躺过那些坑、跨过那些洞、守住那些站。未知攻,焉知防,且看且珍惜,也希望您能推荐和支持作者的公众号。娜璋AI安全之家于2020年8月18日开设,将专注于Python和安全技术,主

    2025年5月24日
    6
  • 刘宇凡:解读微信朋友圈策略调整的重要目的

    刘宇凡:解读微信朋友圈策略调整的重要目的

    2022年2月1日
    60
  • 大数据_02【大数据基础知识】「建议收藏」

    大数据_02【大数据基础知识】「建议收藏」大数据_02【大数据基础知识】01什么是服务器02服务器类型03存储磁盘(硬盘)01什么是服务器服务器:也称伺服器,是一种高性能计算机,提供计算服务的设备。服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。由于服务器需要提供高可靠的服务,所以在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。服务器和电脑功能都是一样的,也可以将服务器称之为电脑,只是服务器对稳定性与安全性以及处理器数据能力有更高要求。比如我们随时浏览一个网站,发现这个网站

    2022年6月1日
    36
  • android四种启动模式_Android Terminal Emulator

    android四种启动模式_Android Terminal Emulator本文转载自:http://blog.csdn.net/MyArrow/article/details/8136018(1)添加头文件:#include<linux/earlysuspend.h>(2)在特定驱动结构体中添加early_suspend结构:#ifdefCONFIG_HAS_EARLYSUSPENDstructearly_suspendea…

    2026年1月16日
    4
  • OSPF缺省路由

    OSPF缺省路由1 全网划分为三个区域 a0 a1 a2 R5 为外网 2 全网启动 OSPF 协议 3 由于 R5 为外网所以在 R4 上做一条去往 R5 的缺省路由将缺省路由注入 OSPF 中查看 R1 R2 的数据库表 都有这条路由 4 将区域 2 做为 stub 区域查看数据库表 Area 0 0 0 2TypeLinkSta 0 2 2

    2026年3月17日
    2
  • 俞敏洪是新东方_新东方创始人是谁

    俞敏洪是新东方_新东方创始人是谁一年前,不用考虑省略号后的故事,那是个不可能的假设。作为教育培训机构,新东方带有比一般企业更为浓烈的创始人气质。俞敏洪就是新东方,他的儒雅风度、人文情怀、幽默口才,卡内基式奋斗经历,都成为公司的标签。特别是另外两位同样富有个性魅力的创始人徐小平和王强离开后,俞更没有理由拒绝扮演这

    2025年11月2日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号