单片机 中断系统详细教程

合集下载

80c51单片机外部中断初始化步骤

80c51单片机外部中断初始化步骤

80C51 单片机外部中断初始化的步骤如下:
1. 设置中断优先级:通过设置特殊功能寄存器IP 来确定中断的优先级。

可以设置不同的优先级以确定中断的响应顺序。

2. 允许中断:通过设置特殊功能寄存器IE 来允许相应的中断源。

将对应中断源的使能位设置为1。

3. 设置触发方式:通过设置特殊功能寄存器TCON 来选择外部中断的触发方式。

可以选择低电平触发、下降沿触发或上升沿触发。

4. 配置中断向量:中断向量是指中断服务程序的入口地址。

可以通过设置特殊功能寄存器Interrupt Vector Table(中断向量表)来指定中断服务程序的入口地址。

这些步骤是80C51 单片机外部中断初始化的一般流程。

具体的实现方式可能会因不同的单片机型号和编译器而有所差异。

在实际编程中,还需要根据具体的需求和硬件连接来进行相应的配置。

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0

第5章-MCS-51单片机中断系统-PPT

第5章-MCS-51单片机中断系统-PPT
CPU在每一个机器周期得S5P2期间对P3、 3引脚采样,若P3、3为低电平,则使IE1置1,否 则IE1清0。
5、2、2 MCS-51单片机得中断源
IT1=1,外中断1为下降沿触发 采样:CPU在每一个机器周期得S5P2期间 对P3、3引脚采样,若上一个机器周期检测为 高电平,紧挨着得下一个机器周期为低电平,则 使IE1置1。 IT0:外中断0触发方式控制位。
CPU主要就是通过标志寄存器、控制 寄存器、优先级寄存器对中断源进行管
5、2、2 MCS-51单片机得中断源
(1)与中断标志相关得SFR
主要有:定时器/计数器T0、T1控制寄 存器TCON
串行口控制寄存器SCON 定时器/计数器2控制寄存器T2CON(第 6章介绍) (2)中断控制寄存器:TCON、IE (3)中断优先级寄存器:IP
DMA释放总线:当一批数据传送后, DMA控制器再向CPU发出“结束总线请 求”,CPU响应请求,收回总线使用权。
DMA方式速度高、效率高,可以与CPU 并行工作。
5、1、2 中断得相关概念
1、中断得概念
CPU在正常运行得时候, 外部或者内部发生了请求 CPU迅速去处理得事件,CPU 暂时中断当前得程序,去处理 所发生得事件,处理完事件后, 再返回到原来被中断得程序 继续运行。此过程称为中断。
图5-3 定时器得控制寄存器
TCON可位寻址。复位后TCON=00H。 TF1(TCON、7):T1溢出标志位
当T1计满溢出时,由内部硬件置位; 中断响应后自动清 0。
5、2、2 MCS-51单片机得中断源
TF0:T0溢出标志位 功能同TF1。
IT1:外中断1触发方式设置位 IT1=0,外中断1为低电平触发
5、1、1 微机得输入/输出方式

单片机教程 第6章-中断系统

单片机教程 第6章-中断系统

TCON位功能:
TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。
③ IE1 —— 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 ④ IE0 —— 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
=1:在INT0/INT1端申请中断的信号负跳变有效.
6.2
51单片机的中断系统
3、串行口中断设定
串行控制寄存器SCON控制字,字节地址:98H
SCON 位名称 位地址 功能 D7 D6 — — — — — — D5 — — — D4 — — — D3 — — — D2 — — — D1 TI 99H 串行发送 中断标志 D0 RI 98H 串行接收 中断标志
6.1
中断的概念
6.1.3 中断的分类 可分为三类: * 可屏蔽中断:由CPU的可屏蔽中断引脚INT引起的 中断。 * 非屏蔽中断:由CPU的非屏蔽中断引脚NMI引起的 中断(8086CPU)。 * 软件中断:由中断指令引起的中断(8086CPU)。 • 51单片机的中断可以分为:
①外部中断,由外部可屏蔽中断和外部计数器中断组成; ②内部中断,由内部定时器、串口传输中断等组成。
输入引脚。允许用户设定外部中断源以低电平或 者是负跳变方式触发。
6.2
51单片机的中断系统
②定时器溢出中断源:内部中断,51内部有两
个16位定时/计数器,它们由内部定时脉冲(主脉 冲12分频)或外部引脚T0、T1输入的外部计数脉 冲计数。当计数值溢出时,产生中断请求。这两 个16位定时/计数器的初值可由用户设定。

