历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2021年08月23日 | 51单片机-中断函数

发布者:数字奇迹 来源: eefocus关键字:51单片机  中断函数 手机看文章 扫描二维码
随时随地手机看文章

1.中断函数概念

上一讲里,当赋值IT0为1时,P3.2遇到下降沿,IE0被置1,要想使IE0自动清零,我们引用中断函数就可以了。


我们可能已经习惯了都是在main函数里阅读分析代码,其实还有另一种函数需要我们认识的,那就是中断函数。所谓中断函数就是当它满足一定的条件时就会暂停主函数的执行内容,转而去执行中断函数。关于这个概念网上很多说法都已经讲解的很详细了,这里点一下即可。


因为我们擅长的是从实践中领悟真理,所以后面我们尽量用例程去理解中断函数。

 

2.中断函数的书写

中断函数与其他我们封装过的子函数的写法不同,有个区分标志“interrupt”。

至于后面为什么会有个数字0我们以后再讲。

6.8.png

当然函数名我们可以随意取,只要不跟以前封装定义好的函数名冲突就行。这里我们取“EXTI0_IRQHandler”作为函数名是模仿STM32单片机的写法。

 

3.EX0和EA

我们说过要想进入中断函数,必须满足它的一些前提条件。这里的EX0(IE^0)和EA(IE^7)要初始化赋值给1才能进入的了中断函数去执行任务。

EA叫做总中断开关,EX0是针对P3.2的外部中断的开关。

也就是要想进入中断函数必须满足两个开关都要闭合(都为1)。


6.9.png


4.实战

同样像上一讲那样拔插杜邦线观察现象,可以看到程序中IE0的身影不再出现但实现功能也都是一样的


#include  

#include //详见第六章第8讲

 

void main()

{  

    IT0 = 1;    //下降沿触发模式

    EX0 = 1;

    EA  = 1;

   

    LED_Init(); //初始化LED硬件模块 

    while(1);   //主函数什么事都不做,空循环这条语句

}

  

void EXTI0_IRQHandler() interrupt 0

{

    LED2=!LED2; 

}


所以看起来主函数什么内容也没有,但是在拔插杜邦线的过程中触发了中断函数,所以LED2被执行跳变,这就是中断函数的作用。


即使主函数一直执行“while(1);”,中断函数还是能执行的了的。


大家把“EX0=1;”改为“EX0=0;”,或者把“EA=1;”改为“EA=0;”再编译下载进去拔插杜邦线发现LED2没有反应,因为这样做已经不满足触发中断函数响应了。

关键字:51单片机  中断函数 引用地址:51单片机-中断函数

上一篇:第一页
下一篇:51单片机-进一步理解中断函数

推荐阅读

   8月20日,美国贸易代表办公室在华盛顿举行拟针对2000亿美元中国输美产品加征关税的听证会。听证会将持续6个工作日,当天的听证会是对华关税政策系列听证活动的第一场,来自箱包、服装、食品加工、半导体等61位行业协会和企业代表出席,其中有55位代表反对美国政府加征关税。截至目前,美国贸易政策代表办公室已收到2039份证词,多数反对加征关税。美...
5G已经商用了,其所带来的利好对于各行各业来说都是巨大的,尤其初期对于手机行业来说更是如此。三大运营商预计将会在9月正式公布5G相关资费政策,这也会进一步刺激各大手机厂商下半年推出5G手机的进程。集微网消息,2019年8月21日,三星电子在北京举办了三星Galaxy Note10系列新品发布会。其中,Galaxy Note10+ 5G成为了三星在中国市场推出的第一款5G...
苹果本周开始在美国、加拿大和部分其他国家地区首次销售经过认证的10.2英寸iPad机型(蜂窝版)翻新机。与全新机型相比,价格折扣约为15%。128GB版10.2英寸iPad翻新机售价469美元(约3245元)。  苹果表示,经过认证的翻新iPad机型都经过了彻底的检查、测试、清洁,并重新包装在全新的白色盒子里,包括所有配件和文件。每台翻新 iPad 都会有...
工业机器人,发展与挑战并存。 如今,机器人已经成为红人。居家生活需要机器人,酒店经营需要机器人,学校教育需要机器人,医疗救治需要机器人,在工业制造领域,“机器换人”也在如火如荼地进行着。 工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置,具有一定的自动性,可依靠自身的动力能源和控制能力实现各种工业加工制造功能。 工...

史海拾趣

问答坊 | AI 解惑

2407AD转换模块几种触发源的应用

下载链接: http://www.hellodsp.com/bbs/viewthread.php?tid=7326…

查看全部问答∨

超声波测距问题

本帖最后由 paulhyde 于 2014-9-15 09:10 编辑 最近买了个超声波测距模块,但发现程序与引脚对不上,调试的时候有错误,希望高手指点  …

查看全部问答∨

在skyeye中模拟s3c2410

在skyeye中模拟s3c2410,然后想退出s3c2410,却退不出来! #poweroff 。。。 。。。 pweroff。 卡在这!…

查看全部问答∨

为什么说30岁后的程序员就老了呢?[

我今年20岁,是一名大一的学生(非统招),计算机专业的(软件编程方向),我主要想阐述下我的过去,和一点点倾诉吧…字很多,希望前辈们能看完,谢谢了…   我在很早就听说过,关于程序员到了30岁就老了的新闻.我也一直担心这个事情.说句实话,給我 ...…

查看全部问答∨

求助各位

我以前一直是做WIDNOWS开发的,最近活比较少,公司接了单片机的项目。又不招人,只能我自己硬上了。项目是用瑞萨的单片机38D5的芯片。最近开发环境还没有到手,就先学习一下单片机的开发。本人没有51,PIC等任何单片机的基础,所及这两天感觉过得无 ...…

查看全部问答∨

为什么烧写mini2440的BIOS时要先初始化

烧写友善mini2440的板子的BIOS要设置初始化脚本,我看了脚本内容,基本都是设置内存数据。 我注释了一下: SCRIPT SECTION: Setmem 32-Bit 0x53000000 0x00000000 ; pWTCON , 看门狗定时器控制寄存器 Setmem 32-Bit 0x4A000008 0xFFFFFFFF ; INT ...…

查看全部问答∨

上海曙海教育FPGA培训班马上开课了

曙海教育“FPGA培训班课程开课信息” 上海曙海教育FPGA培训班马上开课了: 曙海教育“FPGA应用设计初级班”授课内容请参见以下网址: http://www.bjzhda.cn/fpgayy.htm 曙海教育“FPGA应用设计高级班”授课内容请参见以下网址: http://www. ...…

查看全部问答∨

pxa270休眠唤醒的怪问题。。

release版与debug版的区别在哪?把debug版本下的display驱动放到release下编译照样出样下列错误。。。 GP1 Irq PwrButtonIntrThread :go to sleep! SA2Video::PowerHandler++++++++++ DispDrvrPowerHandler----------bOff = 1 DispDrvrPowerHa ...…

查看全部问答∨

cs8900a driver

最近在porting cs8900a driver, 从wince5.0 移到wince6.0中, 驱动编译成功,系统也能够检测到网卡,网络连接标示也有,可是与 pc 机就是ping 不通,不能连接到internet.硬件都没问题!希望那位大侠能够出手帮忙!!!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved