第5章STC15F2K60S2单片机中断系统.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S2TI:串行口2发送中断标志。串行口2以方式0发送时,每 当发送完8位数据,由硬件置1;若以方式1、方式2或方式3 发送时,在发送停止位的开始时置1。S2TI=1表示串行口2已 发送完一帧数据,正在向CPU申请中断(发送中断)。值得注 意的是,CPU响应发送中断请求,转向执行中断服务程序时 并不将S2TI清0,S2TI必须由用户在中断服务程序中清0。
TI:串行口1发送中断标志。串行口1以方式0发送时,每当 发送完8位数据,由硬件置1;若以方式1、方式2或方式3发 送时,在发送停止位的开始时置1。TI为1表示串行口已发送 一帧数据,串行口1正在向CPU申请中断(发送中断)。值得注 意的是,CPU响应发送中断请求,转向执行中断服务程序时 并不将TI清0,TI必须由用户在中断服务程序中清0。
第5章STC15F2K60S2单片机中断系统
5.1 中断的概念 5.2 STC15F2K60S2单片机的中断系统结构 5.3 中断允许及其优先级管理 5.4 单片机中断处理过程 5.5 中断的应用举例
5.1 中断的概念
在单片机应用系统中,中断技术主要用于实时监测与 控制,能对外界发生的事件进行及时的处理。中断系统是 为使CPU具有对外界紧急事件的处理能力而设置的。
1. IE寄存器
IE寄存器主要负责总中断允许控制和外部中断0、外部中断1、 定时器T0、定时器T1、串口1、A/D转换、低压检测等中断源中 断允许控制,IE的字节地址为A8H,可位寻址。
EA:CPU的总中断允许控制位,EA=1,CPU开放总中断,EA=0, CPU屏蔽所有的中断申请。EA的作用是使中断允许形成两级控制。 即各中断源首先受EA控制;其次还受各中断源自己的中断允许控 制位控制。
TR0:定时/计数器T0的运行控制位。其功能与TR1类似。
IE1:外部中断1请求源(INT1/P3.3)标志位。IE1为1时, 外部中断1向CPU请求中断,当CPU响应该中断时由硬件将IE1 清0。
IT1:外部中断1中断触发方式选择位,当IT1为0时, INT1/P3.3引脚上的上升沿或下降沿均可触发外部中断1。 IT1为1时,为下降沿触发方式。
EX1:外部中断1中断允许位。EX1=1,允许外部中断1中断; EX1=0,禁止外部中断1中断。
ET0:定时/计数器T0的溢出中断允许位。ET0=1,允许T0中断; ET0=0禁止T0中断。
EX0:外部中断0中断允许位。EX0=1,允许外部中断0中断; EX0=0禁止外部中断0中断。
2. IE2寄存器
CCON寄存器是可编程计数器阵列(PCA)模块控制寄存器,地 址为D8H,可位寻址。CCON寄存器格式如下:
CF:PCA计数器阵列溢出标志位。当PCA计数器溢出时,CF由硬 件置1。如果CMOD寄存器的ECF位置1,则CF标志可用来产生中 断。CF位可通过硬件或软件置1,但只可通过软件清0。
CR:PCA计数器阵列运行控制位。该位为1时,启动PCA计数器 阵列计数;该位为0时,关闭PCA计数器。
IE0:外部中断0请求源(INT0/P3.2)标志位。与IE1功能 类似。
IT0:外部中断0中断触发方式选择位,功能与IT1类似。
2. SCON和S2CON寄存器
SCON为串行口1控制寄存器,包括了串行口发送和接收 中断的请求标志位TI和RI。SCON寄存器的字节地址为98H,可 位寻址,其格式如下:
ELVD:低压检测中断允许位。ELVD=1,允许低压检测中断; ELVD=0,禁止低压检测中断。
EADC:A/D转换中断允许位。EADC=1,允许A/D转换中断;EADC=0, 禁止A/D转换中断。
ES:串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止 串行口1中断。
ET1:定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断; ET1=0,禁止T1中断。
IE2寄存器主要负责定时器T2、SPI和串口2等中断源的中断允许 控制,地址为AFH。其格式如下:
ET2:定时器T2中断允许位。ET2=1时,允许T2中断;ET2=0,
禁止T2中断。
ESPI:SPI中断允许位。ESPI=1,允许SPI中断;SPI=0,禁止
SPI中断。 ES2:串行口2中断允许位。ES2=1,允许串行口2中断;ES2=0,
在进入掉电工作状态前,如果低压检测电路未被允许可产 生中断,则在进入掉电模式后,该低压检测电路不工作以降低功 耗。如果被允许可产生低压检测中断,则在进入掉电模式后,该 低压检测电路继续工作,在内部工作电压VCC低于低压检测门槛电 压后,产生低压检测中断,可将MCU从掉电状态唤醒。
5. CCON寄存器
在正常工作和空闲工作状态时,如果内部工作电压VCC低 于低压检测门槛电压,该位自动置1,与低压检测中断是否被允许 无关。即在内部工作电压VCC低于低压检测门槛电压时,不管有没 有允许低压检测中断,该位都自动为1。该位要用软件清0,清0后, 如内部工作电压VCC继续低于低压检测门槛电压,该位又被自动设 置为1。
主 程 序
断请求低级
响应低级中
中断 服务 程序
响应高级中断请求
中 断
断点
断点
服 务
继
继
程
续 执 行 主
返回主程序
续 执 行
返回低级中断程
序
程
序
序
图5-1 中断响应和处理过程
5.2 STC15F2K60S2单Βιβλιοθήκη Baidu机的中断系统结构
5.2.1 中断源
STC15F2K60S2单片机中断系统共有14个中断源,分 别为外部中断0(INT0)、定时器T0中断、外部中断1 (INT1)、定时器T1中断、串口1中断、A/D转换中断、低压 检测中断(LVD)、CCP/PWM/PCA中断、串口2中断、SPI中断、 外部中断2(INT2 )、外部中断3( INT3)、定时器T2中断、
外部中断4(INT4 )。除外部中断2( INT2)、外部中断3
( INT3)、定时器T2中断、外部中断4(INT4 )等4个中断 源固定为最低优先级中断外,其它的中断源都具有2个中断 优先级,可实现2级中断服务程序嵌套。
STC15F2K60S2单片机中断系统结构示意图如图5-2 所示。这些中断源与特殊功能寄存器TCON、SCON、S2CON、 CCON、PCON、ADC_CONTR、IE、IE2、INT_CLKO、IP等有关, 下面首先介绍与中断源有关的寄存器功能。
CCF2:PCA模块2中断标志。当出现匹配或捕获时该位由硬件置 1。该位必须通过软件清0。
CCF1:PCA模块1中断标志。与CCF2功能类似。 CCF0:PCA模块0中断标志。与CCF2功能类似。
6. SPSTAT寄存器
SPSTAT寄存器是SPI状态寄存器,地址为CDH。
SPIF:SPI传输完成标志。当一次串行传输完成时,SPIF置1,此 时,如果SPI中断被打开(ESPI=1,EA=1),则产生中断。当 SPI处于主模式且SSIG=0时,如果为输入并被驱动为低电平, SPIF也将置1,表示“模式改变”。SPIF标志通过软件向其写入1 而清0。
禁止串行口2中断。 STC15F2K60S2单片机复位以后,IE和IE2被清0,所有的中
断被禁止。若要开放某些中断源,则可通过程序把IE和IE2中的相 应控制位置1,同时还必须把总中断EA置1。
3. INT_CLKO寄存器
STC15F2K60S2 单片机中断系统结
构示意图
5.2.2 中断源标志寄存器
1. TCON寄存器
TCON寄存器为定时/计数器T0、T1的控制寄存器,该 寄存器包括了T0和T1的溢出中断请求标志位TF0和TF1,也包 括了外部中断0(INT0)和外部中断1(INT1)的中断请求标 志位IE0和IE1,以及外部中断0和外部中断1的中断源的触发 方式。TCON寄存器的字节地址为88H,可位寻址,其格式如 下:
3. ADC_CONTR寄存器 ADC_CONTR为A/D转换控制寄存器,字节地址为BCH,
ADC_POWER:ADC电源控制位。当ADC_POWER为0时,关闭ADC电源; 当ADC_POWER为1时,打开ADC电源。
ADC_FLAG:ADC转换结束标志位,可用于请求A/D转换的中断。 当A/D转换完成后ADC_FLAG置1,要用软件清0。不管是A/D转换完 成后由该位申请产生中断,还是由软件查询该标志位A/D转换是 否结束,当A/D转换完成后,ADC_FLAG为1,一定要软件清0。
5.3 中断允许及其优先级管理
STC15F2K60S2单片机的中断允许控制及优先级控制 分别由中断允许寄存器IE、IE2、INT_CLKO(AUXR2) 以及中断优先级控制寄存器IP、IP2等控制。
5.3.1 中断允许寄存器 STC15F2K60S2单片机中的各中断源是否开放或禁止,
是由内部的中断允许寄存器IE、IE2、INT_CLKO控制。中 断采用两级控制方式,即总中断和各中断源分别独立控制。
RI:串行口1接收中断标志。若串行口1允许接收且以方式0 工作,则每当接收到第8位数据时置1;若以方式1、方式2或 方式3工作且SM2=0时,则每当接收到停止位的中间时置1; 当串行口以方式2或方式3工作且SM2=1时,则仅当接收到的 第9位数据RB8为1后,同时还要接收到停止位的中间时置1。 RI为1表示接收器已接收到一帧数据,串行口1正向CPU申请 中断(接收中断),RI必须由用户的中断服务程序清0。
TF1:定时/计数器T1的溢出中断标志位。当启动T1计数后, 从初值开始计数,当产生溢出后由硬件将TF1置1,向CPU请 求中断,一直保持到CPU响应中断时,才由硬件清0,TF1也 可由软件清0。
TR1:定时/计数器T1的运行控制位。当TR1为1 时运行,为 0时停止运行。
TF0:定时/计数器T0溢出中断标志。其功能与TF1类似。
ADC_START:ADC转换启动控制位,设置为1时,开始转换,转换 结束后为0。 A/D转换控制寄ADC_CONTR中的其他位与中断无关,将在后续 相关章节介绍。
4.PCON寄存器
PCON为电源控制寄存器,与低压检测中断有关, PCON格式如下:
LVDF:低压检测标志位,同时也是低压检测中断请求标志位。
当中央处理器CPU正在处理某件事的时候外界发生了 紧急的事件请求,要求CPU暂停当前的工作,转而去处理 这个紧急事件,处理完以后,再回到原来被中断的地方 (断点),继续原来的工作,这样的过程称为中断。实现 这种功能的部件称为中断系统,请求CPU中断的请求源称 为中断源。
单片机的中断系统有多个中断源,当几个中 断源同时向CPU请求中断时,系统会根据其优先级来 处理,即先响应中断优先级高的中断源,再响应优 先级低的中断源。例如,若规定按键扫描处理优先 于显示器输出处理,则CPU在处理显示内容的过程中, 可以被按键的动作打断,转而处理键盘扫描问题, 待扫描结束后再继续进行显示器处理过程。
SCON寄存器的其他位与中断无关,将在后续相关章节 介绍。
S2CON为串行口2控制寄存器,字节地址为9AH,S2CON中 各位功能与串口1控制寄存器SCON类似,其中S2TI和S2RI为串 口2的发送和接收中断标志位。
S2RI:串行口2接收中断标志。若串行口2允许接收且以方式0 工作,则每当接收到第8位数据时置1;若以方式1、方式2或方 式3工作且SM2=0时,则每当接收到停止位的中间时置1;当串 行口2以方式2或方式3工作且S2SM2=1时,则仅当接收到的第9 位数据S2RB8为1后,同时还要接收到停止位的中间时置1。 S2RI为1表示串行口2已接收到一帧数据,正向CPU申请中断(接 收中断),S2RI必须由用户的中断服务程序清0。
WCOL:SPI写冲突标志。在数据传输的过程中如果对SPI数据寄存 器SPDAT执行写操作,WCOL将置1,WCOL标志通过软件向其写入1而 清0。
使用单片机的外部中断0和外部中断1,当外部中断0发出中 断请求后点亮蓝色LED灯,当外部中断1发出中断请求后点 亮黄色LED灯。
如果两个中断的请求信号同时到达单片 机,哪个LED灯先点亮? 如果在信号同时到达的条件下,需要指定 那个LED灯先亮,如何实现?