单片机的中断系统(单片机)

news/2025/3/20 7:44:43/

目录

一、中断系统的基本概念

二、中断系统的控制

三、中断系统应用举例

1.实现方法   

2.程序设计

主要看注释


 

一、中断系统的基本概念


1、中断源


        要让单片机停止当前的程序去做其他事情,需要向它发出请求信号,CPU接收到中断请求信号后才能产生中断。让CPU产生中断的信号称为中断源(又称中断请求源)。

      

2、中断的优先级别


外部中断INTO(最高)

定时器T0

外部中断INT1

定时器T1

串行口通信中断RI或TI(最低)

3、中断服务函数的格


函数类型 函数名(形式参数列表)

例如:void Time0(void) interrupt 1 using 0 

//定时器T0的中断服务函数,T0的中断编号为1,使用第0组工作寄存器

        interrupt后面的n是中断编号,n的取值范围为0~4,using中的m表示使用的工作寄存器组号。

4、中断的处理过程


        CPU处理事件的过程称为CPU的中断响应过程,对事件的整个处理过程称为中断处理。再接着继续执行被中断的程序,这称为中断返回。

        

5、5个中断请求源


1 )外部中断请求源 ,由 P3.2 引脚输入。
2 )外部中断请求源 ,由 P3.3 引脚输入。
3 )定时器 / 计数器溢出中断请求源 T0
4 )定时器 / 计数器溢出中断请求源 T1
5 )串行口中断请求源 TI RI

6、中断源寄存器


        80C51单片机的中断源寄存器2个,即定时器/计数器控制寄存器TCON串行通信控制寄存器SCON。它们的功能是可以向CPU发出中断请求。

7、中断允许寄存器


       80C51单片机有1中断允许寄存器IE,其功能是控制各个中断请求能否通过,即是否允许使用各个中断。

8、中断优先级控制寄存器


80C51单片机有1个中断优先级寄存器IP,其功能是设置每个中断的优先级。

二、中断系统的控制


1、定时器/计数器控制寄存器TCON


        TCON的功能是接收外部中断源(INT0、INT1)定时器/计时器(T0、T1)送来的中断请求信号。其字节地址为88H可位操作。该寄存器中有定时器/计数器T0T1的溢出中断请求标志位TF1TF0,外部中断请求标志位IE0IE1

TCON寄存器中与中断系统有关的各标志位的功能

1IT0IT1:外部中断的触发方式控制位,可由软件进行置位和复位。

        以外部中断为例,IT1=0时, 为低电平触发方式,即“0”到来即触发外中断 IT1=1时, 为负跳变触发方式,即由“1”到“0”跳变时触发外中断 。

2 IE0 IE1 :外部中断 的中断请求标志位。
        以外部中断为例,当外部有中断请求信号(低电平或负跳变)输入 P3.3 引脚时,寄存器 TCON IE1 会被硬件自动置“ 1 ”。 在CPU响应中断后, IE1自动清0。
3 TF0 TF1 :定时器 / 计数器 T0 T1 的中断请求标志。
         当定时器/计数器工作产生溢出时 ,会将 TF0 TF1 位置“ 1 ”。 以定时器T0为例,当T0溢出时,TF0置“1”,同时向CPU发出中断请求。 CPU 响应中断后, TF0 自动清 0 。注意和定时器查询方式的区别:查询到 TF0 置“ 1 ”后,需由软件清 0
在单片机复位时,寄存器TCON的各位均被初始化为“0”

2、串行通信控制寄存器SCON


 SCON的功能主要是接收串行通信口送到的中断请求信号。

3、IE中各位的功能如下


EA :中断允许总控制位
ES :串行口中断允许
ET1 :定时器 / 计数器 T1 的溢出中断允许位
EX1 :外部中断 1 中断允许位
ET0 :定时器 / 计数器 T0 的溢出中断允许位
EX0 :外部中断 0 中断允许位

1)用位操作

          EA=1;     //CPU开总中断

         ET0=1;    //允许定时器/计数器T0溢出中断

2)用字节操作

         IE=0x82;  //IE=1000 0010B,即EA=1ET0=1

三、中断系统应用举例


1.实现方法   


       将定时器T0设置为工作方式1,而要使T0作为中断源,必须开总中断开关EA和T0的 “分支”开关“ET0”,然后还要将TR0位置“1”以启动定时器T0。

