找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10964|回复: 5
打印 上一主题 下一主题
收起左侧

单片机中断函数为什么不需要调用就可以执行?

[复制链接]
跳转到指定楼层
楼主
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:387733 发表于 2018-11-2 08:03 | 只看该作者
一般函数执行条件就是被其他函数指令调用,而中断函数不同,执行条件是相应的中断条件满足,自动调用的。
回复

使用道具 举报

板凳
ID:164602 发表于 2018-11-2 08:16 | 只看该作者
顾名思义,中断函数,只有中断发生时才执行的函数嘛,当然不需要调用了。
中断函数由中断控制寄存器进行控制管理,在程序中,不用申明、不能调用。中断函数不是有中断号嘛,那个就是执行中断函数的入口,C语言程序没有感觉,汇编程序就必须知道这个入口的地地址的。
回复

使用道具 举报

地板
ID:7485 发表于 2018-11-2 08:43 | 只看该作者
本帖最后由 ahshmj 于 2018-11-2 09:27 编辑

单片机的每个中断都相当是一个特殊的开关。当你的程序里面允许某个中断其作用,那么一旦产生中断信号,单片机就会由硬件作用,将程序直接指向这个中断的入口(向量)从这里执行指令(执行完以后会再回到终端产生前的程序处)。这些中断入口都被集中安排在程序存储器(ROM)的100H以下。
图中可以看出,每个中断向量仅仅数个字节,不足以安排程序。一般是在这里按一个跳转指令,跳转到中断程序处。

这些对于学习过汇编语言的人来说,是清清楚楚的。由于C语言不直接接触这一块,往往是不太了解。
回复

使用道具 举报

5#
ID:379730 发表于 2018-11-2 10:35 | 只看该作者
中断就是异常,系统中断会自动去查找向量表,向量表里保存了各个中断的标号,根据标号会进入相应函数
回复

使用道具 举报

6#
ID:317383 发表于 2020-4-12 23:28 | 只看该作者
它是从中断入口地址,转到中断服务函数来执行的。而跳转到中断入口是cpu根据中断标志位来判断是哪个中断源,从而确定中断入口地址是哪个。
从汇编的角度来分析,就能够理解为什么会自动执行了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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