51单片机中断:寄存器与优先级

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单⽚机中断:寄存器与优先级
中断与定时器
通常定时器⼀般⽤法都是采取中断⽅式来做,但中断和定时器并⾮同⼀种东西,定时器按照⼀定设置后会触发中断,但还有外部中断,UART这些设置后都可以触发中断.
定时器是单⽚机模块的⼀个资源,确确实实存在的⼀个模块。

中断是单⽚机的⼀种运⾏机制。

中断相关寄存器
IE: 中断使能寄存器的位分配(地址0xA8, 可位寻址)
位76543210
符号EA--ET2ES ET1EX1ET0EX0
复位值0--000000
中断使能寄存器的位描述
位符号描述
7EA总中断使能位,相当于总开关
6--
5ET2定时器 2 中断使能
4ES串⼝中断使能
3ET1定时器 1 中断使能
2EX1外部中断 1 使能
1ET0定时器 0 中断使能
0EX0外部中断 0 使能
中断函数的使⽤
单⽚机如何找到中断函数的?
单⽚机借助中断向量地址来调⽤中断函数,中断向量地址⼜是如何计算的?
中断函数interrupt后⾯中断函数标号的数字x就是根据中断向量地址得出的,其计算⽅法为:
向量地址=x∗8+3
具体向量地址见下⼀节中断序列查询表
中断序列查询
中断序列查询表
中断函数编号中断名称中断标志位中断使能位中断向量地址默认优先级
0外部中断 0IE0EX00x00031(最⾼)
1T0中断TF0ET00x000B2
2外部中断1IE1EX10x00133
3T1中断TF1ET10x001B4
4UART中断TI/RI ES0x00235
5T2中断TF2/EXF2ET20x002B6
中断优先级寄存器
中断优先级有两种,⼀种是抢占优先级,⼀种是固有优先级
抢占优先级
IP寄存器-中断优先级寄存器的位分配(地址 0xB8、可位寻址)
位76543210
符号----PT2PS PT1PX1PT0PX0
复位值----000000
中断优先级寄存器的位描述
位符号描述
7--
6--
5PT2定时器 2 中断优先级控制位
4PS串⼝中断优先级控制位
3PT1定时器 1 中断优先级控制位
2PX1外部中断 1 中断优先级控制位
1PT0定时器 0 中断优先级控制位
0PX0外部中断 0 中断优先级控制位
IP这个寄存器的每⼀位,表⽰对应中断的抢占优先级,每⼀位的复位值都是0,当把某⼀位设置为1的时候,这⼀位的优先级就⽐其它位的优先级⾼了。

如果将PT0位设置为1,⼀旦定时器0发⽣中断则⽴即打断其他中断。

如果T0中断正在运⾏,其他中断发⽣,则还是运⾏T0中断,直到T0中断执⾏完毕。

中断嵌套
当进⼊低优先级中断中执⾏时,如⼜发⽣了⾼优先级的中断,则⽴刻进⼊⾼优先级中断执⾏,处理完⾼优先级级中断后,再返回处理低优先级中断,这个过程就叫做中断嵌套。

也称为抢占
抢占的概念:
1. 优先级⾼的中断可以打断优先级低的中断的执⾏,形成嵌套。

2. 优先级低的中断是不能打断优先级⾼的中断的。

固有优先级
在中断序列查询,⼀般都是数字越⼩优先级越⾼。

单⽚机中优先级⼀共分为6级优先级,该优先级与抢占优先级不同点就是它不具备抢占特性:
低优先级的中断执⾏过程中,如果发⽣了⾼优先级的中断,那么这个⾼优先级中断也只可以等到低优先级中断执⾏完后才能得到响应。

固有优先级不具备抢占,那么其作⽤是什么?
多个中断同时存在时的仲裁。

⼀般来说多个中断同时发⽣的情况⽐较少,因为这种情况的概率会很低。

但如果因为某种原因暂时关闭了中断(EA=0),然后执⾏完⼀段代码后,⼜重新使能了总中断(EA=1),在关闭的那会中断得不到响应,那这种情况就可能有多个中断触发了,这时候就必须要有个先后执⾏顺序才⾏,谁优先级⾼就先响应谁,然后中断编号排队,依次得到响应,这就是固有优先级的作⽤了。

中断优先级总结
抢占优先级和⾮抢占优先级的协同,可以使单⽚机中断系统有条不紊的⼯作,既不会⽆休⽌的嵌套,⼜可以保证必要时紧急任务得到优先处理。

Processing math: 100%。

相关文档
最新文档