历史上的今天
返回首页

历史上的今天

今天是:2025年04月01日(星期二)

正在发生

2021年04月01日 | 单片机中断问题

2021-04-01 来源:eefocus

简介:51单片机中断不就是中间发生什么事情,跳转到另外一处,执行完在返回么?为什么还要中断专门拿出来用啊,直接跳转指令不就行了么?


首先要搞清中断,就要先说一说单片机P3口的几个引脚;P30到P35是中断的输入引脚。包括串行口、定时器(计数器)、外部中断等等。这些中断的特点是当中断的条件满足时,会执行相应的中断程序。注意中断程序的执行和汇编语言的子程序有一个重要区别:(多数教科书都没提这一点)子程序必须有调用语句ACALL之类的调用它,它才能执行;而中断不是!它是满足中断条件后,自动执行的。比如:定时器计数满;外部中断引脚低电平触发;串行口接受到数据....,此时程序自动跳到中断入口:03H,0BH,....23H。进入中断入口后一般要跳转一下再转到相应的中断子程序里去(除非你的中断程序很短,不会进入别的中断)。拿C语言来说,就是在C51里,中断函数不需要主函数main()调用,自动执行(前提是触发中断的条件出现时)。


中断不就是中间发生什么事情,跳转到另外一处,执行完在返回么?


这里的“中间发生什么事情”,就是触发的中断,根据触发中断的类型,程序自动跳转到入口程序(比如,触发外部中断0,则跳到03H,串行口中断则是23H,这些入口地址一般安排跳转指令)


为什么还要中断专门拿出来用啊,直接跳转指令不就行了么?


单片机要用中断这种方式工作呀!比如单片机在处理数据时,外部设备传来一个信号,要求启动,这是一个外部中断信号,单片机收到后进入相应中断程序,启动设备,或者监测设备等等。没有中断,单片机的功能大大降低。 意思是不是就是说一个是已知的条件跳转,一个是未知的,所以才采用中断 有这个意思,但不准确。中断是外部信号引起的,或者时钟计时到、或者串行接收到数据,总之中断的产生不由程序里的代码决定。


推荐阅读

史海拾趣

DILABS公司的发展小趣事

DILABS公司成立于XX世纪初,由一群热衷于电子技术的工程师创立。在公司初创时期,他们面临了资金短缺、技术瓶颈和市场竞争等多重挑战。然而,他们坚持创新,经过无数次实验,终于在芯片封装技术上取得了突破。这一突破性的技术为DILABS赢得了业界的关注,也为公司的发展奠定了坚实的基础。

Galaxy Semi-Conductor Co Ltd公司的发展小趣事

山西飞虹激光科技有限公司于2010年在中国山西成立,并迅速在北京设立分公司,将北京作为战略重心,拓展全国市场。仅两个月后,飞虹激光的研发&生产中心便设立并投入生产,展现了公司的强大执行力和决心。2012年,飞虹激光积极参与国际展会,如慕尼黑上海光博会,展示了其F3015激光切割机、激光熔覆系统等高端产品,不仅提升了公司知名度,也彰显了其在激光技术领域的专业水平和创新能力。

福声科技(FUET)公司的发展小趣事

在稳固国内市场的同时,福声科技积极寻求国际合作机会,努力拓展海外市场。公司凭借其优质的产品和服务,成功吸引了日本、韩国、加拿大、美国等多个国家和地区的客户。通过与国际知名企业的合作与交流,福声科技不仅提升了自身的技术水平和品牌影响力,还进一步拓宽了国际市场渠道,为公司的全球化战略奠定了坚实基础。

Arcolectric公司的发展小趣事

Arcolectric公司成立于1932年,作为Elektron PLC Group的一个著名品牌,它从一开始就专注于开关、指示灯及保险丝座的生产。在创立初期,Arcolectric就展现出了对技术的深厚积累和独特见解,成功研发出了一系列高质量、高性能的产品,为公司的长远发展奠定了坚实的基础。

