zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

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

单片机 功能 中断 定时器 计数器 详细分析 c51
2023-09-14 09:13:04 时间

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

中断是指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)