IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机中断系统 -> 正文阅读

[嵌入式]51单片机中断系统

单片机笔记

中断系统

工作原理

功能描述

终止当前进行的事件,去处理突发需及时处理的事件,处理完还要返回原事件.

中断符函数

void ISR() interupt n

中断符函数与普通函数区别

  • 普通函数: 在主函数中需要时即可调用.
  • 中断符函数: 由中断系统来控制跳转, 不允许在主函数中调用 由硬件系统控制跳转和返回, 均自动完成

采用中断方式的优势

如没有中断系统, 单片机大量时间可能会浪费在查询是否有服务请求的定时查询操作上, 即不论是否有服务请求, 都必须去查询.

采用中断技术完全消除查询方式的等待, 大大提高单片机工作效率和定时性.

中断的一般概念

  • 中断响应过程: 由中断管理系统处理突发事件的过程.
  • 中断源: 中断管理系统能够处理的突发事件.
  • 中断请求: 中断源向CPU提出的处理请求.
  • 中断服务函数(ISR): 针对中断请求提供服务的函数.
  • 中断嵌套: 在中断服务中执行更高级别的中断服务.

AT89C51中断系统结构

有5个中断请求源

  1. 外部中断0(INT0) 中断标志位IE0
  2. 定时器中断(T0) 中断标志位TF0
  3. 外部中断1(NT1I) 中断标志位TF1
  4. 定时器1中断(T1) 中断标志位IE1
  5. 串行口中断 有两个中断标志位TI, RI分别代表发送和接收中断

中断管理系统介于CPU和外设之间

中断优先级

终端系统先处理高优先级事件, 8051单片机仅有两个优先级(高优先级, 低优先级), 即可实现两级的中断嵌套.

可通过软件手段设置5个中断源的优先级

AT89C51中断系统结构

AT89C51中断系统结构

中断标志位->中断允许位控制中断信号允许or禁止->优先级控制

  • TCON中断标志位: IE0, TF0, IE1, TF1, TI, RI (1: 有请求, 0: 无请求) 硬件系统自动设置
  • IE中断允许位:EX0, ET0, EX1, ET1, ES EA总允许位 (1: 允许, 0: 禁止) 软件可设置
  • IP优先级设置: PX0, PT0, PX1, PT1, PS (1: 高优先级, 0: 低优先级)

中断请求标志寄存器

TCON寄存器(IE0, TF0, IE1, TF1)

TCON为定时器/计数器的控制寄存器, 字节地址为88H

D7D6D5D4D3D2D1D0
ICONTF1TR1TF0TR0IETIT1IE0IT0
位地址8FH8DH8BH8AH89H88H
  1. IT0: 选择外部中断请求0, 0为下降沿触发方式, 0为低电平触发.
  2. IT1: 选择外部中断请求1, 触发方式选择与IT0类似.
SCON寄存器(TI, RI)

SCON为串行口控制寄存器, 字节地址为98H.

串行口的发送中断和接收中断的中断请求标志T1和R1

D7D6D5D4D3D2D1D0
SCONT1R1
位地址99H98H
  1. T1 : 发送中断请求标志位. 串口每发送完一帧串行数据后, 硬件自动置"1". 必须在中断服务程序中用软件对T1标志清"0"
  2. R1: 接收中断请求标志位. 串口接收完一个数据帧, 硬件自动置"1". 必须在中断服务程序中用软件对R1标志清"0"
中断允许寄存器IE

各中断源开放或屏蔽, 是由片内中断允许寄存器IE控制, IE字节地址为A8H, 可进行位寻址

D7D6D5D4D3D2D1D0
IEEAESET1EX1ET0EX0
位地址AFHACHABHAAHA9HA8H

IE中各位的功能

  1. EA: 中断允许总开关控制位
  2. ES: 串行口中断允许位
  3. ET1: 定时器/计数器T1溢出中断允许位
  4. EX1: 外部中断1中断允许位
  5. ET0: 定时器/计数器T0溢出中断允许位
  6. EX0: 外部中断0中断允许位
中断优先级寄存器IP

各中断源的中断优先级关系, 可归纳为下面两条基本规则:

  1. 低优先级可被高优先级中断, 高优先级不能被低优先级中断.
  2. 任何一种中断(不管是高级还是低级)一旦得到响应, 不会被它的同级中断源所中断.

AT89C51片内有一个中断优先级寄存器IP, 字节地址为B8H, 可位寻址.

只要用程序改变其内容, 即可进行各中断源优先级设置.

D7D6D5D4D3D2D1D0
IPPSPT1PX1PT0PX0
位地址BCHBBHBAHB9HB8H

同级中断的查询次序

在同时收到几个同优先级的中断请求时, 哪一个中断请求能有线得到响应, 取决于内部查询顺序.

这相当于在同一个优先级还存在另一辅助优先级

查询次序(由高到低)

  1. 外部中断0
  2. T0溢出中断
  3. 外部中断1
  4. T1溢出中断
  5. 串行口中断
若IP = 0x06(0110), 进行优先级排序
  高优先级: PT0, PX1; PT0 > PX1
  低优先级: PX0, PT1, 串行口; PX0 > PT1 > 串行口

中断函数

中断服务函数一般形式为:

函数类型 函数名() interupt n using m

关键字interrupt后面的n是中断号, 对于8051单片机, n的取值为0-4, 编译器从(8 * n + 3)处产生中断向量.

AT89C51内部RAM中可使用4个工作寄存器区. 每个工作寄存器区包括8个工作寄存器(R0-R7).

关键字using后面的m用来选择4个工作寄存器区. using是一选项, 如不选, 中断函数中的所有工作寄存器内容将被保存在堆栈中.

中断向量: 中断服务程序的入口地址

中断号中断源中断向量(ROM地址)
0外部中断0003H
1定时器0000BH
2外部中断10013H
3定时器1001BH
4串行口0023H
其他值保留8 * n + 3
特殊:复位非中断源0000H

习题一

/*
 * 需求: 每按下一次按键时进入中断程序实现数码管循环显示0-9数字
 * 未经测试,仅提供思路
 */

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define OUT P0

//uchar code sng[] = []; // 数码管段码
uchar i; // 数码管显示数字

void delay(uint t);

int main(void)
{
  // 对外部中断初始化处理
  IT0 = 1; // IT0为下降沿触发
  EX0 = 1; // 允许IT0中断
  EA = 1; // 总允许位打开

  void INT0_ISR interrupt 0 using 1 // 中断服务函数, 默认main函数using为0, 避免冲突
  {
    i++;

    if (i > 9) // 数码管循环0-9, 防止i溢出
    {
      i = 0;
    }

    OUT = sng[i]; // 取得i的段码
  }

  while(1)
  {
    // 中断函数执行数码管显示功能
  }
  return 0;
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:50:48  更:2022-10-17 12:53:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 2:28:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计