郭天祥单片机教程 第5章中断
第5章 80C51单片机的中断组成及应用
三、80C51中断系统的应用 80C51中断系统的应用
2、二极管的作用 3、多中断源与单片机的连接
三、80C51中断系统的应用 80C51中断系统的应用
4、程序设计流程
一、中断的概念
2个处部中 断源 定时器/计数器0, 定时器/计数器0 记作T0 记作T0 定时器/计数器1 3个内部中 定时器/计数器1, 断源 记作T1 记作T1 串行口中断 由P3.2引脚引入 P3.2引脚引入 由P3.3引脚引入 P3.3引脚引入 在单片机内部由T0向 在单片机内部由T0向 T0 CPU发出 CPU发出 在单片机内部由T1向 在单片机内部由T1向 T1 CPU发出 CPU发出 在单片机内部由串行 口向CPU发出 口向CPU发出 CPU
一、中断的概念
3、中断的意义 可以实现CPU与外设之间的同步工作。 CPU与外设之间的同步工作 (1) 可以实现CPU与外设之间的同步工作。 可以提高CPU的实时处理能力。 CPU的实时处理能力 (2) 可以提高CPU的实时处理能力。 可以自动进行故障处理。 (3) 可以自动进行故障处理。 4、中断源 能够产生和传递中断请求信号的渠道, 能够产生和传递中断请求信号的渠道,称为中断系统 的中断源。 的中断源。 80C51单片机的中断源一共有5 80C51单片机的中断源一共有5个。 单片机的中断源一共有
三、80C51中断系统的应用 80C51中断系统的应用
三、80C51中断系统的应用 80C51中断系统的应用
1、数码管显示原理 LED数码管内部含有8个发光二极管。 LED数码管内部含有8个发光二极管。 数码管内部含有
三、80C51中断系统的应用 80C51中断系统的应用
三、80C51中断系统的应用 80C51中断系统的应用
单片机原理与应用课件第5章80c51单片机的中断系统
(3) 相同优先级中断请求同时发生时 CPU 响应 的优先顺序
中断源 外部中断0 定时器T0中断 外部中断1 定时器T1中断 串行口中断
同优先级时的优先级顺序 最高级
↓
最低级
5.3 中断响应与中断返回
• 5.3.1 中断响应
• MCS-51 单片机响应中断有 4 个条件:
• 一是中断源有请求;
• 二是寄存器 IE 的总允许位EA=1,且 IE 相应的中断允许位为 1;
• INT0: • INT1:
• SJMP $ CLR P1.0
• RETI CLR P1.1
• RETI • END
•{ • 中断处理程序内容 •}
• 【例5-1】编写中断初始化程序,设置外部中断0和串行口中断为 高级中断,其它中断源为低级中断,外部中断采用边沿触发方式, 禁止外部中断1中断,允许其它中断源中断,开总中断。
• 汇编语言的中断初始化程序如下:
• SETB PX0 • SETB PS • SETB IT0 • MOV IE,#9BH • C51语言的中断初始化程序如下: • .PX0=1; • PS=1; • IT0=1;
• ET1: T1 溢出中断允许位。 ET1=1,允许 T1 中断; ET1=0,禁止 T1 中断。
• EX1:外部中断 1 允许位。 EX1=1,允许外部中断 1 中断; EX1=0,禁止 外部中断 1 中断。
• ET0: T0 溢出中断允许位。 ET0=1,允许 T0 中断; ET0=0,禁止 T0 中断。
• IE=0x9b;
【例5-2】设外部中断0采用边沿触发方式,写出外部中断0的C51初始化程 序段及中断服务函数。 主函数外部中断0初始化程序段: EA=1; //打开总中断开关 EX0=1; //开外部中断0 IT0=1; //设置外部中断的触发方式 中断服务函数
第5章-MCS-51单片机中断系统-PPT
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 微机得输入/输出方式
郭天祥新概念51单片机C语言教程例题Word版
目录例2.2.1 编写程序,点亮第一个发光二极管(part2_1.c P27 ) .................. - 4 -例2.5.1利用for语句延时特性,编写第一个发光二极管以间隔1S亮灭闪动的程序(part2_3.c P42) ............................................................................................. - 5 -例2.6.1编写程序使第一个发光二极管以间隔500ms亮灭闪动。
(part2_4.c P48) .................................................................................................................................. - 5 -例2.7.1编写程序使第一个二极管以亮200ms、灭800ms的方式闪动。
(part2_5.c P49) ........................................................................................................................... - 6 -例2.8.3利用C51自带库_crol_(),以间隔500ms,实现流水灯程序(part2_6.c P53) .................................................................................................................................. - 6 -例3.2.1编写程序使第一个数码管显示8(part2.1_.1c P59) ......................... - 7 -例3.2.2让实验板上6个数码管同时点亮,依次显示0到F,时间间隔为0.5ms,循环下去。
51单片机讲稿第五章修改版2010
四、外部中断
1. 外部中断的触发方式
TCON 寄存器中的 IT0、IT1位的值决定了外部中断触发的特征, 0值对应电平触发,1值对应沿触发。 电平触发的特点是: 在 S5P2 期间产生的低电平信号可直接触发中断。在被响应之 前,中断源必须持续有效,一直到中断实际产生为止,并且在中断 服务程序返回之前清除该信号,否则,机器将再一次进入中断服务 程序。所以,电平触发方式适合于外部输入为低电平,且在中断服 务程序中能清除该中断源申请信号的情况。
IP中的值用于确定该中断处于什么优先级
BDH BC H BB H BAH B9 H B8 H IP - - PT2 PS PT1 PX1 PT0 PX0
位地址 字节地址B8 H 复位后初值为: XX00 0 00 0B
定时/计数器T2 中断优先级低位 串行口中断优先级低位 定时/计数器T1 中断优先级低位
3. 中断入口地址
各中断源对应的中断入口地址如下: 外部中断0 定时/计数器T0 外部中断1 0003H 000BH 0013H
定时/计数器T1
串行口中断
001BH
0023H
CPU从入口地址开始执行中断服务程序,直到遇到1条RETI指 令为止。 CPU执行该指令, 一方面清除优先级有效触发器,另一 方面,从断点弹出断点地址送程序计数器 PC ,从而返回主程序。 因此,现场恢复指令应在RETI前执行。
外中断信号的清除
当51单片机外中断源输入信号设置为电平信号时,在CPU响 应完中断后需要拆除外加的低电平,下图所示即为低电平拆除电路。
例2 微型打印机使用举例 单片机和微型打印机的数据交互。接线如图所示, STB—数据选通,用于启动打印机接收数据并开始打印; ACK—打印机打印完后,给单片机发送的应答信号。
《单片机第五章》PPT课件
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
硬件查询
自
高
然
级
1
优
先
级 中断入口
中断源
自
低
0
然
级
优
先
级 中断入口
中断源
[例]利用外中断实现程序的单步执行。
AT89C51内部有4 KB字节的Flash存储器,用户编写好的程序用简单的程序写入器 很容易写入和擦除,在没有开发系统的条件下,利用外中断实现程序的单步运行为 用户调试程序带来一定的方便。
+5 V
单稳态电路
89C51 INT 0
外中断/INT0设为电平触发方式,中断服务程序为: ORG 0003H JNB P3.2,$ JB P3.2,$ RETI
中断基本规则 :
①任一种中断,不能被同级或低级中断所中断; ②高级中断能打断低级中断(中断嵌套); ③若同时有几个同级中断源提出申请,CPU响 应的顺序为(查询):
INT0(高)→T0→INT1→T1→RI/TI(最低)
5.2.3 中断响应过程 :
一、中断响应条件 •中断源有中断请求; • 此中断源的中断允许位为1; • CPU开中断(即EA=1)。 同时满足时,CPU才有可能响应中断。
1、中断锁存寄存器TCON :
TF1:T1溢出中断标志 TF0:T0溢出中断标志 IE1:INT1中断请求标志 IE0:INT0中断请求标志
单片机中断系统.完美版PPT
EA的作用是使中断允许形成两级控制。
P1.1=中le断d处; 响应理,即先响应中断优先级高的中断源,再响应优
执行相应的中断服务程序。
先级低的中断源。例如,若规定按键扫描处理优先 2.中断服务程序(函数)
STC15F2K60S2单片机各个中断源所对应的中断服务程序入口地址及中断号如表5-2所示。 IP2为中断优先级控制寄存器,主要对串行口2、SPI中断源的中断优先级设置,地址为B5H。
➢IE0:外部中断0请求源(INT0/P3.2)标志位。与IE1功能 类似。
➢IT0:外部中断0中断触发方式选择位,功能与IT1类似。
2. SCON和S2CON寄存器
SCON为串行口1控制寄存器,包括了串行口发送和接收 中断的请求标志位TI和RI。SCON寄存器的字节地址为98H,可 位寻址,其格式如下:
外部中断2(IN T 2 )、外部中断3( I N T 3)、定时器T2中断、 外部中断4(IN T 4 )。除外部中断2( I N T 2)、外部中断3 ( I N T 3 )、定时器T2中断、外部中断4(IN T 4 )等4个中断
源固定为最低优先级中断外,其它的中断源都具有2个中断 优先级,可实现2级中断服务程序嵌套。
STC15F2K60S2单片机中断系统结构示意图如图5-2 所示。这些中断源与特殊功能寄存器TCON、SCON、S2CON、 CCON、PCON、ADC_CONTR、IE、IE2、INT_CLKO、IP等有关, 下面首先介绍与中断源有关的寄存器功能。
STC15F2K60S2 单片机中断系统结
构示意图
SCON寄存器的其他位与中断无关,将在后续相关章节 介绍。
单片机第5章中断系统精品PPT课件
4、CPU如何识别中断申请:CPU在每个机器周期的S5P2期间, 会自动查询各个中断申请标志位,若查到某标志位被置位,将启 动中断机制。
5、中断过程: 主程序
中断程序
决定于出厂前由厂家固化优先级顺序
第五章 MCS-51的中断系统
5.1 中断的基本概念
1.中断的定义
所谓“中断”,是指CPU执行正常程序时,系统中出现特殊 请求,CPU暂时中止当前的程序,转去处理更紧急的事件(执 行中断服务程序),处理完毕(中断服务完成)后,CPU自动 返回原程序的过程。
2、中断的作用:采用中断技术可以提高CPU效率、解决速度矛盾、 实现并行工作、分时操作、实时处理、故障处理、应付突发事 件,可使多项任务共享一个资源(CPU)。
=0:没有外部中断申请; =1:有外部中断申请。
TR0/TR1:定时器运行启停控制位(可由用户通过软件设置 )。
=0:定时器停止运行;
=1:定时器启动运行。
TF0/TF1:定时器溢出中断申请标志位(由硬件自动置位,在查询方式下可 由软件清0 )。
=0:定时器未溢出; =1:定时器溢出
2、串行口控制寄存
IE1 TF1 TI RI
IE EX0 ET0 EX1 ET1 ES EA
IP
PX0 1 0
PT0 1 0
PX1 1
0 PT1 1
0 PS 1
0
高级中
自 然
断请求
优 先矢
级量
地
址 PC
自 低级中
然 断请求
优 先 级
矢 量 地
单片机的中断系统ppt课件
函数名 ( ) interrupt n [using m]
{ 函数体语句 }
Homeworks-5.1
1. P110:4,5 2. 通过中断接口P3.2连接的独立按键测试, 按一次P1口的LED灯反向,使用电平或边 沿触发。 3. 自己做实验三,读懂理解程序
#include<reg52.h> main() { P1=0x55; //P1口初始值 EA=1; //全局中断开 EX0=1; //外部中断0开 IT0=0; //电平触发 while(1)
后面内容直接删除就行 资料可以编辑修改使用 资料可以编辑修改使用
资料仅供参考,实际情况实际分析
主要经营:课件设计,文档制作,网络软件设计、 图文设计制作、发布广告等 秉着以优质的服务对待每一位客户,做到让客户满 意! 致力于合同简历、论文写作、PPT设计、计划书、 策划案、学习课件、各类模板等方方面面,打造全 网一站式需求
实例1 单片机开关状态检测 要求:若有按键压下, 使LED的状态反转。
第5章单片机的中断系统
实例 1运 行效 果
if (run) if(dir)
for(i=0;i<=3;i++) { P2=led[i];//自上而下流动 delay(200); }
else for(i=4;i>=1;i--) { P2=led[i - 1];//自下而上流动 delay(200); } else P2=0;//灯全灭 } }
{ }
} /*-----------------------------------------------外部中断程序 ------------------------------------------------*/
单片机技术及应用_第五章_单片机中断系统
5.1.2 中断的特点
1. 分时操作 中断可以解决快速的CPU与慢速的外设之间的矛盾,使CPU和外 设同时工作。CPU在启动外设工作后继续执行主程序,同时外设也在 工作,每当外设做完一件事就发出中断申请,请求CPU中断它正在执 行的程序,转去执行中断服务程序(一般情况是处理输入/输出数据), 中断处理完之后,CPU恢复执行主程序,外设也继续工作。这样, CPU可启动多个外设同时工作,大大提高了CPU的效率。 2. 实时处理 在实时控制中,现场的各种参数、信息均随时间和现场的变化而 变化。这些外界变量可根据要求随时向CPU发出中断申请,请求CPU 及时处理,如中断条件满足,CPU马上就会响应进行相应的处理,从 而实现实时处理。 3. 故障处理 针对难以预料的情况或故障,如掉电、存储出错、运算溢出等, 可通过中断系统由故障源向CPU发出中断请求,再由CPU转到相应的 故障处理程序进行处理。
单片机技术与应用实践
5.1 中 断 概 述 5.2 中断系统的结构与控制 5用举例 5.6 实 践 训 练
5.1 中 断 概 述
5.1.1 中断的概念 什么是中断?我们从一个生活中的例子引入。你正在 家中看书,突然电话铃响了,你在书中做好记号后放下书 本,去接电话,和来电话的人交谈,然后放下电话,回来 继续看你的书。这就是生活中的“中断”现象。“某人看 书”就好比执行主程序;“电话铃响”就好比中断请求, 产生中断信号;“暂停看书”好比中断响应,要求暂停执 行主程序;“书中作记号”好比保护断点,要求当前PC 入栈;“电话谈话”好比中断处理,要求执行中断服务程 序;“回来继续看书”好比中断返回,要求返回主程序。 这个例子实际上包含了单片机处理中断的4个步骤:中断 请求、中断响应、中断处理和中断返回,如图5-1所示。
单片机应用技术实例教程第5章 51单片机的中断系统和外部中断
前一页
5.2 51单片机的中断处理过程
51单片机的中断处理过程包括中断初始化和中断服务程序两个部分,前者用于对单片机的中断 系统进行初始化,包括打开和关闭中断,设定中断优先级等,后者则用于在单片机检测到中断 之后响应中断事件。 51单片机中断系统的初始化应该包括以下几个步骤。 (1)初始化堆栈指针SP。 (2)设置中断源的触发方式。 (3)设置中断源的优先级别。 (4)使能相应中断源。 51单片机在每个机器周期中都会去查询中断,所查询到的中断是上一个机器周期中被置位的中 断请求标志位,但是单片机不会保存没有能够及时响应的中断请求标志位。51单片机的中断处 理流程如下: (1)屏蔽同级和低级别的中断。 (2)把当前程序指针PC的内容保存到堆栈中。 (3)根据中断标志位,把相应的中断源对应的中断向量入口地址装入PC中。 (4)从中断向量入口地址跳转到对应的中断服务程序中。 (5)执行中断服务。 (6)中断服务执行完成之后打开被屏蔽的中断,然后从堆栈中取出原先保存的PC内容,使得 程序可以从原先的PC地址继续运行。
前一页
5.4.3 多个外部中断信号的处理
假如有两个外围信号都需要通过外部中断申请中断,可以把这两个信号通过与门连接到外部中 断引脚上,同时把这两个信号都连接到51单片机的某个I/O口上。此时外部中断采用低电平触 发方式,当其中一个信号为低电平时候,这两个信号的输出信号在外部中断引脚上就会变成低 电平,51单片机就会检测到这个中断信号,然后通过对I/O的判断来确定哪一个外围信号要申 请中断。对于多于两个的外围信号也可以采用类似的方式。 联合中断申请的最大缺点是会使得中断服务子程序变大,使得中断响应时间变慢甚至会屏蔽其 他的一些中断,所以在这种情况下一般使用外部中断1作为联合申请的中断入口。例5.2是一个 有4个外围信号共用一个中断引脚的实例,其电路如图5.4所示。 【例5.2】多个外部中断信号的处理。 (实例代码详见教材)
第5章stm32单片机外部中断ppt课件
5.2.3 中断控制器
ICER[2]:全称Interrupt Clear-Enable Registers,是 一个中断清除使能寄存器组。
该寄存器组与ISER寄存器功能相反,用来清除某个 中断的使能位。由于NVIC的这些寄存器都是写1有 效的,写0是无效的。设置一组ICER 寄存器来清除 相应中断使能位。
5.2.1 中断源
ARM Coetex-M3内核共支持256个中断,其中16 个内部中断,240个外部中断和可编程的256级中断优 先级的设置。STM32目前支持的中断共84个(16个内 部+68个外部),还有16级可编程的中断优先级的设 置,仅使用中断优先级设置8bit中的高4位。
5.2.2 中断向量:表5-1 给出STM32F103中断向量表
5.3.2 中断优先级控制
响应优先级可设置为0到15级。 判断两个中断的优先级时: (1)先看抢占优先级的高低; (2)再看响应优先级的高低; (3)看中断通道向量地址。 一个系统使用一个组别就完全可以满足需要,在使 用一个组别后不要在系统中再改动组别。
5.3.2 中断优先级控制
假定设置中断优先级为组2,然后设置: 中断3(RTC中断)的抢占优先级为2,响应优先级为1。 中断6(外部中断0)的抢占优先级为3,响应优先级为0。 中断7(外部中断1)的抢占优先级为2,响应优先级为0。 求这3个中断的优先级顺序? 上面例子中的中断3和中断7都可以打断中断6 的中断。而中 断7和中断3却不可以相互打断(这是因为他们的抢占优先级 是相同的)。
5.2.3 中断控制器
与NVIC相关的寄存器 在“stm32f10x_map.h” 文件中定义了一个结构 体,结构体的内容如下
STM32F103系列单片机 的中断系统在这些寄存 器的控制下有序执行。 了解这些中断寄存器的 含义,才能更好的理解 STM32单片机中断系统 的工作原理
单片机教材_第5章外部中断及应用
第五章外部中断及应用5.1 中断原理5.1.1 单片机中断的概念中断是一项重要的计算机技术,这一技术在单片机中得到了充分继承。
其实,中断现象不仅在计算机中存在,就是在我们的日常生活中也同样存在,请看下面的例子:你在看书。
电话铃响了。
你在书上做个记号,走到电话旁。
你拿起电话与对方通话。
门铃响了。
你让打电话的对方稍等一下。
你去开门,并在门旁与来访者交谈。
谈话结束,关好门。
回到电话机旁,拿起电话,继续通话。
通话完毕,挂上电话。
从作记号的地方起继续读书。
这是一个很典型的中断现象。
从看书到接电话,是一次中断过程,而从打电话到与门外来访者交谈,则是在中断过程中发生的又一次中断,即所谓中断嵌套。
为什么会发生上述的中断现象呢?就是因为你在一个特定的时刻,面对着三项任务:看书、接电话和接待来访者。
但一个人又不可能同时完成三项任务,因此你只好采用中断方法,穿插着去做。
类似的情况在计算机中也同样存在,因为通常计算机中只有一个CPU,但在运行程序的过程中可能出现诸如数据输入、输出或特殊情况处理等其他的事情要CPU去处理,对此,CPU也只能采用停下一个任务去处理另一个任务的中断解决方案。
将这种现象的处理方法上升到计算机理论,就是一个资源(CPU)面对多项任务,由于资源有限,因此就可能出现资源竞争的局面,即几项任务来争夺一个CPU。
而中断技术就是解决资源竞争的有效方法,采用中断技术可以使多项任务共享一个资源,所以中断技术实质上就是一种资源共享技术。
任何一种单片机,其内部资源是十分有限的。
当出现资源竞争时,几乎没有哪一个单片机系统不是采用中断这一解决方案的。
所以,中断技术在单片机中的重要作用,就不言而喻了。
5.1.2 中断的功能上面我们只是从资源共享的意义上引出了中断的概念。
正是基于资源共享的特点,使中断技术在计算机中还能实现更多的功能。
1.实现CPU与外设的速度配合许多外部设备速度较慢,无法与CPU进行直接的同步数据交换,为此可通过中断方法来实现CPU与外设的协调工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章 MCS - 51单片机的中断
例 2 多中断源。 MCS - 51 单片机 有两个外部中断输入 端, 当有 2 个以上中 断源时, 它的中断输 入端就不够了。此时, 可以采用中断与查询 相结合的方法来实现。 可以使每个中断源都 接在同一个外部中断 输入端上, 同时利用 输入口线作为多中断 源情况下各中断源的 识别线。
EA X X X ET2 PT2 ES PS ET1 EX1 ET0 EX0 PT1 PX1 PT0 PX0
第5章 MCS - 51单片机的中断
5.2.3 中断响应 1. 中断响应的条件
在下列情况下,中断响应会受到阻断: (1) 同级或高优先级的中断已在进行中; (2) 当前的机器周期还不是正在执行指令的最后一个机 器周期(换言之, 正在执行的指令完成前, 任何中断请求 都得不到响应); (3) 正在执行的是一条 RETI或者访问特殊功能寄存器 IE或 IP的指令(换言之, 在 RETI或读写 IE或 IP之后, 不会 马上响应中断请求, 而至少执行一条其它指令之后才会响应)。
0 0
(LSB)
PS
PT1
PX1
PT0
PX0
中 中断 IP B8H 总 允 许 断 器 时
定 串 行 口
定 时 部 器 断 1 中
外 时 器
定 部 中 断
外
2
0 1 0
第5章 MCS - 51单片机的中断 表 5.2 同级内第二优先级次序
第5章 MCS - 51单片机的中断 例如, 某软件中对寄存器IE、 IP设置如下: MOV IE, # 8FH MOV IP, # 06H 则此时该系统中: * CPU中断允许; * 允许外部中断0、外部中断1、定时器 /计数器0、定时器/计 数器1中断申请; * 中断源的优先次序为: 定时器0 > 外部中断1 > 外部中断0 > 定时器1。
第5章 MCS - 51单片机的中断
2. 中断响应过程
单片机一旦响应中断请求, 就由硬件完成以下功能: (1) 根据响应的中断源的中断优先级, 使相应的优先级状 态触发器置 1; (2) 执行硬件中断服务子程序调用, 并把当前程序计数器 PC的内容压入堆栈; (3) 清除相应的中断请求标志位(串行口中断请求标 志 RI和 TI除外); (4) 把被响应的中断源所对应的中断服务程序的入口 地址(中断矢量)送入PC, 从而转入相应的中断服务程序。
第5章 MCS - 51单片机的中断 2. 特殊功能寄存器 特殊功能寄存器SCON (MSB)
SM0 SM1 SM2 REN TB8 RB8 TI
LSB
RI
图 5.3 SCON格式 格式 TI:串行口发送中断标志,每发送完一侦数据后,硬件置位TI, CPU响应中断后,需由软件清零TI。 RI:串行口接收中断标志,每接收完一侦数据后,硬件置位RI, CPU响应中断后,需由软件清零TI。
第5章 MCS - 51单片机的中断 现在,若INT0保持低电平, 且允许INT0中断, 则CPU就进入 外部中断 0 服务程序, 由于有上述几条指令, 它就会停在 JNB 处, 原地等待。当INT0 端出现一个正脉冲(由低到高, 再到 低)时, 程序就会往下执行, 执行RETI后, 将返回主程序, 往下 执行一条指令, 然后又立即响应中断,以等待INT0端出现的下 一个正脉冲。 这样在INT0端每出现一个正脉冲, 主程序就执 行一条指令, 实现了单步执行的目的, 要注意的是, 这个正脉 冲的高电平持续时间不小于 3个周期, 以确保 CPU能采集到 高电平值。
第5章 MCS - 51单片机的中断 4. 中断响应的过程 中断响应的过程 (1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果 有中断请求,且CPU处于开中断状态下, 则响应中断。 (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破 坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入 堆栈。 (3) 中断服务, 即为相应的中断源服务。 (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在 恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及 时开中断。 (5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计 数器, 从而使CPU继续执行刚才被中断的程序。
第5章 MCS - 51单片机的中断
5.2.2 中断控制
1. 中断允许控制
(MSB)
中断允许控制
EA X ET2
IE A8H
(LSB)
中 断 总 允 许 2. 中断
(MSB) X X PT2
定 时 器
ES
ET1 EX1 ET0 EX0
串 行 口 器 时
定
外 部 中 断
定 时 器
外 部 中 断
2
1 1
图 5.6 多中断源
第5章 MCS - 51单片机的中断 ORG 0003H LJMP INT0 … INT0: PUSH PSW PUSH ACC JB P0.7, DV1 JB P0.6, DV2 JB P0.5, DV3 JB P0.4, DV4 GOBACK: POP ACC POP PSW RETI DV1:
第5章 MCS - 51单片机的中断
5.3 中断系统的应用
例 1 单步操作的中断实现。 把一个外部中断(设为INT0)设置为电平激活方 式。其中断服务程序的末尾写上如下几条指令: JNB P3.2, $ ; 在INT0变高前原地等待(死循环) JB P3.2, $ RETI ; 在 INT0变低前原地等待(死循环) ; 返回并执行一条指令
第5章 MCS - 51单片机的中断
第5章 MCS - 51单片机的中断 章 单片机的中断
5.1 中断的概述 5.2 MCS - 51中断系统 中断系统 5.3 中断系统的应用
第5章 MCS - 51单片机的中断 1. 中断 中断
5.1 中 断 的 概 述
ቤተ መጻሕፍቲ ባይዱ
中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某 种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之 后, 再回来继续执行被中止的原程序的过程。
第5章 MCS - 51单片机的中断
5.2 MCS - 51中断系统 中断系统
图5.1 MCS - 51中断系统结构框图 中断系统结构框图
第5章 MCS - 51单片机的中断
5.2.1 中断源
表 5.1 8051 中 断 源
第5章 MCS - 51单片机的中断 1. 特殊功能寄存器 特殊功能寄存器TCON中的标志 中的标志
2. 中断源 中断源
中断源是指在计算机系统中向CPU发出中断请求的来源, 中断可以人为 设定, 也可以是为响应突发性随机事件而设置。通常有I/O设备、实时控制 系统中的随机参数和信息故障源等。
3. 中断优先级 中断优先级
中断优先级越高, 则响应优先权就越高。当CPU正在执行中断服务程 序时, 又有中断优先级更高的中断申请产生, 这时CPU就会暂停当前的中 断服务转而处理高级中断申请, 待高级中断处理程序完毕再返回原中断程 序断点处继续执行, 这一过程称为中断嵌套。
(MSB) (LSB)
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF1:定时器1溢出标志,溢出时由硬件置位,申请中断,进入中断服务程序 后由硬件自动清除。 TR1:定时器1运行控制位,靠软件置位或清除;置位时定时器开始工作,清 除时停止工作。 TF0:定时器0溢出标志,作用同TF1。 TR0:定时器0运行控制位,作用同TF1。 IE1:外部中断1请求标志,当检测到INT1引脚上出现的中断信号有效时,由 硬件置位,请求中断,进入中断服务程序后由硬件自动清除。 IT1:外部中断1类型控制位,靠软件设置;1为下降沿触发,0为低电平触发。 IE0:外部中断0请求标志,作用同IE1。 IT0:外部中断0类型控制位,作用同IT1。
… ; 装置 中断服务程序 装置1中断服务程序
… AJMP GOBACK DV2: … ; 装置 中断服务程序 装置2中断服务程序 … AJMP GOBACK DV3: … ; 装置3中断服务程序 装置 中断服务程序 … AJMP GOBACK DV4: … ; 装置 中断服务程序 装置4中断服务程序 … AJMP GOBACK
第5章 MCS - 51单片机的中断
中断服务程序入口地址表 表 5.3 中断服务程序入口地址表
第5章 MCS - 51单片机的中断 例如, 提出申请, 且主程序中有R0、 例如 现有外部中断 1 提出申请 且主程序中有 、 R1、 、 DPTR、累加器 需保护 则编制程序应为 需保护, 、累加器A需保护 则编制程序应为: INT1: PUSH ACC ; 中断服务程序 ORG 0000H PUSH DPH AJMP MAIN PUSH DPL ORG 0013H PUSH 0 PUSH 1 LJMP INT1 ……….. … POP 1 ORG 0100H POP 0 MAIN: … ;主程序 主程序 主程序 POP DPL … POP DPH ORG 1000H POP ACC RETI
第5章 MCS - 51单片机的中断
编程中应注意: 编程中应注意
(1) 在 0000H放一条跳转到主程序的跳转指令 这是因为 ) 放一条跳转到主程序的跳转指令, 放一条跳转到主程序的跳转指令 MCS-51单片机复位后 PC的内容变为 0000H, 程序从 单片机复位后, 单片机复位后 的内容变为 插入一条转移指令; 插入一条转移指令 (2 ) 响 应 中 断 时 , 先 自 动 执 行 一 条 隐 指 令 “ LCALL 0013H”, 而 0013H至 001BH(定时器 1 溢出中断入口地址) 溢出中断入口地址) 至 ( 之间可利用的存储单元不够, 故放一条无条件转移指令。 之间可利用的存储单元不够 故放一条无条件转移指令。 (3) 在中断服务程序的末尾, 必须安排一条中断返回指令 ) 在中断服务程序的末尾 RETI , 使程序自动返回主程序。 使程序自动返回主程序。 0000H 开始执行, 是中断程序入口地址, 开始执行 紧接着 0003H是中断程序入口地址 故在此中间只能 是中断程序入口地址