First Switchtech公司的发展小趣事

在电子行业的初期,First Switchtech公司(或类似公司)凭借其在开关技术领域的突破性创新,迅速在市场中崭露头角。公司研发出了一种新型低功耗、高可靠性的电子开关,这一创新不仅解决了当时市场上开关设备能耗高、故障率大的问题,还极大地提升了产品的整体性能。随着这一技术的广泛应用,First Switchtech公司逐渐在电子开关领域建立了领先地位,并带动了整个行业的技术进步。

杰力(EMC)公司的发展小趣事

随着环保意识的不断提高和可持续发展理念的普及,杰力也开始注重环保和可持续发展方面的工作。公司采用环保材料和生产工艺,降低产品对环境的污染和破坏。同时,杰力还积极参与各类环保公益活动和社会责任项目,为推动电子行业的可持续发展做出贡献。这些努力使得杰力在行业中树立了良好的环保形象和社会责任感。

问答坊 | AI 解惑

分享一个来自清华的毕业设计:usb接口设计

真是个好网站!usb接口设计。有需要参考的同志来取哦。…

查看全部问答>

德国mandia大功率LED专用荧光粉

德国mandia大功率LED专用荧光粉 一、简介 德国mandia大功率LED荧光粉是(Deutschland Mandia Materials Development Co., Ltd)德国mandia公司应对新世纪的照明工业的发展研制而成,该产品粒径15±0.1mil,适用于450-470NM芯片,亮度与市场上小功率 ...…

查看全部问答>

单片机测脉搏

我现在做的AT89S52测脉搏 用的红外 但是误差很大 想用压电式脉搏传感器 买了一个1元的传感器 但是不会接 有谁有经验吗?指教一下  谢谢了 如果有做过用红外测脉搏的 我们可以交流一下  QQ 478877726…

查看全部问答>

wince c# 求替代 datagrid 的自定义控件或源码.

wince c# 求替代 datagrid 的自定义控件或源码. 平台:wince vs 2008 c# vs自带的datagrid编辑表格真的是非常不好用。 行表头不行,使某列,某格不可编辑,不行。 等等 功能真的是太弱了. 求其替代控件或自定义控件. 不胜感激.…

查看全部问答>

求助:MAX712快速充电以及电流设定

用max712为核心,设计了一个镍氢电池组充电电路,实测充电电流和资料上介绍的计算公式计算值相差很大,另外快速充电指示灯常亮不灭,电路是参考网上的,根据自己的实际情况稍微改动,现具体说明如下: 1,设计充电器支持的电池组为10节5#电池,组 ...…

查看全部问答>

处理电源irp的小疑问,求高手赐教!

下面是处理电源irp的代码节选,问题是:为什么提高电源级别时使用完成例程,而降低电源级别时直接使用PoSetPowerState( pDevObj, type, newState);?请高手赐教!       if (newState < pDevExt->currentPowerState)   {& ...…

查看全部问答>

怎么找到一个正数第一个1前面的0的个数的VERILOG 算法

比如 16‘b0001 1011  0的个数是3,怎么用verilog去描述这个算法呢?   其实很简单:   如果是串行输入的,从低到高位,需要一个起始信号,然后用16的计数器,逐个判断即可。   如果并行数据,直接如下判断:  i ...…

查看全部问答>

LED照明调光技术

一、调光的必要性   电能作为一种绿色能源,在各国能源应用领域中占越来越大的比重。据中国工程院院士陈良惠调查得出结论,估计在2010年,全国的用电量将达2.7万亿度,其中照明用电量将超过3000亿度。因LED照明耗电仅为传统白炽灯和HID灯的1/3, ...…

查看全部问答>

uC/OS-II官方STM32版本修改后在万利的STM32开发板上运行

                                 bh3nvn:您好,学习单片机和ARM也都四五年了,我本身电气工程毕业的,所以操作系统的东西一直没时间琢磨,也一直想 ...…

查看全部问答>