PIC单片机中断系统详细汇总

PIC单片机中断系统详细汇总
详细描述
随着物联网、人工智能等技术的发展,中断系统与其他系 统的融合成为未来的发展方向。
在物联网和人工智能应用中,设备需要实时响应各种事件 ,如传感器数据变化、网络数据包到达等。因此,将中断 系统与操作系统、网络协议栈等其他系统进行融合,可以 实现更高效的事件处理和资源调度,提高系统的实时性和 可靠性。
串行通信中断的配置
需要设置串行通信的波特率、数据位、停止位、奇偶 校验等参数,以及中断触发方式。
串行通信中断的应用
在RS-232、RS-485、SPI等串行通信协议中广泛应 用。
外部事件中断
外部事件中断
01
用于实现外部事件触发中断,例如按键按下、传感器触发等。
外部事件中断的配置
02
需要设置外部事件的检测方式、触发条件以及中断处理程序。
中断的作用:提高CPU的效率,实现对外部事件的实时响应 和处理。
PIC单片机的中断源
外中断
由外部硬件设备产生的中断,例如定 时器溢出、串口接收数据等。
内中断
由单片机内部硬件产生的中断,例如 比较器匹配、捕获比较器等。
中断优先级和向量
中断优先级
用于标识不同中断的优先级,优先级高的中断会优先得到处理。
中断处理程序执行
一旦PIC单片机响应中断,它会跳转 到相应的中断向量表地址,执行中断 处理程序。
中断返回和清除
中断返回
中断处理程序执行完毕后,PIC单片机会自动返回到被中断的程序继续执行。
中断清除
某些中断源在响应后会自行清除中断标志位,而有些则需要手动清除。
03
PIC单片机中断系统的应用
定时器中断
中断处理程序应遵循一定的编写规范,以确 保程序正确、稳定地运行。例如,应避免在 中断处理程序中进行耗时的操作,以减小对 系统性能的影响。

单片机中断系统详细教程

单片机中断系统详细教程

单片机中断系统详细教程一、中断系统的原理中断系统是一种异步事件响应机制,它允许设备在正常程序运行的过程中插入一个特殊事件,中断请求触发后,处理器即刻中断当前程序的执行,执行特定的中断服务程序,完成对事件的处理。

其流程如下:1.当外设需要处理器响应时,会向处理器发送中断请求信号,通常为一个引脚的高电平触发。

2.处理器在接收到中断请求信号后,暂停当前的程序执行,保存当前现场(保存中断发生时的CPU状态),并进入中断服务程序执行,执行完成后再返回到原来的程序继续执行。

二、中断系统的使用方法1.初始化中断控制器:对中断向量表进行初始化,设置中断优先级等。

2.配置外设的中断请求触发方式:设置外设的中断触发方式,包括电平触发和边沿触发。

3.编写中断服务程序:根据需要,编写中断服务程序来处理中断事件。

4.启动中断系统:启动中断系统,使处理器能够响应外设的中断请求。

三、中断系统的实例下面以8051单片机为例,演示如何使用中断系统。

1.初始化中断控制器使用8051单片机的中断系统,首先需要初始化中断控制器,设置中断向量表和中断优先级。

具体步骤如下:```cvoid init_interrup//设置中断向量表EA=1;//打开总中断使能ET0=1;//打开定时器0中断EX0=1;//打开外部中断0EX1=1;//打开外部中断1//设置中断优先级IP=0x10;//设置定时器0中断为高优先级P3=0x0F;//设置外部中断0和中断1为低优先级```2.配置外设的中断请求触发方式在8051单片机中,外部中断0和中断1的触发方式可由用户进行配置,可以选择为低电平触发或上升沿触发。

