包括五个中止源,两级中止优先级,优先级可编程设置,经过IP进行设置:
PX0(IP.0),外部中止0优先级设定位;
PT0(IP.1),守时/计数器T0优先级设定位;
PX1(IP.2),外部中止0优先级设定位;
PT1(IP.3),守时/计数器T1优先级设定位;
PS (IP.4),串行口优先级设定位;
PT2 (IP.5) ,守时/计数器T2优先级设定位。
从这张图里咱们能够看出:
EA是中止操控位,EA=1敞开中止,EA=0屏蔽所用中止(编程时人为设定)
那EA是在哪里进行设置的呢?它便是在IE(中止答应寄存器)里进行设定的
第七位便是EA,剩余的还有第四位的ES,第三位的ET1,第二位的EX1,第一位的ET0和第零位的EX0,是不是在上图中都能看到他们的影子?没错,要不IE能称为中止答应寄存器嘛?是不是他先是设定总答应中止,然后再设定其它的中止是不是答应的,接下来咱们再来看其它中止答应位
ES:串行口中止敞开操控位,ES=1,呼应串行口中止,ES=0,制止串行口中止
ET1:T1溢出中止敞开操控位,ET1=1,呼应T1溢出发生的中止;ET1=0,制止T1溢出发生的中止
EX1:外部中止1敞开操控位,EX1=1,呼应外部中止,EX1=0,制止外部中止
ET0:功用同ET1,对应T0
EX0:功用同EX1,对应外部中止0
这样,中止是否敞开就由你说了算了,你要用什么直接就能够操控对应的中止和总中止EA就能够了。
现在咱们敞开了中止,cpu就会检测对应的中止是否到来,那怎么检测的呢?接下来咱们就要用到别的几个有用的位了
TCON的第七位TF1,第五位TF0,第三位IE1,第一位IE0
SCON的第一位TI,第零位RI。
RI(SCON.0),串行口接纳中止标志位。当答应串行口接纳数据时,每接纳完一个串行帧,由硬件置位RI。留意,RI必须由软件铲除。
TI(SCON.1),串行口发送中止标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送进程。每发送完一个串行帧,由硬件置位TI。CPU呼应中止时,不能主动铲除TI,TI必须由软件铲除。
TF1:T1当守时时刻到或是当计数个数到的时分,会触发TF1位,然后CPU检测TF1位,履行对应的中止,呼应中止后,硬件清零。
TF0:对应于TF1
IE1:外部中止恳求标志,外部中止履行,恳求中止,对应IE1=1,CPU呼应中止,硬件对IE1清零。
IE0:对应IE1
可是关于外部中止,却有两种中止触发办法,一种是低电平触发,一种是下降沿触发。咱们关于不同状况要进行不同的操控,那什么对这两种办法进行先择呢?咱们看TCON的第二位和第零位是没有用的,便是他们两个,第二位IT1对应外部中止1,第零位IT0对应外部中止0,给他们高电平就为下降沿触发,给他们低电平就为低电平触发。
这样关于中止的了解就比较清楚了吧!接下来的内容里咱们会经过学习其它内容,对这里有更深化的了解。
附:中止优先权图
来历;21ic