1.卡顿的流水灯


我们用一个实验现象来再一次理解中断函数。


在主函数里我们使八盏灯不停地左右快速流水,此时若是被外部因素触发了中断函数的执行,我们就在中断函数里实现蜂鸣器响一下,看看此时主函数里的流水灯是什么现象。


代码下载进去,我们随意按K4,观察流水灯。


#include  

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

 

void main()

{  

    u8 i,dir;

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

    EX1 = 1;

    EA  = 1;

   

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

    KEY_Init();//初始化按键功能模块

     

    while(1)

    {

        if(i<8)dir=0;//向左移

        if(dir==0)P0=~(0x01<     

        if(i>=8)dir=1;//向右移 

        if(dir==1)P0=~( 0x80>>(i-7) );//当i大于等于8之后,(i-7)其实也还是在1~7之间变化

        delay_ms(50);

     

        i++;

        if(i>=15)i=1;//让i一直在1~14之间变化

    }

}

  

//请把P3.3和P2.3用杜邦线连接起来

void EXTI1_IRQHandler() interrupt 2

{

    u16 i;

    u8 x;

    for(i=0;i<2000;i++)

    {

        BEEP=!BEEP;

        for(x=0;x<75;x++);

    } 

}


可以看到流水灯在K4按下的时候触发了中断函数的执行,蜂鸣器响了一下,响的过程中流水灯停止了流水,说明在主函数里的CPU使用权被剥夺给了中断函数,导致了主函数的执行任务被暂停,蜂鸣器响完之后,也就是中断函数执行完了,CPU使用权给回了主函数,于是又接着执行流水灯的任务了,这些过程叫做保留现场和恢复现场。


2.中断的好处


我们再来领略一下中断的优势。


把下面的代码下载进去,蜂鸣器会一直响,然后随意按K4。


#include  

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

 

void main()

{  

    u8 x;

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

    EX1 = 1;

    EA  = 1;

   

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

    KEY_Init();//初始化按键功能模块

    LED2=0;    //点亮LED2

     

    while(1)

    {

        BEEP=!BEEP;

        for(x=0;x<75;x++); 

    }

}

  

//请把P3.3和P2.3用杜邦线连接起来

void EXTI1_IRQHandler() interrupt 2

{

    static u8 i=1;

    P0=~(0x01<    i++;

    if(i>=8)i=0;

}


试想,我们没学过中断函数,在前面几章的基础知识中只在主函数里实现蜂鸣器一直响,然后按键还可以切换小灯的跳转,这样的功能我们可以做得到吗,我想应该有点难度。所以在中断函数的帮助下有种任务并列执行的优势。


关键字:51单片机  中断 引用地址:51单片机-中断的实验现象

上一篇:51单片机-进一步理解中断函数
下一篇:51单片机-外部中断测脉冲个数

推荐阅读

一台搭载着乘客的汽车,行驶在马路上,要解决两个方面的问题:一是让乘客有安全感;二是让周边的人和车有安全感。现在,这两个方面的问题,都是由充当司机角色的人类来解决。当自动驾驶成为高频词,机器即将替代人类驾驶的时候,搭载着自动驾驶技术的车辆,就要解决上述两个方面的问题了。自动驾驶汽车如何与人类交流,尤其是与车内的乘客和周边的人如何交...
三星电子秋季旗舰机Galaxy Note10已在韩国正式开卖,预购量更突破历代纪录达130万台,外界期待,该手机于23日上市全球后,销量有望突破1000万台。据韩媒《首尔经济》报道,三星电子计划在美加地区、欧洲、东南亚、澳洲等70多国推出Galaxy Note10,9月初会增加至130多国。值得注意的是,Galaxy Note10在韩国预购期间,创下Galaxy S与Note系列中最高纪录...
近日,海外金融机构摩根士丹利发布了7月份苹果iPhone在中国“安装基数份额取得增长”的相关报告。报告显示,这次增长是继去年秋季以来的再次出现,而能取得这样的结果,iPhone 11功不可没。从报告中还可以看到,中国地区机龄达到2年以上的iPhone数量已经创造了最高纪录,而这也为今年秋季iPhone 12亮相后“潜在的强劲升级周期”奠定了基础,在iPhone 12...
网络测试仪的主要功能与特点是满足于现场工作的实际需要,在价格,性能和应用等方面会有很大的差别。在综合布线的测试与维护领域,依据它们所进行的测试功能,可以分成三个大类:验证测试,鉴定测试和认证测试。虽然这三个类别的综合布线测试仪在某些功能上可能有重叠,但每个类别的仪器都有其特定的使用目的。验证网络测试仪可以解决的问题是:“线缆连接...

史海拾趣

问答坊 | AI 解惑

SPI总线的DS1302实时钟控制

利用DS1302时钟芯片实现时间、日期的显示,并且具有调节时间、日期的功能。“星期”通过P0口显示,“时间”或“日期”采用MAX7219控制共阴极LED显示,通过“时间/日期”切换键,实现时间和日期的切换。按下“调整”键,再分别按相应的“星期”、“ ...…

查看全部问答∨

有人是从纯软转嵌入式的吗?这里报个名。

有人是从纯软转嵌入式的吗?用了多长时间?…

查看全部问答∨

各位兄弟可要注意:小心自己的ID被封都没知是怎么回事,连个申诉的途径都没有,被封了连个判决书也没有?怎么被人删除了?

各位再看看,刚才那个贴子已经被版主删除了,他是担心 什么,还没有一会就直接删除,而且也没个通知说明一下,各位兄弟这里的版主是正直,但是做事的方式有欠妥,直得商榷,我不是说打广告对,我是说他直接封我ID,之前不说一下,之后不通知,感觉很郁闷!如果他 ...…

查看全部问答∨

香版,能否透绿一下互联系列会不会出144脚

                                 香版,能否透绿一下互联系列会不会出144脚…

查看全部问答∨

转行, 单片机还是嵌入式

工作四年, 一直做手机软件, 语言是C/C++, 最近不想做手机了, 想做偏硬件一定, 请问这两个那个加班比较少, 而且可以长期做. 本人是什么技术, 开始都很慢, 但是做久了, 效率超高的那种. 还有就是成都哪种工作机会更多的.…

查看全部问答∨

DB9与MAX3232的连接

请问下,DB9与MAX3232连接为什么是TX接TX,RX接RX,输入与输入,输出与输出,这样能实现通信吗…

查看全部问答∨

哪位大神有手机键盘的程序?求分享

最近需要一个手机键盘的程序,然后修改一下,做成人机交互的键盘输入,使用的芯片是430F5438,如果谁有这个程序请给小弟分享一下,我的邮箱627582845@qq.com…

查看全部问答∨

收一块C2000 Launchpad

需要一个XDS100 来仿真BBB,穷学生只好弄个C2000 Launchpad 来做个简易的 大家别浪费资源啊…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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