例如,将外部中断0配置为上升沿触发:```cvoid init_external_interrupIT0=1;//设置外部中断0为边沿触发方式(上升沿触发)EX0=1;//打开外部中断0使能```3.编写中断服务程序根据需要,编写相应的中断服务程序来处理中断事件。

PIC单片机中断系统详细汇总

PIC单片机中断系统详细汇总

精选版课件ppt
9
§8.4 中断相关的寄存器
与中断有关的特殊功能寄存器SFR共有6个, 分别是:
选 项 寄 存 器 OPTION_REG 、 中 断 控 制 寄 存 器INTCON、第一外围设备中断标志寄存器PIR1、 第一外围设备中断屏蔽寄存器PIE1(也称中断使能 寄存器)、第二外围设备中断标志寄存器PIR2和第 二外围设备中断屏蔽寄存器PIE2,如表9.2所列。
1=选择RB0/INT上升沿触发;
精选版课件ppt
12
0=选择RB0/INT下降沿触发 ⒉中断控制寄存器INTCON
中断控制寄存器是一个可读/可写的寄存 器,各位的分布形式如下:
它将第一梯队中的3个中断源的标志位和屏 蔽位,以及PEIE和GIE包含在其中:
RBIF : 端 口 RB 的 引 脚 RB4 ~ RB7 电 平 变 化 中 断标志位。
TMR2IF:定时/计数器TMR2模块溢出中断标 志位。
➢ 1=发生了TMR2溢出; 0=未发生TMR2溢出。
CCP1IF:输入捕捉/输出比较/脉宽调制CCP1 模块中断标志位。
❖ 输入捕捉模式下:
1=发生了捕捉中断请求;
0=未发生捕捉中断请求。
精选版课件ppt
17
❖ 输出比较模式下: 1=发生了比较输出中断请求; 0=未发生比较输出中断请求。
后5个SFR,共有40位,但仅使用了30位来控 制中断,分别与图9.l中的中断逻辑电路的输入信 号成严格的对应关系。
精选版课件ppt
10
精选版课件ppt
11
⒈选项寄存器OPTION _REG
OPTION_REG选项寄存器是可读写的, 各位的分布形式:
该寄存器包含了与定时/计数器TMR0、 分频器和端口RB有关的控制位。RB端口引脚 RB0和外部中断INT复用一脚,与该脚有关的一 个控制位含义如下: INTEDG:外部中断INT触发信号边沿选择位:

单片机原理及应用 单片机的中断系统(详细分析:中断)共18张PPT

单片机原理及应用 单片机的中断系统(详细分析:中断)共18张PPT

