目录

一、中断系统的基本概念

二、中断系统的控制

三、中断系统应用举例

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,可位操作。该寄存器中有定时器/计数器T0和T1的溢出中断请求标志位TF1和TF0,外部中断请求标志位IE0和IE1。

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

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

以外部中断为例,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=1,ET0=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位重新赋初值}

单片机的中断系统(单片机)相关推荐

  1. 单片机学习——中断系统

    单片机必学系列 单片机学习--中断系统 单片机学习--存储器详解(程序存储器.片内RAM.拓展RAM.EEPROM) 单片机学习--定时器/计数器 单片机学习--A/D转换 更新ing 单片机学习-- ...

  2. 51单片机的中断系统

    文章目录 1 51单片机的中断系统 1.1 中断的固有优先级和抢占优先级 1 51单片机的中断系统 1.1 中断的固有优先级和抢占优先级 中断使能寄存器: 中断查询序列: interrupt 后面中断 ...

  3. 51单片机之中断系统

    51单片机之中断系统 中断系统 四种中断类型: 外部中断: 定时器/计数器T0.T1中断: 串行口中断: 定时器/计数器T2中断: 中断入口: 与中断相关的特殊功能寄存器: 中断优先级: 中断响应时间 ...

  4. 51单片机笔记:中断系统

    单片机笔记 中断系统 工作原理 功能描述 终止当前进行的事件,去处理突发需及时处理的事件,处理完还要返回原事件. 中断符函数 void ISR() interupt n 中断符函数与普通函数区别 普通 ...

  5. 51单片机的中断系统详解

    单片机的中断系统 概念 中断发生:CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理. 中断响应和中断服务:CPU暂时中断当前的工作,转去处理事件B. 中断返回:将事件B处理完毕后,回到事 ...

  6. 51单片机的中断系统及编程(附案例)

    本文简单粗暴地阐述了中断的一些概念.中断源.中断寄存器各位的作用,并写出了编写一个中断函数的流程/要点.不在意细节时,可直接查看照搬"三.中断程序的编程". 一.中断概念 中断定义 ...

  7. 单片机的中断系统(一)

    想总结中断由来已久,但是总感觉一章的东西,太多,无从下手. 前几天看到一句话"能把自己学会的东西说出来,才是真的学会".今天,就要会一会这中断系统. 图片和文字内容来自:普中科技的 ...

  8. 51单片机:中断系统(外部中断,定时器中断,串口通信)

    目录 中断系统简介: 中断的优先级和嵌套: 8个中断请求源及其优先级: 中断的分别介绍: 1.外部中断0:INT0 2.外部中断1 3.T0和 T1:定时计数器的功能 4.串口中断(串口为什么使用定时 ...

  9. c语言51单片机外部中断,51单片机外部中断0实例详解

    今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法. 1 51单片机的中断源 51单片机共有5个中断源,分别为:外部中断0 定时器0中断 外部中断1 定时器1中断 串口中断 每一个中断 ...

最新文章

  1. 概率论-3.4 多维随机变量的特征数
  2. JavaDoc命令使用说明
  3. python常用功能_python----常用功能
  4. python网站后台_Python 网站后台扫描脚本
  5. java中的check函数_java中checked和unchecked 异常处理
  6. python保存变量_Python变量存储
  7. 2015年计算机维修记录表,2015年 主题教学记录表.doc
  8. android 自动打包工具,AutopackingAndroid
  9. php 序列化匿名函数,在php中序列化匿名函数
  10. 学生选课系统代码-6-conf配置层
  11. 嵌入式根文件系统的移植和制作详解【转】
  12. 百度音乐怎么转换格式?MP3格式转换为wav的方法分享
  13. spring cloud bus
  14. 路飞学城Python-Day49
  15. Halcon实战之MLP颜色匹配(一)
  16. 零基础学爬虫大概多久?
  17. 访问图片资源403问题
  18. 华农acm:scau9505 射穿多少
  19. 关于EventBus使用总结
  20. Oracle EBS R12 GL总帐模块 查询日记帐明细SQL

热门文章

  1. 人脸识别之人脸验证(五)--NormFace
  2. 2021-09-18P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布P2058 [NOIP2016 普及组] 海港
  3. ubuntu16.04外接显示器扩展屏幕设置
  4. Efforts should be valuable
  5. jQuery之从零开始的学习(完整整理)
  6. IDEA 启动子项目报错 Error running 'XXXApplication': No jdk for module 'XXX'
  7. Incorrect string value: ‘\xE4\xBB\xA3\xE5\x8F\xB7...‘ for column
  8. 30天自制操作系统:第8天:鼠标控制与32位模式切换
  9. 游戏开发杂记(一) 万事开头难
  10. 云计算的定义、云计算系统的架构组成、云计算的应用和云计算的问题