产品选型

单片机 中断向量 51单片机外部中断0实例详解

小编 2025-06-07 产品选型 23 0

51单片机外部中断0实例详解

今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法。

1 51单片机的中断源

51单片机共有5个中断源,分别为:

外部中断0

定时器0中断

外部中断1

定时器1中断

串口中断

每一个中断都对应一个中断向量,中断向量表如下所示:

2 什么是中断事件

当中断发生时单片机将正在执行的程序暂时放下而去处理中断事件,当中断事件处理完毕后再接着去处理之前的事情,这样可以大大降低单片机的资源,提高执行效率。举个例子说明一下什么是中断:

我很喜欢打CS,每天晚上我都会抽时间打CS,但同时厨房里正在烧水,为了不使水烧干,我每隔5分钟就去厨房看一下水有没开,但这就错过了游戏老被别人爆头干掉,我很苦恼,怎么办。于是我在网上买了一个水烧开就会叫的水壶,这样我就不用每隔5分钟去厨房了从而可以专心的打游戏,只有听到水壶吱吱叫的时候,我去把水倒出来就可以了。

在这个例子里,打游戏就是主任务,水烧开就是中断,吱吱叫就是中断向量,听到吱吱响我就明白水烧开了,这时我要把打游戏这个主任务暂时放下,转而去处理水烧开了这个中断事件,水倒完后我就又回到了游戏这个主任务中。这样是不是提高了打游戏的效率呢?

3 中断的硬件实现

51单片机的外部中断0引脚接一只按键,该按键通过上拉电阻接到电源,即没有按键发生时单片机检测到的是高电平,当按键按下时单片机检测到的是低电平。单片机的P0.0引脚以灌电流的方式接了一只LED,当按键按下时LED灯点亮,没按键时LED灯熄灭。

4 中断的软件实现

单片机中断函数的写法比较固定,51单片机中断函数的写法如下:

void Initd() interrupt 0

其中:

void:为中断函数的返回类型,中断函数多为空类型;

Initd():是中断函数的名称,这个函数名符合C语言函数命名规范就可以,随便起;

interrupt:为51单片机中断的关键字,必须这么写(51单片机必须这么写);

0:为中断向量,该值详看第一个表格,如果是外部中断1就写2,如果是定时器1中断就写3;

中断函数不用在主函数中调用,只要中断事件发生,单片机自己主动会调到中断函数中。

该例子的函数如下所示:

5 仿真实现

当按键发生时,LED灯点亮,如下图所示。注意对比两种图中按键的状态

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。公众号:micropoint8,对于本节内容欢迎大家讨论。

无中断向量重定位单片机中实现IAP和APP中断的方法

在实际的生产工作中,从经济和实用性方面考虑,选择嵌入式系统MCU控制器时常常会使用到一些性能相对较弱,功能配置也不太强大的单片机,这类单片机有时候仅仅够用,无法从根本上满足多元化的需求。如果需要更多的功能就需要选择更高端的单片机,同时也意味着成本的增加。本文在项目过程中选用的MCU即为这种类型。在产品的整个生命周期中,需要对应用程序进行及时的升级换代,这就用到了IAP功能,而该款MCU不具备硬件级的中断向量重定位功能,因此只能另辟蹊径,以软件的方式解决该问题。

作者信息:

韩雨泓1,陈良勇2

(1.四川大学 计算机学院,四川 成都 610000;2.原成都军区联勤部后勤信息中心,四川 成都 610000)

相关问答

51 单片机 的中端号与 中断向量 的计算公式?

中断向量=中断号×8+3。如,定时器1,voidT1_INT()interrupt3其中断号是3。中断向量=3×8+3=27。27换算成16进制,就是001...

飞思卡尔9S12XS128 单片机 中断向量 和中断号,在芯片手册里...

第一章,1.6ResetsandInterrupts一般都是exception的章节里面,或者看BSP代码相关的.h里面看那些宏即可。工程下面有个文件夹“Includes”面包含文...

pic 单片机中断 函数如何命名?

中断的函数名师自己定义的,但是必须在后面加入关键字“interruptx”,其中“x”是中断向量的编号(中断向量号对应的中断查看任何一本讲解51的书),主函数中不...

单片机 ,外部 中断 程序,为什么不用写在主程序中?为什么 中断 函数不在主函数也可以运行?

中断用于执行优先级更高的任务中断顾名思义是“中途打断”的意思。举一个简单的例子:您正在和部门的同事在开会,突然老板进来找你,你就得暂停会议,离开会议...

51 单片机中断 系统的组成?

MCS51单片机的中断系统由中断源、中断允许控制、中断优先级控制和中断向量组成。中断源的意思是哪些事件可以触发中断,比方说,外部中断、定时器中断、通讯中...

单片机中断 机制有哪些?

谢邀!对于单片机的中断分这么几类,从中断源分部布上可分外部中断和内部中断、硬件中断及软件中断,芯片的开发者已给各类芯片的中断都有赋予各自的向量地址入...

51 单片机 有哪两级 中断 ?

51单片机有2级中断,分别是高优先级和低优先级中断。可以使得8051单片机可实现两级中断服务程序嵌套,由片内特殊功能寄存器中.如果是同级中断,优先顺序按中断向...

请说明51 单片机 中的 中断 入口地址的含义?

1,51单片机中的中断入口地址的含义就是去执行中断连接的程序,一般在程序的末尾段。2,若51单片机使用C语言编程,51单片机中断号的排列顺序是按中断向量地址由...

51 单片机 定时器0的 中断 编号为多少?

在编写单片机程序时,我们可以使用定时器0来计算时间间隔、延时等操作。当定时器0计数到设定值时,就会触发定时器0中断,此时CPU...51单片机定时器0的中断编号...

51 单片机中断 如何关闭?

51的串口中断,接收和发送是共用一个中断向量的,没法单独关闭。一般在中断服务函数中检测TI标志并及时清零就可以了。1、在中断服务程序里,关闭中断允许标志当...

猜你喜欢