1.定时控制寄存器TCON
D7 D6 D5 D4
TF1
TF0
D3 D2 D1 D0 IE1 IT1 IE0 IT0
中断请求标志
触发方式 0 低电平1
选择
下降沿
注意:电平触发时,在中断返回前应撤除中断源。
2.串行口控制寄存器SCON
D7 D6 D5 D4 D3 D2 D1 D0 串行中断 TI RI 请求标志
③ 若现行指令是RETI、RET或访问IE、IP指令,则需要
执行到当前指令及下一条指令方可响应。
响应过程--单片机响应中断后,自动执行下列操作: ① 置位中断优先级有效触发器,即关闭同级和低级
中断:
② 调用入口地址,断点入栈,相当于LCALL指令; ③ 进入中断服务程序。
响应时间--从查询中断请求标志位到转向中断服务入 口地址所需的机器周期数。 (1)最快响应时间
T0 中断000,BH 允许或禁止向CPU请求中断。
响应条件----CPU要响应中断需满足下列条件:
有关的特殊功能寄存器(SFR)有: 注意:电平触发时,在中断返回前应撤除中断源。
5个中断源,具有二个中断优先级,可实现二级中断服务程序的嵌套。 将PCON寄存器的IDL位置“1”,单片机则进入待机方式。
中断返回—中断处理程序的最后一条指令 是RETI,它使CPU结束中断处理程序的执 行,返回到断点处,继续执行主程序。
中断系统初始化
开相应中断源的中断;(IE) 设定中断优先级;(IP) 若为外部中断,设定外部中断的触发方式。
中断应用举例
外设每准备好一个数据后,发出选通信号,使D触发器
输出1再经非门得0至INT0,向CPU发出中断请求,
掉电保护方式。如果单片机检测到电源电压过低, 此时除进行信息保护外,还需将PD位被置“1”, 使单片机进入掉电保护方式。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中断服务函数分析
定时器0的中断服务函数 0xFFFF 0x2B
void time0ISR(void) interrupt 1 { tnOsTimeTick(); }
中断入口处汇编代码 0x000B 0x000E 0x000F 0x0010 0x0011 0x0012 …… LJMP time0ISR NOP NOP NOP NOP NOP …… time0ISR: 0x015D PUSH 0x20 …… 中断响应
外部中断0
0 1 1
同优先级 无 或更高优 中断处理 先级中断 处理中 中
外部中断1
0 1 1 1
1
0
0
1
0
1
0
0
1
0
0
由软件清0
中断响应
中断得到响应的条件
中断响应与返回过程
主程序 中断程序
堆栈空间
执行PUSH 执行POP 指令出栈 指令入栈
ISR()
PSW R0~R7 DPH DPL B ACC PCH PCL
中断嵌套处理机制:
高优先级中断抢先处理,处理完后 继续处理被抢占的低优先级中断
中断源
低优先级 高优先级
主 程 序
UART中 断服务
低优先级中 断被抢占
INT0 T0 INT1 中断请 求有效 UART T1
中断嵌套
T0中断 服务
继续处理被 抢占的中断


中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
C语言代码 char GcA = 2; // 地址为0x5A char GcB = 1; // 地址为0x5B main () { while (1) { GcA = GcA + GcB; if (GcA == GcB) { GcA = 1; } } } void ISR() interrupt 1 { GcA = 1; }
工作和状态寄存器 指针寄存器DPTR 累加器A、B 中断返回地址
执行RETI出栈 CPU自动处理入栈
中断响应过程
C51编程中由 编译器处理出 入栈的操作
中断函数的定义
void ISRname(void) interrupt n [ using m ] 函数类型 ISRname ——无参数,无返回值 ——中断服务函数名称,由用户定义
中断相关寄存器
1
0
0
1
0
1
0
0
1
0
0
相应位写1使能
相应位写1置为高优先级


中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
中断向量
中断向量——
CPU响应中断时跳转到一个特定的地址开始 执行中断服务程序,这个地址就是中断向量
0xFFFF
......
5个中断源均有 独立的中断向量
中断标志的产生
若配置为下降沿触发
P3.2

0xFFFE 0xFFFF 0x0000
P3.2引脚出现下降沿时IE0被置1 定时器0计数溢出是TF0被置1 若配置为低电平触发
1
P3.3
1
0xFFFE 0xFFFF 0x0000
P3.3引脚出现下降沿时IE1被置1 定时器1计数溢出是TF0被置1
接收完一个字符RI被置1 发送完一个字符TI被置1
此时发 生中断
对应的汇编代码 C:0x0109 C:0x010B C:0x010D C:0x010F C:0x0112 C:0x0015 …… MOV A, 0x5B ADD A, 0x5A MOV 0x5A, A CJNE A,0x5B,C:0x0109 MOV 0x5B,#0x01 SJMP C:0x0109
紧急处理
回忆会议进度
中断响应
现场保护 保存返回地址 和状态信息
中断服务
现场恢复 恢复暂停 前的环境
中断相关基础知识
调用程序与响应中断服务函数
中断请求 中断请求 子函数2 子函数3
主函数 程序段1
假象: CPU同时执 行多任务
子函数1
主函数 程序段3
……
中断服务 函数
中断服务 函数
事实: CPU不能同时执 行1条以上的指令
本章将学习的部件
定时器0 看门狗定时器
本章内容简介
2 . 1 中断系统
CPU事件响应机制
2 . 2 定时/计数器
2 . 3 看门狗 2 . 4 I2C总线及其驱动程序 2 . 5 串行口及其驱动程序
外设功能部件
2.1 中断系统


