C51单片机定时器/计数器中断功能详细分析(一)

我们首先需要了解什么是中断?

中断是指CPU在执行某一过程中由于外界原因必须暂停现在的事情,处理别的事情,处理完了再回去执行暂停的事情。

中断的优点?

1.分时操作。
2.实时响应
3.可靠性高

中断中用到的寄存器:

中断优先级寄存器IP

位序号

D7

D6

D5

D4

D3

D2

D1

D0

位符号

--

--

--

PS

PT1

PX1

PT0

PX0

描  

--

--

--

串口

T/C1

INT1

T/C0

INT0


IP寄存器:
作用是选择优先级的,解决中断优先级问题。
PX0:外部中断0优先级设定位 
PT0:定时/计数器T0优先级设定位 
PX1:外部中断0优先级设定位 
PT1:定时/计数器T1优先级设定位 
PS :串行口优先级设定位 
PT2:定时/计数器T2优先级设定位


 

中断允许寄存器IE

位序号

D7

D6

D5

D4

D3

D2

D1

D0

位符号

EA

--

--

ES

ET1

EX1

ET0

EX0

描  

全局中断

--

--

串口中断

T/C1

INT1

T/C0

INT0

IE寄存器:
EX0:外部中断0允许位; 
ET0:定时/计数器T0中断允许位; 
EX1:外部中断1允许位; 
ET1:定时/计数器T1中断允许位; 
ES :串行口中断允许位; 
EA :CPU中断允许(总允许)位。 


52单片机中一共有6个中断源,他们的符号,名称,及产生的条件分别是:

INT0—外部中断0,由P3.2端口引入,低电平或电平下降沿引起

INT1—外部中断1,由P3.3端口引入,低电平或电平下降沿引起

T0—定时器/计数器0中断,由T0计数器计满回零引起

T1定时器/计数器1中断,由T1计数器计满回零引起

T2定时器/计数器2中断,由T2计数器计满回零引起

TI/RI—串行口中断,串行端口完成一帧字符发送/接收后引起

中断优先级顺序由高到低:
外部中断0(INT0)->定时/计数器0(T0)->外部中断1(INT1)->
定时/计数器1(T1)->串行口(R1或T1)->定时/计数器2(T2)

首先响应的是优先级高的中断请求,正在中断的不会被新的中断请求打断,正在进行低优先级中断服务,能被高优先级中断请求中断。

中断函数一般形式:
void 函数名() interrupt   n
{}
(n代表中断号,中断号是编译器识别不同中断的唯一编号)

中断函数和普通函数的异同:
同:函数的形式非常类似,中断响应过程和普通函数调用过程也非常相似
异:中断函数不需要声明,普通函数需要声明

使用中断函数需要遵循以下规则:
(1)中断函数不能进行参数传递
(2)在任何情况下,都不能直接调用中断函数

中断响应条件

  1. 中断源有中断请求
  2. 此中断源的中断允许位为1
  3. 开中断(即EA=1)


猜你喜欢

转载自blog.csdn.net/weixin_41445387/article/details/80375908