蓝桥杯之单片机学习(七)——中断系统与外部中断应用

简介: 蓝桥杯之单片机学习(七)——中断系统与外部中断应用

一、中断相关的基础概念


0a2653c851af460fa595bd959398a8f1.png


二、中断的响应过程


2d65d23f6d4748949b924e4057485923.png


三、关于51单片机的中断系统


有5个中断源,从高到低依次为

0a2653c851af460fa595bd959398a8f1.png

也可以手动调优先级

0eacb84100b54626af849e6b562bf92a.png

EA:总中断

每个中断源都对应一个固定的入口地址,也就是中断向量,依次为:

2d65d23f6d4748949b924e4057485923.png

主要记住中断号0-4


3.1 中断相关的寄存器


中断相关的寄存器有4个,都可以位寻址。其中2个为控制寄存器:IE寄存器和IP寄存器

0a2653c851af460fa595bd959398a8f1.png

(很少用)

另外两个为中断请求标志:TCON寄存器和SCON寄存器(串口)

2d65d23f6d4748949b924e4057485923.png


3.2 中断服务函数程序的编写


一般情况下,中断处理函数有两个,一个是中断初始化函数,另一个是中断服务函数,初始化函数是一个普通的函数,而中断服务函数却有特殊的格式要求:


0a2653c851af460fa595bd959398a8f1.png2d65d23f6d4748949b924e4057485923.png


四、训练任务及其电路图展示


4cebaac233b3433da32a72337a77fc60.png


五、代码展示


#include <reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit L1 = P0^0;
sbit L8 = P0^7;
void Delay(uint t)
{
  while(t--);
  while(t--);
  while(t--);
}
//配置HC138
void SelectHC138(uchar channel)
{
  switch(channel)
  {
  case 4:
    P2 = (P2 & 0X1F) | 0X80;
  break;
  case 5:
    P2 = (P2 & 0X1F) | 0Xa0;
  break;
  case 6:
    P2 = (P2 & 0X1F) | 0Xc0;
  break;
  case 7:
    P2 = (P2 & 0X1F) | 0Xe0;
  break;
  }
}
//初始化系统
void Initsys()
{
  SelectHC138(5);
  P0 = 0X00;//关闭蜂鸣器和继电器
  SelectHC138(4);
  P0 = 0XFF;//关闭LED
}
void Working()
{
  SelectHC138(4);
  L1 = 0;
  Delay(60000);
  L1 = 1;
  Delay(60000);
}
//*******************************************
void Init_INT0()
{
  IT0 = 1;//下降沿触发
  EX0 = 1;
  EA = 1;
}
uchar stat_int = 0;
void ServiceINT0() interrupt 0
{
  stat_int = 1; //中断服务函数,尽量少做事情
}
void LEDINT()
{
  if(stat_int == 1)
  {
  L8 = 0;
  Delay(60000);
  Delay(60000);
  Delay(60000);
  Delay(60000);
  Delay(60000);
  Delay(60000);
  L8 = 1;
  }
}
//*******************************************
void main()
{
  Init_INT0();
  Initsys();
  while(1)
  {
  Working();
  LEDINT();
  }
}
相关文章
|
2月前
|
传感器 数据采集 监控
LabVIEW单片机的废气再循环EGR检测系统
LabVIEW单片机的废气再循环EGR检测系统
23 0
|
22天前
|
存储 算法 测试技术
第十五届蓝桥杯大赛 国赛 pb组F题【括号与字母】(15分) 栈的应用
第十五届蓝桥杯大赛 国赛 pb组F题【括号与字母】(15分) 栈的应用
11 1
|
26天前
|
Java
2023蓝桥杯大赛软件类省赛Java大学B组G题 买二增一 队列的简单应用
2023蓝桥杯大赛软件类省赛Java大学B组G题 买二增一 队列的简单应用
14 1
|
10天前
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
|
10天前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
1月前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
33 4
|
2月前
|
存储
MCS-51单片机的中断源
MCS-51单片机的中断源
106 1
|
2月前
|
传感器
基于51单片机的车辆倒车雷达报警系统
该文描述了一个基于51单片机的超声波倒车雷达系统设计,要求包括:2cm至4m的测量范围,3mm精度,集成DS18B20温度传感器以校准声速,使用LCD1602显示距离和温度,具备按键设置预警距离及蜂鸣器报警功能。系统由AT89C51单片机、HC-SR04超声波模块、DS18B20温度模块、报警电路和LCD显示电路组成。文中还展示了Proteus仿真电路图和部分仿真结果分析,包括LCD显示示例和预警距离设置操作。
46 4
|
2月前
|
存储 芯片
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
|
2月前
|
芯片
AT89S52单片机的最小应用系统
AT89S52单片机的最小应用系统
45 0