2.程序设计


主要看注释

#include<reg51.h>
sbit D1=P1^7;void main(void)              //总函数{EA=1;                   //开总中断ET0=1;                  //定时器T0中断允许        TMOD=0x01;            //使用定时器T0的模式1TH0=(65536-46083)/256;   //定时器T0的高8位赋初值TL0=(65536-46083)%256;  //定时器T0的低8位赋初值TR0=1;                 //启动定时器T0A=0xfe;D1=A;while(1) ;               //无限循环,等待中断}void Time0(void) interrupt 1 using 0    	//“interrupt”声明函数为中断服务函数//其后的“1”为定时器T0的中断编号;“0”表示使用第0组工作寄存器 {A=<<1;                 //数据左移1位if(A!=0xff)A=|1;                  //数据末位置1 elseA=0xfe;               //数据置初始值     D1==A;             	     //实现显示TH0=(65536-46083)/256;   //定时器T0的低8位重新赋初值TL0=(65536-46083)%256;   //定时器T0的低8位重新赋初值}


http://www.ppmy.cn/news/123449.html

相关文章

Linux中断(interrupt)子系统之三:中断流控处理层

1. 中断流控层简介 早期的内核版本中&#xff0c;几乎所有的中断都是由__do_IRQ函数进行处理&#xff0c;但是&#xff0c;因为各种中断请求的电气特性会有所不同&#xff0c;又或者中断控制器的特性也不同&#xff0c;这会导致以下这些处理也会有所不同&#xff1a; 何时对中…

中断控制器及中断控制

所有以ARM为内核的处理器的异常共分为&#xff17;中&#xff0c;每一种异常对应一个异常向量&#xff0c;每个异常向量占&#xff14;个字节&#xff0c;指出中断服务程序的入口地址。异常向量表从0x00000000~0x0000001F。 其中普通中断和快速中断的向量地址为0x00000018~0x0…

第七章-中断控制器

可编程中断控制器8259A 文章目录 可编程中断控制器8259A前言一、内部结构1、 对外信号2、内部寄存器&#xff08;443&#xff09; 二、工作过程及原理三、8259A的工作方式四、8259A初始化命令字五、8259A的操作命令字总结 前言 本博客仅做学习笔记&#xff0c;如有侵权&#x…

中断系统

引起中断的各种因素 1.人为设置的中断 2.程序性事故&#xff1a;溢出&#xff0c;除法非法&#xff0c;操作码不能识别 3.硬件故障 4.I/O设备 5.外部事件&#xff0c;键盘ESC退出 中断系统需要解决的问题 &#xff08;1&#xff09;各中断源怎么向CPU提出中断请求 &#xff…

单片机中断系统

前言&#xff1a;中断系统是单片机非常重要的组成部分&#xff0c;是为了使单片机能够对外部或者内部随机发生的事件实时处理而设置的。 一&#xff1a;单片机的概念 一个高速主机和一个低俗外设连接时&#xff0c;效率极低&#xff0c;低俗外设工作时无端大量占用CPU时间。一…

17.中断控制器

文章目录 中断控制器4412下的中断控制器本次实验用到的寄存器 编程 中断控制器 如果外设直接发送中断给CPU会存在下列问题&#xff1a; 当CPU在处理一个中断时会屏蔽其它中断由于CPU是多核的&#xff0c;中断请求会随机发送给任意CPU&#xff0c;会造成混乱中断不清楚是属于F…

中断系统结构及中断控制详解

中断系统结构及中断控制详解 MCS—51提供5个中断请求源&#xff0c;2个中断优先级&#xff0c;可实现两级中断服务程序嵌套。当CPU执行关中断指令后&#xff08;或复位&#xff09;&#xff0c;将屏蔽所有中断请求&#xff0c;只有CPU执行开中断指令后才有可能接受中断请求&am…

中断控制器

在ARM中CPU有七种工作模式&#xff1a; 什么叫做工作模式&#xff1f; 每一种工作模式都有哪些东西&#xff1f; 每一种工作模式下面都有一些不同的寄存器、不同的权限、不同的触发条件&#xff1b; 不同的寄存器&#xff0c;如图&#xff1a; 可以看出&#xff0c;不同工…