wind916 2024-08-26 17:48 采纳率: 35.7%
浏览 1
已结题

51单片机中断系统硬件查询电路

img


这里面最右边硬件查询电路的是干什么的,里面是不是集成了排队器和向量地址形成部件,还有右边数第2列IP,它是干什么的?把来的中断信号分为两个优先级吗?比如有两个中断源来了中断信号,一个Ip那位是1它到了硬件查询电路,另一个ip是0也进去了硬件查询电路,那都会形成向量地址不是吗?那不会打架吗?到底是给哪个给PC?能不能举个例子来表示这个中断系统硬件是怎么工作,怎么判优的。谢谢

  • 写回答

1条回答 默认 最新

  • 吃不了席 2024-08-26 17:49
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在51单片机的中断系统中,硬件查询电路的作用是识别并处理来自不同中断源的中断请求。它确实包含了排队器和向量地址形成部件,用于确定哪个中断请求被服务以及如何找到相应的中断服务程序的入口地址。

    IP寄存器

    IP(Interrupt Priority)寄存器是用来设置中断优先级的。这个寄存器允许用户为每个中断源指定一个优先级,这样当多个中断同时发生时,系统可以根据这些优先级来决定先处理哪个中断。

    硬件查询电路的工作方式

    当中断事件发生时,相关的中断标志位(如TF0、TF1、RI、TI等)会被置位。如果中断使能位(如EA、ES等)也被置位,那么这些中断请求就会进入硬件查询电路。

    硬件查询电路会首先检查各个中断的自然优先级,然后根据IP寄存器中设定的优先级来进一步排序。自然优先级是由硬件决定的,例如,外部中断0(INT0)通常比定时器0(T0)有更高的自然优先级。

    中断优先级的处理

    在你的例子中,如果两个中断源同时发出中断请求,一个是高优先级(IP=1),另一个是低优先级(IP=0),则硬件查询电路会优先处理高优先级的中断请求。这意味着即使低优先级的中断请求先到达,只要高优先级的中断请求也到达了,就会优先处理高优先级的中断。

    示例

    假设定时器0(T0)和外部中断0(INT0)同时发出了中断请求。如果T0的IP位是0(低优先级),而INT0的IP位是1(高优先级),那么即使T0的中断请求先发生,硬件查询电路也会先处理INT0的中断请求。这是因为INT0具有更高的优先级。

    一旦INT0的中断服务程序开始执行,它会清除INT0的中断标志,并处理相应的任务。完成后,如果T0的中断请求仍然有效(即TF0仍被置位),此时T0的中断服务程序才会被执行。

    这种优先级机制确保了更紧急或更重要的中断可以得到更快的响应,从而提高了系统的实时性能。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月28日
  • 创建了问题 8月26日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