实现内容与基本原理解释

**实现结果:**触发INT0口并使用中断函数来使得八个LED循环两次流水灯后全部熄灭

**原理解释:**首先将单片机开启全局允许中断指令,再对INT0开启允许中断接口,之后只需要将INT0引脚变成低电平就可以触发中断函数了

重要变量

  1. IT=0 电平触发;IT=1 跳沿触发
  2. EX=0 禁止外部中断;EX=1 允许外部中断
  3. EA=0 禁止全局中断;EA=1 开放全局中断
  4. PX=0 为该引脚设置低优先级中断;PX=1 为该引脚设置高优先级中断

这里不详细讲中断函数,仅提供代码实现方法,具体内容查看《SC中断函数》


无优先级的单个按钮外部中断

如开头所述实现方法,如下图布置8个LED,然后布设一个开关来控制INT0口的外部中断

中断函数编写

  1. 中断函数格式为:void name(void) interrupt a using b{}
    其中name为自定义名字,可以随便取;
    a表示欲操作的工作寄存器区;
    b表示工作寄存区a下属的工作寄存器
  2. 中断函数没有返回值!没有形参!且不可以被任何函数调用!
  3. 只要我们编写了中断函数后,函数即生效而无需调用,所以我们只需要在函数体里面写入操作即可
  4. 函数体内为我们要实现的代码,流水灯循环两次然后全部灯熄灭,代码和之前文章内一致可以去看看
void int0(void) interrupt 0 using 1{uchar j,k;for(j=0;j<2;j++){P0=0xfe;for(k=0;k<8;k++){P0=_crol_(P0,1);delay(22);}}P0=0xff;
}

主函数编写

  1. P0=0xff 首先让所有的灯灭掉(二进制为11111111)
  2. EA=1 打开单片机全局可中断开关
  3. IT0=1 选择INT0口为跳沿触发方式
  4. EX0=1 让INT0允许外部中断
void main(){P0=0xff;EA=1;IT0=1;EX0=1;while(1);
}

完整代码

#include<reg51.h>
#include<intrins.h>#define uchar unsigned char
#define uint unsigned intvoid delay(uint k){uchar i,j;while(k--){for(i=0;i<255;i++);for(j=0;j<255;j++);}
}void int0(void) interrupt 0 using 1{uchar j,k;for(j=0;j<2;j++){P0=0xfe;for(k=0;k<8;k++){P0=_crol_(P0,1);delay(22);}}P0=0xff;
}void main(){P0=0xff;EA=1;IT0=1;EX0=1;while(1);
}

有优先级同时中断

KeilC51单片机外部中断原理解释相关推荐

  1. 51单片机按键控制数码管0~9_51单片机外部中断

    前面为大家介绍的点亮LED灯.数码管.按键只用到了51单片机的IO资源,我们要是仅仅用单片机点灯.操作数码管,那可真是大才小用了.这些都只是51单片机资源的冰山一角,51单片机还有好多的功能,我后面将 ...

  2. 单片机定时器中断原理

    单片机定时器中断原理 #define _1231_C_ #include "reg51.h" //sbit OE=P2^3; unsigned int SystemTime; vo ...

  3. pic16f1787 C语言程序,单片机定时器中断原理图解

    描述 单片机定时器中断是我们经常都需要用的,下面将以51单片机为例子来说明单片机定时器中断原理. 80C51的定时/计数器的结构 定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组 ...

  4. STM32单片机外部中断配置讲解

    2019独角兽企业重金招聘Python工程师标准>>> 单片机外部中断简介 所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平.低电平).边沿变化(上升沿. ...

  5. 单片机外部中断实验C语言程序,STC89C52单片机外部中断0实验

    原标题:STC89C52单片机外部中断0实验 / 实现功能: 设置,然后通过点亮与P1口第一个引脚相连的D1来 显示系统进入了外部中断0 实验板型号:BS-XYD-C52 实验名称: 外部中断0测试 ...

  6. 单片机外部中断触发方式:电平触发和边沿触发两者说明

    单片机外部中断触发方式:电平触发和边沿触发两者说明 51单片机的外部中断有两种触发方式可选:电平触发和边沿触发.选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向 ...

  7. STM32单片机---外部中断

    外部中断 一.ARM Cortex-M3 的中断体系 二.代码思路 函数接口 1.为引脚选择使用哪个中断 2.配置外部中断 3.中断优先级配置 4.获取外部中断状态 5.清空外部中断标志位 中断优先级 ...

  8. 51单片机 | 外部中断实验

    文章目录 一.外部中断介绍 二.外部中断配置 三.硬件设计 四.软件设计 五.实验现象    51 单片机外部中断有 2 个,外部中断 0 和外部中断 1,它们的使用方法是一样的,所以只要学会一个即可 ...

  9. 51单片机外部中断的C51编程

    51单片机外部中断的C51编程 相关知识: 1.51单片机的5大中断源:串行口中断.定时中断1.外部中断1.定时中断0.外部中断0: 2.中断源的编号: 串行口中断为4.定时中断1为3.外部中断1为2 ...

  10. STC15单片机——外部中断

    STC15单片机拥有5路外部中断,分别为外部中断0.1.2.3.4.本文章将其分为外部中断0.1和外部中断2.3.4介绍,分别介绍其相关的寄存器以及注意事项. 由于STC15单片机外部中断的使用于传统 ...

最新文章

  1. Android状态栏
  2. Springboot 整合 swagger
  3. leetcode —— 15. 三数之和
  4. 微信公众嵌套页面里再嵌入其他页面的一些问题
  5. CSS 三角型的实现原理
  6. linux 文件夹换用户组,Linux-用户管理和用户组管理
  7. 谈谈Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
  8. 十面阿里,屌丝程序员的逆袭之路
  9. 牛客多校训练AFJ(签到)
  10. 《菜菜的机器学习sklearn课堂,孔浩Java视频百度云盘
  11. gcc编译器下载各版本下载
  12. matlab中单相整流器,应用Matlab仿真单相PWM整流器的一种简单方法
  13. OKR 八问 —— 关于 OKR 的常见问题与思考
  14. 解决“微信与此IPAD不兼容
  15. 蚂蚁上市招股书:员工持股40%月薪人均5万,直奔财富自由
  16. OSChina 周五乱弹 —— 睡觉都枕着小姐姐
  17. 四大组件之activity生命周期探索
  18. 2021-2025年中国自动化侧面装载机行业市场供需与战略研究报告
  19. 我的世界服务器显示弹幕,我的世界直播弹幕模组
  20. Android 之 超详细 Broadcast

热门文章

  1. 小米mix2安兔兔html5跑分,小米MIX 2S跑分多少?高通骁龙845安兔兔跑分实测 (全文)...
  2. keepalived 单播模式
  3. HTML基础知识笔记
  4. 新手怎么在GitHub上传代码?----最新教程
  5. 不要老是盯着你的对手,要开始盯紧你的用户啦
  6. 芯片春秋: ARM前世今生
  7. EAS BOS:序时簿中获取选中行中某单元格的值方法
  8. 俺的三国武将观(一)
  9. 20145322何志威 《Java程序设计》第8周学习总结
  10. 地址解析协议(ARP)