### MCS-51单片机中断系统和定时计数器
#### 1. 中断系统概述
MCS-51单片机的中断系统是其重要特性之一,它能够实现对外部事件的实时响应,提高了系统的灵活性和效率。中断系统支持六个中断源,分别为两个外部中断、两个定时/计数器中断、一个串行口输入/输出中断。其中,外部中断和定时/计数器中断是最常用的中断类型。
#### 2. 中断向量表
中断向量表是一系列中断入口地址的集合,用于指示中断发生时CPU转向何处执行中断服务程序。在MCS-51单片机中,中断向量表位于程序存储器的最低地址处,具体如表所示:
| **中断源** | **中断向量** |
| --- | --- |
| 外部中断0 | 0003H |
| 定时器0溢出 | 000BH |
| 外部中断1 | 0013H |
| 定时器1溢出 | 001BH |
| 串行口中断 | 0023H |
| 定时器2溢出 | 002BH |
#### 3. 中断优先级控制寄存器IP
在MCS-51单片机中,中断优先级控制寄存器IP用来设置各个中断源的优先级。IP寄存器的各位定义如下表所示:
| **位符号** | **功能描述** |
| --- | --- |
| PT2 | 定义T2的优先级(仅8052才有)。PT2=1:T2具有高优先级;PT2=0:T2具有低优先级。 |
| PS | PS=1:设定串行口具有高优先级;PS=0:设定串行口具有低优先级。 |
| PT1 | PT1=1:设定T1具有高优先级;PT1=0:设定T1具有低优先级。 |
| PX1 | PX1=1:设定/INT1具有高优先级;PX1=0:设定/INT1具有低优先级。 |
| PT0 | PT0=1:设定T0具有高优先级;PT0=0:设定T0具有低优先级。 |
| PX0 | PX0=1:设定/INT0具有高优先级;PX0=0:设定/INT0具有低优先级。 |
#### 4. 中断使能寄存器IE
中断使能寄存器IE用于控制中断是否被允许。当设置了EA位后,所有中断使能。此外,每个中断源都有单独的使能位,可以通过软件设置IE中相应的使能位来使能或禁能特定的中断源。IE寄存器的各位定义如下表所示:
| **位符号** | **功能描述** |
| --- | --- |
| EA | EA=1:CPU使能;EA=0:CPU禁能,且屏蔽所有中断源。 |
| ET2 | 仅8052才有效。ET2=1:定时器/计数器2(T2)使能;ET2=0:定时器/计数器2(T2)禁能。 |
| ES | ES=1:串行端口中断允许控制位使能;ES=0:串行端口中断允许控制位禁能。 |
| ET1 | ET1=1:定时器/计数器1(T1)使能;ET1=0:定时器/计数器1(T1)禁能。 |
| EX1 | EX1=1:外部中断1(/INT1)使能;EX1=0:外部中断1(/INT1)禁能。 |
| ET0 | ET0=1:定时器/计数器0(T0)使能;ET0=0:定时器/计数器0(T0)禁能。 |
| EX0 | EX0=1:外部中断0(/INT0)使能;EX0=0:外部中断0(/INT0)禁能。 |
#### 5. 控制寄存器TCON、TMOD、T2CON、T2MOD
- **TCON**:定时器控制寄存器,用于控制定时器的工作状态,包括启动、停止、中断标志等。
- **TMOD**:定时器方式控制寄存器,用于设置定时器的工作模式(例如定时或计数模式)以及工作方式。
- **T2CON**:定时器2控制寄存器(仅8052有),与TCON类似,但针对定时器2。
- **T2MOD**:定时器2模式控制寄存器(仅8052有),与TMOD类似,但针对定时器2。
#### 6. 定时/计数器的各种模式
MCS-51单片机中的定时/计数器支持多种工作模式,包括:
- **模式0**:13位定时/计数器
- **模式1**:16位定时/计数器
- **模式2**:自动重装8位定时/计数器
- **模式3**:仅适用于定时器0,分为两个独立的8位定时器
每种模式下的初值设定方法不同,一般而言,模式0和模式1需要设置高8位和低8位的初始值;模式2仅需设置低8位的初始值;模式3则根据具体应用进行配置。
#### 7. 中断延迟
MCS-51单片机在每个处理周期都会查询中断标志,以确定是否有中断请求。当发生中断时,会置位相应的标志,处理器会在下一个周期查询到中断标志位。因此,从发生中断到确认中断之间通常有一个指令周期的延时。在理想情况下,处理器能够在3个指令周期内响应中断,从而快速响应系统事件。
MCS-51单片机的中断系统和定时计数器是其核心功能之一,通过对中断优先级、中断使能以及定时/计数器的控制,可以有效地管理中断事件,提高系统的实时性和可靠性。