登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 中断

[复制链接]
发表于 2018-2-5 10:41:27 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 2天
开始时间: 2018-02-04
结束时间: 2018-02-05
单片机中断系统
(1)中断源请求
捕获.JPG 只有外部中断需要软件设置。
(2)中断使能(允许)
表 6-1     IE——中断使能(允许)寄存器的位分配(地址 0xA8、可位寻址)
  
  
7
6
5
4
3
2
1
0
符号
EA
--
ET2
ES
ET1
EX1
ET0
EX0
复位值
0
--
0
0
0
0
0
0
  
  
符号
描述
7
EA
总中断使能位,相当于总开关
6
--
--
5
ET2
定时器 2  中断使能
4
ES
串口中断使能
3
ET1
定时器 1  中断使能
2
EX1
外部中断 1 使能
1
ET0
定时器 0  中断使能
0
EX0
外部中断 0 使能







表 6-1     IE——中断使能(允许)寄存器的位分配(地址 0xA8、可位寻址)
置1时,为开中断,不同单片机不同,需要参考数据手册。
中断使能寄存器 IE 的位 0~5 控制了 6 个中断使能,而第6 位没有用到,第 7 位EA是总开 关。总开关就相当于我们家里或者学生宿舍里的那个电源总闸门,而0~5 位这 6 个位相当 于每个分开关。那么也就是说,我们只要用到中断,就要写 EA = 1 这一句,打开中断总开关, 然后用到哪个分中断,再打开相对应的控制位就可以了。
中断函数不返回任何值,函数名是 InterruptTimer0(),这个函数名在符合 函数命名规则的前提下可以随便取,我们取这个名字是为了方便区分和记忆,而后是 interrupt 这个关键字,一定不能错,这是中断特有的关键字,另外后边还有个数字 1,这个数字 1 怎 么来的呢?我们先来看表6-3。
表 6-3中断查询序列
  
中断 函数编号
  
中断名称
中断 标志位
中断 使能位
中断 向量地址
默认 优先级
0
外部中断 0
IE0
EX0
0x0003
1(最高)
1
T0 中断
TF0
ET0
0x000B
2
2
外部中断 1
IE1
EX1
0x0013
3
3
T1 中断
TF1
ET1
0x001B
4
4
UART 中断
TI/RI
ES
0x0023
5
5
T2 中断
TF2/EXF2
ET2
0x002B
6
这个表格同样不需要大家记住,需要的时候过来查就可以了。我们现在看第二行的 T0 中断,要使能这个中断那么就要把它的中断使能位 ET0 置 1,当它的中断标志位 TF0 变为 1 时,就会触发 T0 中断了,那么这时就应该来执行中断函数了,单片机又怎样找到这个中断 函数呢?靠的就是中断向量地址,所以 interrupt后面中断函数编号的数字 x 就是根据中断向 量得出的,它的计算方法是 x*8+3=向量地址。当然表中都已经给算好放在第一栏了,我们可 以直接查出来用就行了。到此为止,中断函数的命名规则我们就都搞清楚了。
(3)中断的优先级
中断优先级有两种,一种是抢占优先级,一种是固有优先级,先介绍抢占优先级。来看 表 6-4 和表 6-5。
表 6-4     IP——中断优先级寄存器的位分配(地址 0xB8、可位寻址)
  
  
7
6
5
4
3
2
1
0
符号
--
--
PT2
PS
PT1
PX1
PT0
PX0
复位值
--
--
0
0
0
0
0
0
表 6-5     IP——中断优先级寄存器的位描述
  
  
符号
描述
7
--
保留
6
--
保留
5
PT2
定时器 2 中断优先级控制位
4
PS
串口中断优先级控制位
3
PT1
定时器 1 中断优先级控制位
2
PX1
外部中断 1 中断优先级控制位
1
PT0
定时器 0 中断优先级控制位
0
PX0
外部中断 0 中断优先级控制位
IP 这个寄存器的每一位,表示对应中断的抢占优先级,每一位的复位值都是 0,当我们 把某一位设置为 1 的时候,这一位的优先级就比其它位的优先级高了。比如我们设置了 PT0 位为 1 后,当单片机在主循环或者任何其它中断程序中执行时,一旦定时器 T0 发生中断, 作为更高的优先级,程序马上就会跑到 T0 的中断程序中来执行。反过来,当单片机正在 T0 中断程序中执行时,如果有其它中断发生了,还是会继续执行 T0 中断程序,直到把 T0 中的
中断程序执行完毕以后,才会去执行其它中断程序。
当进入低优先级中断中执行时,如又发了高优先级的中断,则立刻进入高优先级中断执行,处理完高优先级级中断后,再返回处理低优先级中断,这个过程就叫做中断嵌套,也 称为抢占。所以抢占优先级的概念就是,优先级高的中断可以打断优先级低的中断的执行,从而形成嵌套。当然反过来,优先级低的中断是不能打断优先级高的中断的。
那么既然有抢占优先级,自然就也有非抢占优先级了,也称为固有优先级。
在表 6-3 中 的最后一列给出的就是固有优先级,请注意,在中断优先级的编号中,一般都是数字越小优 先级越高。从表中可以看到一共有 1~6 共 6 级的优先级,这里的优先级与抢占优先级的一 个不同点就是,它不具有抢占的特性,也就是说即使在低优先级中断执行过程中又发生了高 优先级的中断,那么这个高优先级的中断也只能等到低优先级中断执行完后才能得到响应。
其他的优先级需要查看数据手册IP/IP2/IPH/HP2H。

最后加一句,学习单片机机,其实就是学习数据手册

小白
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表