中断相关概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
此时发 生中断
对应的汇编代码 MOV A, 0x5B ADD A, 0x5A MOV 0x5A, A MOV A, 0x5A CJNE A,0x5B,C:0x0109 MOV 0x5B,#0x05 SJMP C:0x0109
1 GcA = 3 2
GcB = 1 5
变量值
原子操作
原 子 —— 在化学里面指的是不可分割, 在计算机里面指的是不可中断
中断编号 n 中断源
interrupt n —— n是中断编号,指示中断向量 [ using m ] —— 可选部分,用于选择工作寄存器组
定时器0的中断服务函数
void time0ISR(void) interrupt 1 { tnOsTimeTick(); }
0 1 2 3 4
INT0
T0
INT1 T1 UART
原子操作 —— 不可被中断的操作
对应的汇编指令 data char flags = 0; void main(void) { …… flags |= 0x80; …… } xdata char flags = 0; void main(void) { …… flags |= 0x80; …… } MOV DPTR, #0x0000 MOVX A, @DPTR ORL A, 0x80 MOVX @DPTR, A 中断可以发 生在访问变 量的过程中
本章导读
下一阶段将要学习“模电”和“数电”, 重在分析电路原理、器件内部结构和应用设计理论
现阶段重在学习使用基本数字器件
E2PROM存储器
温度传感器
TTL-RS232电平转换器
……
本章中用到
P89V51RB2功能框图
上一章的数码管和键盘程序只用到P0~P2 I/O 口 高性能80C51 CPU
16KB程序Flash 1KB数据RAM
有保护地使用全局资源(如全局变量) 不调用不可重入函数 以原子型的方式使用硬件
不可重入函数
temp int temp; void fun(int *x, *y) { if (*x < *y) { temp = *x; // 交换*x和*y的值 *x = *y; *y = temp; } }
void some_isr(void) interupt 2 { int c = 4, d = 5; fun(&c,&d); ………… } void main(void) { int a = 1, b = 2; fun(&a,&b); …… }
对应的汇编指令
ORL 0x5B, 0x80
堆栈溢出
发生函数调用、分配局部变量和响应中断时
——将会使用堆栈空间
要使用堆栈的空间
>
可用的堆栈空间
——发生堆栈溢出
堆栈指针超 出堆栈空间
发生堆栈溢出的情况
0xFF SP 0xC0 0xBF
堆栈空间
0x7F
......
0x01 0x00
数据存储器
可重入性
一般来说具有如下特性的函数满足可重入性
PC跳转方式
调用子函数 响应中断 服务函数
不同点
相同点
都是暂停当前 程序转去执行 其他的程序


中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
80C51中断结构示意图
中断仲裁
中断编号 中断源
0 1 2 3 4
INT0 T0 INT1 T1 UART
假设中断优先级如下: 中断源 INT0、INT1高优先级 低优先级 、UART 为低优先级; IT0、T1为高优先级 INT0 T0 INT1 T1 UART 中断请 求有效
判断不 正确
A= 0 1 3
1 GcA = 2 3
GcB = 1
变量值
volatile的作用
C语言代码 volatile char GcA = 2; C:0x0109 char GcB = 1; C:0x010B main () C:0x010D { C:0x010F while (1) { C:0x0111 GcA = GcA + GcB; C:0x0114 if (GcA == GcB) { C:0x0017 GcB = 5; …… } 判断 } 正确 } A= 0 1 3 void ISR() interrupt 1 { GcA = 1; } volatile的作用: 每次使用变量时都重新读取变量 的值而不是使用寄存器的备份值
UART T1 INT1 T0 INT0 复位后PC指向的地址 0x2B 0x23 0x1B 0x13 0x0B 0x03 0x00 8字节空间
程序存储器
中断向量表
中断编号
中断源
中断标志
中断向量
中断使能
中断优先级
仲裁顺序
掉电唤醒


中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
相关文档
最新文档