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

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

一、中断相关的基础概念


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();
  }
}
相关文章
|
11月前
|
传感器 数据采集 监控
LabVIEW单片机的废气再循环EGR检测系统
LabVIEW单片机的废气再循环EGR检测系统
91 0
|
6月前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
325 5
|
6月前
|
传感器 编解码 人机交互
基于51单片机的温室大棚环境检测系统
基于51单片机的温室大棚环境检测系统
150 0
|
10月前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
214 4
|
9月前
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
206 0
|
9月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
205 0
|
11月前
|
存储
MCS-51单片机的中断源
MCS-51单片机的中断源
533 1
|
11月前
|
芯片
AT89S52单片机的最小应用系统
AT89S52单片机的最小应用系统
251 0
|
11月前
|
编译器 C语言 开发者
单片机原理与应用:探索微型计算机世界
单片机原理与应用:探索微型计算机世界
91 1
|
11月前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
161 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等