文档之家
首页
教学研究
幼儿教育
高等教育
外语考试
建筑/土木
经管营销
自然科学
当前位置:
文档之家
›
单片机中断应用
单片机中断应用
格式:ppt
大小:1.16 MB
文档页数:35
下载文档原格式
下载原文件
/ 35
下载本文档
下载提示
文本预览
1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
外部中断1
IT1=0时,P3.3引脚低电平触发;IT1=1 时,P3.3引脚下降沿触发
IE1
EX1
PX1
定时/计数器T1中断 T1定时或计数溢出
TF1 ET1
PT1
串行口中断
发送完一帧数据 接收完一帧数据
TI
ES
PS
RI
入口地址 (A51)
中断 号
(C51)
0003H
0
000BH
1
0013H
2
001BH
D7
D6
D5
D4
D3
D2
D1
D0
-
-
-
PS
PT1
PX1
PT0
PX0
(1) PS:串行口中断优先级控制位。PS=1,声明串行口中 断为高优先级中断;PS=0,声明串行口中断为低优先级中 断。
(2) PT1:定时/计数器T1优先级控制位。PT1=1,声明定时 /计数器T1为高优先级中断;PT1=0,声明定时/计数器T1为 低优先级中断。
表5-1 TCON寄存器结构
D7
D6
D5
D4
D3
D2
D1
D0
TF1
TR1
TF0
Biblioteka Baidu
TR0
IE1
IT1
IE0
IT0
(1) IT0(IT1):外部中断0(或1)触发方式控制位,可由软件进 行置位和复位。IT0(或IT1)=0时,外部中断为低电平触发方式; IT0(或IT1)=1时,外部中断为边沿触发方式。
(6) EX0:外部中断0中断允许控制位。EX0=1,允许外部中断0 中断;EX0=0,禁止外部中断0中断。
例如,要设置允许外部中断0和定时/计数器T1中断允许, 其他中断不允许,则IE的值如表5-4所示,即IE=89H。
表5-4 IE=89H
D7
D6
D5
D4
D3
D2
D1
D0
1
0
0
0
1
0
0
1
4.中断优先级寄存器IP
(3) ET1:定时/计数器T1溢出中断允许控制位。ET1=1,允许 T1中断;ET1=0,禁止T1中断。
(4) EX1:外部中断1中断允许控制位。EX1=1,允许外部中断1 中断;EX1=0,禁止外部中断1中断。
(5) ET0:定时/计数器T0溢出中断允许控制位。ET0=1,允许 T0中断;ET0=0,禁止T0中断。
在同一个优先级下,中断响应按照自然优先级顺序进行。
例如,5个中断源同时请求中断响应,CPU响应的顺序为:定 时/计数器T0→外部中断1→外部中断0→定时/计数器T1→串行 口中断。则IP各位的设置如表5-7所示,即IP=06H。
表5-7 IP=06H
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
1
1
0
日常生活中也常发生“中断”现象。比如某人正在看书,有 电话铃响,决定接电话,做书签标记,起身接电话,接完电话 再从刚才做标记的页码继续读书。
5.2 中断控制
89C51系列单片机的中断系统结构框图如图所示,由5个中断 请求源INT0、T0、INT1、T1、TI/RI,中断请求标志寄存器TCON, 中断允许控制寄存器IE,中断优先级寄存器IP和查询硬件等组 成。通过对各种寄存器的读/写来控制单片机的中断类型、中断 开/关和中断源的优先级。
一个完整的主程序的轮廓如下:
汇编语言:
ORG
0000H
AJMP START
ORG
0003H
AJMP INT0
ORG
ORG START:
INT0: RETI
000BH … 0030H
… … …
;跳到外中断0的服务子程序处执行
C语言: main( ) {
主程序内容 } /*****中断程序入口,“using 工作组”可以忽略*****/ void 函数名( ) interrupt 中断序号 using 工作组 {
各中断源的中断服务程序入口地址如下。
外部中断0:0003H。
定时/计数器T0:000BH。
外部中断1:0013H。
定时/计数器T1:001BH。
串行口:0023H。
可见,每个中断向量地址只间隔了8个单元,如 0003H~000BH。一般情况下,如此小的空间无法完 成中断程序,那么中断服务程序就不能放在这里,在 汇编语言程序中要通过AJMP或是LJMP等跳转指令把 中断服务程序安排到适合它的空间去。
第5章 单片机中断应用
本章内容: 5.1 中断的概念 5.2 中断控制 5.3 单片机中断处理过程 5.4 中断系统C51语言编程要点
【任务导入】 数码管加减数的实现:用C51编程,使外部中断
每发生一次,在共阴极数码管上显示一个数字,且 每中断一次显示的数值加1或减1(根据按下的是“加 1键”还是“减1键”而定)。
3.中断允许控制寄存器IE
89C51单片机中没有专门的开中断和关中断指令,对各个 中断源的允许和屏蔽是由内部的中断允许控制寄存器IE的各 位来控制的。中断允许控制寄存器IE的字节地址为A8H,可以 进行位寻址,各位定义如表5-3所示。
表5-3 中断允许寄存器IE
D7
D6
D5
D4
D3
D2
D1
D0
EA
(3) PX1:外部中断1优先级控制位。PX1=1,声明外部中断 1为高优先级中断;PX1=0,声明外部中断1为低优先级中断。
(4) PT0:定时/计数器T0优先级控制位。PT0=1,声明定时 /计数器0为高优先级中断;PT0=0,声明定时/计数器0为低 优先级中断
(5) PX0:外部中断T0优先级控制位。PX0=1,声明外部中 断T0为高优先级中断;PX0=0,声明外部中断T0为低优先级 中断。
3
0023H
4
5.3 单片机中断处理过程
1.中断响应的条件
CPU都会去查询各个中断标记,看它们是否是 “1”,如果是“1”,说明有中断请求。所以所谓中 断,也是在查询,不过是在每个机器周期都查一下而 已,并且此查询过程是由单片机的CPU完成的,而不是 通过程序来完成的。了解了中断的过程就不难了解中 断响应的条件了,但是遇到下列三种情况之一时,CPU 将封锁对中断的响应。 (1) CPU正在处理一个同级或更高级别的中断请求。 (2) 当前正在执行的指令还没有执行完。 (3) 当前正在执行的指令是RETI或访问IP、IE寄存器的 指令,则CPU至少再执行一条指令才能响应中断。
(2) IE0(IE1):外部中断0(或1)中断请求标志位。
在电平触发方式时,CPU在每个机器周期的S5P2时刻采样 P3.2(或P3.3)引脚的电平,若引脚为高电平,则IE0(或IE1)清 零,若引脚为低电平,则IE0(或IE1)置1,向CPU提出中断请求; 在边沿触发方式时,若第一个机器周期采样到引脚为高电平, 第二个机器周期采样到引脚为低电平时,将IE0或IE1置1,向 CPU提出中断请求。
1. 中断请求标志寄存器TCON
当有中断源发出请求时,由硬件将相应的中断标志位置1。 在中断请求被响应前,相应的中断请求标志位被锁存在特殊 功能寄存器TCON和SCON中。外部中断源有外部中断和外部中 断,经由外部引脚P3.2、P3.3引入。在特殊功能寄存器TCON 中有4位与外部中断有关的位和4位与定时/计数器有关的位, 如表5-1所示。
2.中断响应过程
具体地说,中断响应可以分为以下几个步骤。 (1)自动清除中断请求标志(对串行口的中断标志要 用软件清除),然后保护断点,保存下一个将要执行指 令的地址,即把这个地址送入堆栈。 (2)寻找中断入口,根据5个不同的中断源所产生的 中断,查找5个不同的入口地址,即将5个中断入口的地 址装入寄存器PC中(PC是程序指针,CPU取指令就是根据 PC中的值去取,如果PC中装入了中断入口的地址,程序 就会转到中断入口处执行)。以上工作是由单片机自动 完成的,与编程者无关。一般在5个中断入口地址处存 放有跳转到对应中断服务程序的跳转指令。 (3)执行中断处理程序。 (4)中断返回。执行完中断指令后,就从中断 处返回到主程序,继续执行。
要求:按键有消除抖动功能。
【任务分析】
本任务的要求是:每发生一次中断,数码管数值 加1或减1。加1和减1是两种不同的任务,在软件里面 体现为两个程序。那么什么时候数码管数值加1,什 么时候又减1呢?在进行设计之前,需要补充下面有 关51单片机中断系统的知识。
5.1 中断的概念
所谓中断,是指CPU执行正常程序时,系统中出现特殊请求 码,CPU需要暂时中止当前的程序,转去处理更紧急的任务程序, 处理完毕后,CPU再返回原程序被中止的地方继续执行原程序的 过程。
-
-
ES
ET1
EX1
ET0
EX0
(1)EA:中断允许总控制位。EA=0,屏蔽所有的中断请求;EA=1, 开放中断。EA的作用是使中断允许形成两级控制,即各中断源首 先受EA位的控制,其次还要受各中断源自己的中断允许位控制。
(2) ES:串行口中断控制位。ES=1,允许串行口中断;ES=0,
屏蔽串行口中断。
在边沿触发方式时,CPU在每个机器周期都采样P3.2(或 P3.3)。为了保证检测到下降沿,P3.2(或P3.3)引脚的高电平与 低电平至少应该保持1个机器周期。
(3) TR0(TR1):定时/计数器T0或T1的启动/停止控制位。当置1 时启动定时/计数器,清零时停止定时或计数。
(4) TF0(TF1):定时/计数器T0(或T1)的溢出中断请求标志位。 当定时时间到或计数值满时由硬件置位TF0(或TF1)。当CPU响应 中断后,再由硬件将该位清零。
表5-8 89C51系列单片机中断系统的主要信息
中断要求
中断响应
中断入口
中断源
触发条件
中断 标志 TCON
中断允 许IE
中断优 先级IP
外部中断0
IT0=0时,P3.2引脚低电平触发;IT0=1 时,P3.2引脚下降沿触发
IE0
EX0
PX0
定时/计数器T0中断 T0定时或计数溢出
TF0 ET0
PT0
表5-5 51单片机中断级别
中断源
默认中断级别
外部中断T0
最高
定时/计数器T0
第2
外部中断T1
第3
定时/计数器T1
第4
串行口
第5
在某些特殊情况下,如果希望每个中断源有更高的优先级, 则可以通过程序人工地设置高、低优先级。中断优先级由中断优 先级寄存器IP来设置,如表5-6所示。
表5-6 中断优先级寄存器IP
表5-9 中断号与中断源的对应关系
中断号
中断源
中断号
中断源
0
外部中断0
3
定时/计数器T1溢出
1
定时/计数器T0溢出
4
串行接口中断
2
外部中断1
5
定时/计数器T2溢出
例如,单片机P1.0引脚接发光二极管,此发光二极管随 P3.2引脚脉冲亮灭变化,电路如图5-5所示。
用C51编写的源程序如下。 #include<reg1.h> sbit P1_0=P1^0; void INT_0( ) interrupt 0 using2 //外部中断0 中断服务
中断服务内容 }
在汇编语言中如此设计的目的就是让出中断源的入口地址,在C语言中
就不需要自己编写,而是由C51编译器自己完成。所以,C语言程序相对
汇编语言程序来说简单易懂。
5.4 中断系统C51语言编程要点
为了能在C51语言编写的源程序中直接编写中断服务函数,C51编 译器对函数的定义有所扩展,增加了一个关键字interrupt。在 C51中,中断程序的设计要点如下。 (1)在主函数中,设置相关中断允许和优先级。 (2)中断函数用关键字interrupt进行定义,格式如下: 返回值 中断函数名() interrupt [中断号] using [寄存器组号] 中断号取值为0~4,不同值与中断源的对应关系如表5-9所示。 寄存器组号取值为0~3,对应着4组工作寄存器。
2. 串行口控制寄存器SCON
89C51系列单片机的5个中断源有6个中断请求标志位,其 中4个与外部中断和定时/计数器有关的都属于TCON寄存器, 另外2个与串行口中断有关的属于串行口控制寄存器SCON。 SCON的D7~D2位在第7章中会有详细讲解,本小节只介绍与中 断源有关的位,如表5-2所示。
表5-2 SCON寄存器结构
D7
D6
D5
D4
D3
D2
D1
D0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
(1)TI:发送中断请求标志位。
(2)RI:接收中断请求标志位。 无论哪个标志位置1,都请求串行口中断。到底是发送中断
TI,还是接收中断RI,只有在中断服务程序中通过指令查询来判断 。串行口中断响应后,TI或RI不能由硬件清零,因此都需 要软件清零。
89C51单片机采用了自然优先级和人工设置高、低
优先级的策略。当CPU处理低优先级中断,又发生更
高级中断时,可由软件设置每个中断源的优先级别,
实现二级中断嵌套,中断过程如图所示。
上电时,中断优先级寄存器IP被清零,每个中断源都处于同 一个优先级,这时若其中几个中断同时产生中断请求,CPU通过 内部硬件查询逻辑按自然优先级顺序确定该响应哪个中断请求。 其自然优先级由硬件形成,如表5-5所示。
合集下载
相关主题
单片机中断使用
单片机中断ppt
单片机中断程序
单片机中断应用ppt
单片机中断方式
51单片机中断ppt
文档推荐
单片机中断程序大全
页数:15
51单片机独立按键程序查询法和外部中断两种
页数:5
单片机中断过程
页数:6
51单片机中断实验连接图及程序
页数:2
51单片机定时中断C语言的写法步骤
页数:2
C51单片机外部中断程序(含提示)
页数:1
51单片机中断程序大全26075
页数:8
PIC单片机RB口中断程序设计
页数:3
单片机外部中断详解及程序
页数:6
单片机实验――利用中断控制LED灯(精)
页数:11
最新文档
饭店包间名字大全
word无法创建工作文件,请检查临时环境变量
自行车健身比赛开幕式讲话词
2018乡村医生个人工作总结
MySQL测试题 SQL
合勤NXC5200
铁路集中箱空箱调度优化建模案例(案例2)
微分几何教学大纲-复旦大学数学科学学院
人教版九年级数学上册导学案:24.1.1_圆【精品】
(整容后办护照用)医院整容证明