单片机基础(04)
4.1 单片机并行IO口的使用
McS-51单片机的内部资源主要有并行1/0口、定时器/计数器、串行接口以及中断系统,MCS-51单片机的大部分功能就是通过对这些资源的利用来实现的。
- 并行I/O口实现8位数字量的输入输出;
- 定时器/计数器实现周期性动作或对外部事件计数:
- 串行接口实现单片机与其他设备的数据通信;
- 中断系统实现对外部事件的及时响应。
MCS-51单片机有4个8位的并行输入/输出接口:P0、P1、P2和P3口。这4个口既可以并行输入或输出8位数据,又可以按位方式使用,即每一位均能独立作为输入或输出接口用。
用C51语言编程时,对端口输出时,端口号在等号左端,读入时,端口号在等号右端。
PO = 0x80; //输出10000000电平到P0口
P1 = OxFF; //读入P1口电平前,先输出高电平
i= P1; //读入P1口电平保存到变量i
利用单片机的P0口接8个发光二极管,P1口接8个开关,编程实现,当开关动作时,对应的发光二极管亮或灭。
# include <reg51.h>
void main(void){
unsigned char i;
P1=0xFF;
for( ; ; ){
i=P1;
P0=i;
}
}
4.2 定时器计数器工作原理及工作方式
定时/计数器的主要特性
- 51系列中51子系列有两个16位的可编程定时/计数器:TO和T1,52子系列除了TO,T1,还多一个T2。
- 每个模块既可以对系统时钟计数(定时器),也可以对外部信号计数(计数器),通过编程设定来实现。
- 每个定时/计数器都有多种工作方式,不同的工作方式对应计数长度和初值装载方式不同。
定时/计数器T0、T1的结构
注意要点:
-
由于它是加法计数器,每来一个计数脉冲,加法器内容加1,当由全1加到全0时溢出,如果要计N个单位,则首先应向计数器置初值为X:
初值X = 最大计数值(满值)M - 计数值N
在不同的计数方式下,最大计数值(满值)不一样,一般来说,当定时器/计数器工作于R位计数方式时,它的最大计数值(满值)为2的R次幂。
-
当定时/计数器工作于计数方式时,对芯片引脚T0-P3.4(或T1-P3.5)上的输入脉冲计数。
计数过程:在每一个机器周期的S5P2时刻对T0或T1上电平采样一次,当上一个机器周期采样到高电平,下一个机器周期采样到低电平,则计数器在下一个机器周期的S3P2时刻加1计数一次。
定时/计数器的方式和控制寄存器
一、定时/计数器的方式寄存器TMOD
TMOD | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
(89H) | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
← | 定时器1 | → | ← | 定时器0 | → |
其中:M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下
M1 | M0 | 工作方式 | 方式说明 |
---|---|---|---|
0 | 0 | 0 | 13位定时/计数器 |
0 | 1 | 1 | 16位定时/计数器 |
1 | 0 | 2 | 8位自动重置定时/计数器 |
1 | 1 | 3 | 两个8位定时/计数器(只有T0有) |
C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。
GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号 (INTO,INT1)的影响,INTx为高电平时才运行。
二、定时/计数器的控制寄存器TCON
TMOD | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
(88H) | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
TF1(TF0):定时/计数器T1(T0)的溢出你忑位,当定时/计数器T1计满时,由硬件使它置位。
TR1(TR0):定时/计数器T1(T0)的启动位,当TR1=1时启动;TR1=0时停止。
定时/计数器的工作方式
方式0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CsD6QlSL-1651326091018)(https://raw.githubusercontent.com/liufiercing/Upic/master/Upic/04 30 19 21 M25vBE.png)]
方式0是13位的定时/计数方式,因而最大计数值(满值)为2的13次幂,等于8192。如计数值为N,则置入的初值X为:
X=8192-N
如定时/计数器T0的计数值为1000,则初值为7192,转换成二进制数为
1110000011000B(1C18H),则TH0=11100000B(E0H ),TL0=00011000B(18H)。
方式1
方式1的结构与方式o结构相同,只是把13位变成16位,16位的加法计数器被全部用上。
由于是16位的定时/计数方式,因而最大计数值(满值)为2的16次幂,等于65536。如计数值为N,则置入的初值X为:
X=65536-N
如定时/计数器TO的计数值为1000,则初值为65536-1000=64536,转换成二进制数为1111110000011000B(FC18H),则TH0=11111100B(FCH),TL0=00011000B(18H)。
方式2
方式2下,16位的计数器只用了8位来计数,用TL0(或TL1)来进行计数,而TH10(或TH1)用于保存初值。当TL0(或TL1)计满时则溢出,一方面使TF0(或TF1)置位,另一方面溢出信号又会触发开关,将TH0(或TH1的值就自动装入TL0(或TL1)。
由于是8位的定时/计数方式,因而最大计数值(满值)为2的8次幂,等于256。如计数值为N,则置入的初值X为:
X=256-N
如定时/计数器T0的计数值为100,则初值为256-100=156,转换成二进制数为10011100B(9CH),则THO=TLO=10011100B。
方式3
方式3只有定时/计数器T0才有,当M1M0两位为11时,定时/计数器T0工作于方式3,方式3的结构如下图。
方式3下,定时/计数器T0被分为两个部分TL0和TH0,其中,TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。
4.3 单片机的定时器的控制接口
定时/计数器的初始化编程及应用
一、定时/计数器的编程
- 根据要求选择方式,确定方式控制字,写入TMOD寄存器。
- 根据要求计算定时/计数器的计数值,再求得计数初值,写入初值寄存器。
- 根据需要,开放定时/计数器中断选项。
- 设置定时/计数器控制寄存器TCON,启动定时器。
- 等待定时时间到,如用查询处理则编写查询程序判断溢出标志,溢出标志等于1。
如用中断方式处理,编写中断服务程序。
二、定时/计数器的应用举例
利用定时器产生周期性的动作的基本思想:产生周期性的定时,定时时间到做相
应的处理,例如产生周期性的方波,只须定时对输出端取反一次即可。
设系统时钟频率为12MHZ,用定时/计数器T0编程实现从P1.0输出周期为500us的方波。
分析:
从P1.0输出周期为500us的方波,只需P1.0每250ps取反一次则可。当系统时钟为12MHZ,定时器T0工作于方式2时,最大的定时时间为256us,满足250ps的定时要求。
方式控制字应设定为00000010B(02H)。
系统时钟为12MHZ,定时250us,计数值N为250,
初值X=256-250=6,
则TH0=TL0=06H。
硬件电路
采用查询方式处理的程序
#include <reg51.h> //包含特殊功能寄存器库
sbit P1_0=P1^0;
void main(){
char i;
TMOD=0x02;
TH0=0x06;TL0=0x06;
TR0=1;
for( ; ; ){
if (TF0){
TF0=0;
P1_0=! P1_0;
}//查询计数溢
}
}
采用中断处理方式的程序
#include <reg51.h> //
sbit P1_0=P1^0;
void main(){
TMOD=0x02;
TH0=0x06;TL0=0x06;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1 {
P1_0=!P1_0;
}//中断服务程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-keYi5FcU-1651326091019)(https://raw.githubusercontent.com/liufiercing/Upic/master/Upic/04 30 19 39 NaYU3y.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i6WuCgwk-1651326091019)(https://raw.githubusercontent.com/liufiercing/Upic/master/Upic/04 30 19 39 9j5M0y.png)]
如果定时时间大于65536us,这时用一个定时/计数器直接处理不能实现,这时可用两个定时/计数器共同处理或一个定时/计数器配合软件计数方式处理。
【例7-3】设系统时钟频率为12MHZ,编程实现从P1.1输出周期为1s的方波。
由于定时时间较长,一个定时/计数器不能直接实现,可用定时/计数器T0产生周
期性为10ms的定时,然后用一个寄存器R2对10ms计数50次或用定时/计数器T1对10ms计数50次实现。
系统时钟为12MHZ,定时/计数器TO定时10ms,计数值N为10000,只能选方式1,方式控制字为00000001B(01H),初值x:
X=65536-10000 =55536 =1101 1000 1111 0000B
则TH0=1101 1000B=D8H TL0=1111 0000B=F0H
用某变量i对计数器溢出中断次数进行软件计数
#include <reg51.h> //包含特殊功能寄存器库
sbit P1_1=P1^1;
char i;
void main(){
TMOD=0x01; TH0=0xD8;TL0=0xf0;
EA=1;ET0=1;
i=0;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1 { //中断服务程序
TH0=0xD8;TL0=0xf0;
i++;
if (i= =50) {
P1_1=! P1_1;
i=0;
}
}
4.4 单片机串行通讯的概念和工作原理
串行接口
通讯的基本概念
根据信息传送的方向,通信分为:单工、半双工和全双工三种。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3p2MhTK-1651326091019)(https://raw.githubusercontent.com/liufiercing/Upic/master/Upic/04 30 19 46 xjddfc.png)]
并行通信和串行通信
同步通信和异步通信
串行通信按信息的格式
串行异步通信
根据通信双方各自的时钟基准,按照约定好的速率传输串行数据。
串行异步通信
通信双方按照同一个时钟信号为基准,根据时钟信号传输串行数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XJ0RS8O3-1651326091020)(%E5%9B%BE/image-20220430195037285.png)]
未传送时线路处于空闲状态,空闲线路约定为高电平"1",传送时每一个字符前加一个低电平的起始位,然后是8位数据位,低位在前,高位在后,最后是停止位,停止位用高电平表示。格式如图:
由千一次只传送一个字符,因而一次传送的位数比较少,对发送时钟和接收时钟
的要求相对不高,线路简单,但传送速度较慢。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zfQ9EE3N-1651326091020)(%E5%9B%BE/image-20220430195238642.png)]
串行通信电平标准及硬件接口协议
MCS-51单片机是标准数字电路芯片,其输入输出引脚电平符合TTL电平规则(高电平逻辑3-5V,低电平逻辑0-1V),该电平标准有效传输距离较短(15米以内),不适于远距离通信信号传输。
为了提高串行通信可靠性,增大通信距离,人们定义了各种新的通信电平标准。后经美国电子工业协会(EIA)指定标准规范化,形成RS422,RS232,RS485三种异步串行通信电平标准和硬件接口协议。
RS232接口标准是一种用于短距离或带调制解调器(Modem)的串行通信接口标准,1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F0NtmEI5-1651326091020)(https://raw.githubusercontent.com/liufiercing/Upic/master/Upic/04 30 19 54 FEZQEJ.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GC5rwPmB-1651326091021)(https://raw.githubusercontent.com/liufiercing/Upic/master/Upic/04 30 19 55 EFJ8HB.png)]
4.5单片机的串行口工作方式及应用
串行口结构
MCS-51单片机串行口主要由发送数据寄存器、发送控制器、输出控制门、接收数据寄存器、接收控制器、输入移位寄存器等组成
串行口控制寄存器SCON
SCON | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
98H | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
SM0、 SM1:串行口工作方式选择位。
SM0 | SM1 | 方式 | 功能 | 波特率 |
---|---|---|---|---|
0 | 0 | 方式0 | 移位寄存器方式 | f o s c / 12 f_{osc}/12 fosc/12 |
0 | 1 | 方式1 | 8位异步通信方式 | 可变 |
1 | 0 | 方式2 | 9位异步通信方式 | f o s c / 32 f_{osc}/32 fosc/32和 f o s c / 64 f_{osc}/64 fosc/64 |
1 | 1 | 方式3 | 9位异步通信方式 | 可变 |
SM2:多机通信控制位。
REN:允许接收控制位。
TB8:发送的第9位数据
RB8:接收的第9位数据。
TI:发送中断标志位。
RI:接收中断标志位。
电源控制寄存器PCON
PCON | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
87H | SM0D |
当SMOD位为1,则串行口方式1、方式2、方式3的波特率加倍。
串行口的工作方式
方式0
方式o通常用来外接移位寄存器,用作扩展I/O口。方式0工作时波特率固定为:
f
o
s
c
/
12
f_{osc} /12
fosc/12。工作时,串行数据通过RXD输入和输出,同步时钟通过TXD输出。
发送过程
在TI=0时,当CPU执行一条向SBUF写数据的指令时,启动发送过程。从RXD依次发送出去,同步时钟从TXD送出。8位数据发送完后,发送中断标志TI置位,并向CPU申请中断。
接收过程
在RI=0的条件下,将REN置 “1”就启动一次接收过程。
在移位脉冲的控制下,RXD上的串行数据依次移入移位寄存器。当8位数据全部移入移位寄存器后,8位数据送入接收数据缓冲器SBUF中,同时,接收中断标志RI置位,向CPU申请中断。
利用方式0扩展并行I/O口
MCS-51单片机的串行口在方式0时,当外接一个串入并出的移位寄存器,就可以扩展并行输出口,当外接一个并入串出的移位寄存器时,就可以扩展并行输入口。
用8051单片机的串行口外接串入并出芯片CD4094扩展并行输出口控制一组发光二极管,从左至右延时轮流显示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CzcQgwQV-1651326091021)(%E5%9B%BE/image-20220430201531453.png)]
4094是一块8位的串入并出的芯片,共16个引脚:
- D:串行数据输入端;
- CLK: 串行时钟信号输入端:
- Q0~Q7:8位数据并行输出端;
- STB: 锁存端;
- OE:数据输出允许端:

4094的工作过程一般如下:
- 使锁存端STB =0,在串行时钟信号CLK的作用下,数据从输入端D按一个时钟周期一位依次串行输入。
- 8位数据输入后,使控制端STB=1,输入的内容锁存到内部锁存器。
- 使数据输出允许端OE=1,锁存的数据送Q0~Q7行输出;
#include <reg51.h> //包含特殊功能寄存器库
sbit P1_0=P1^0;
void main(){
unsigned char i;
unsigned int j;
SCON=0x00; //串口初始化方式0
i=0x01;
for (; ;){
P1_0=0; //4094串入
SBUF=i; //51单片机串口发送
while (!TI) { ;} //等待发送
P1_0=1;TI=0; //4094并出显示
for (j=0;j<=254;j++){
;
}
i=i*2;
if (i==0x00)
i=0x01;
}
}
方式1
方式1为8位异步通信方式,在方式1下,一帧信息为10位:1位起始位(0),8位数据位(低位在前)和1位停止位(1)。
(1)发送过程
在TI=0时,向SBUF写数据,启动发送过程。数据由TXD引1脚送出,在发送时钟的作用下,先通过TXD端送出数据,当一帧数据发送完毕后,由硬件使发送中断标志TI置位。
(2)接收过程
当允许接收控制位REN被置1,启动接收控制器开始接收数据。在接收移位脉冲的控制下依次把所接收的数据移入移位寄存器,当8位数据及停止位全部移入后,进行响应操作。
TXD发送数据端,RXD为接收数据端。波特率可变,由定时/计数器T1的溢出率和电源控制寄存器PCON中的SMOD位决定。
波
特
率
=
2
S
M
O
D
∗
(
T
1
的
溢
出
率
)
/
32
波特率=2SMOD * (T1的溢出率)/32
波特率=2SMOD∗(T1的溢出率)/32
T
1
的
溢
出
率
=
波
特
率
×
32
/
2
S
M
O
D
T1的溢出率=波特率×32/2^{SMOD}
T1的溢出率=波特率×32/2SMOD
而T1工作于方式2的溢出率可表示为:
T 1 的 溢 出 率 = f o s c / ( 12 × ( 256 − 初 值 ) T1的溢出率=fosc/(12×(256-初值) T1的溢出率=fosc/(12×(256−初值)
所以:
T 1 的 初 值 = 256 − f o s c ∗ 2 S M O D / ( 12 ∗ 波 特 率 ∗ 32 ) T1的初值=256 - fosc * 2^{SMOD} /(12*波特率*32) T1的初值=256−fosc∗2SMOD/(12∗波特率∗32)
Fosc = 12MHz(12000000Hz)波特率=9600bps SMOD =0 T1的初值=252.744
Fosc = 11.0592MHz(11059200Hz) 波特率-9600bps SMOD =0 T1的初值=253
串行口的编程及应用
设计双机通信系统。要求:甲机P1口开关的状态通过串行口发送到乙机,乙机接收到后通过P2口的发光二极管显示。
甲、乙两机都选择方式1:8位异步通信方式,波特率为1200bps,甲机发送,乙机接收,因此甲机的串口控制字为40H,乙机的串口控制字为50H。
由于选择的是方式1,波特率由定时/计数器T1的溢出率和电源控制寄存器PCON中的SMOD位决定。则须对定时/计数器T1初始化。
设SMOD=0,甲、乙两机的振荡频率为12MHZ,由于波特率为1200。定时/计数器T1选择为
方式2,则初值为:
初
值
=
256
−
f
o
s
c
∗
2
S
M
O
D
/
(
12
∗
波
特
率
∗
32
)
=
256
−
12000000
/
(
12
∗
1200
∗
32
)
=
230
=
E
6
H
初值=256 - fosc *2^{SMOD} /(12 *波特率*32) =256-12000000/(12 *1200*32)=230=E6H
初值=256−fosc∗2SMOD/(12∗波特率∗32)=256−12000000/(12∗1200∗32)=230=E6H
根据要求定时/计数器T1的方式控制字为20H。
甲机发送方程序
#include <reg51.h>
void main(void) {
unsigned char i;
SCON=0x40;
TMOD=0x20;
TL1=0xE6;
TH1=0xE6;
TR1=1;
P1=0xFF;
while(1){ //发送
i=P1;
SBUF=i;
while (TI==0);
TI=0;
}
}
乙机接收方程序
#include <reg51.h>
void main(void)
{
unsigned char i;
SCON=0x50;
TMOD=0x20;
TL1=0xE6;
TH1=0xE6;
TR1=1;
EA=1;
ES=1;
while(1){ //发送
;
}
}
void funins(void) interrupt 4 { //接收
if(RI){
RI=0;
P2=SBUF;
}
}
4.6 MCS51单片机中断系统介绍
中断系统
中断的基本概念
当CPU正在处理某一件事A时,发生了另一件事件B,CPU暂时正在执行的程序,转去执行预先设定的处理事件B的程序;处理完毕后,再回到事件A被暂停的程序位置继续处理。这一过程,称之为中断。

- 中断源
- 中断的嵌套与优先级处理
- 中断的响应过程
一、中断源
1.外部中断 INT0和 INT1
外部引脚P3.2和P3.3输入,有两种触发方式:电平触发及跳变(边沿)触发。由特殊功能寄存器TCON来管理。
TCON | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
(88H) | TF1 | TR1 | TF0 | TR0 | 1E1 | IT1 | IE0 | IT0 |
IT0(IT1):外部中断触发方式设置位
被设置为0,则选择外部中断为电平触发方式;
被设置为1,则选择外部中断为边沿触发方式。
IE0(TE1):外部中断0(或1)的中断请求标志位。
光电式自动迎宾器
在门框两侧安装对射式光电传感器,当顾客进出时,其身体遮挡了光源发出红外光,传感器输出的高低电平,单片机检测到电平变化,进而播放不同的提示音。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljLbvuAY-1651326091021)(https://raw.githubusercontent.com/liufiercing/Upic/master/Upic/04 30 21 30 K0E3xi.png)]
在电平触发方式时,CPU在每个机器周期采样P3.2,若引脚为低电平,则IE0(E1)置1,向CPU请求中断;CPU响应后能够由硬件自动将IE0(或IE1清零。
在边沿触发方式时,若第一个机器周期采样到P3.2引脚为高电平,第二个机器周期采样为低电平时,由IE0(或IE1)置1,向CPU请求中断。
2. 定时/计数器T0和T1中断
当定时/计数器T0(或T1)溢出时,由硬件置TF0(或TF1)为“1”,向CPU发送中断请求,当CPU响应中断后,将由硬件自动清除TF0(或TF1)。
3.串行口中断
Mcs-51的串行口中断源对应两个中断标志位:串行口发送中断标志位T1和串行口接收中断标志位RI。无论哪个标志位置“1”,都请求串行口中断,到底是发送中断TI还是接收中断RI,只有在中断服务程序中通过指令查询来判断。
4.定时/计数器T2中断
只针对52系列单片机,当定时/计数器T2溢出时,向CPU发送中断请求。
二、中断允许控制
MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。
IE | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
(A8H) | EA | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
EA(Enable ALL):中断允许总控位。
ET2, ET1,ETO:定时器/计数器T2,T1,TO的溢出中断允许位。
ES:串行口中断允许位。
EX1,EXO: 外部中断 INT1,INTO 的中断允许位。
系统对各中断源,默认给出优先权顺序
三、优先权控制
每个中断源有两级控制:高优先级和低优先级。通过由内部的中断优先级寄存器IP来设置。中断优先级寄存器IP(Interrupt Priority)的字节地址为B8H,可以进行位寻址。
IP | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
(B8H) | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
PT2,PT1,PTO:定时器T2,T1,T0的中断优先级控制位。
PS:串行口的中断优先级控制位。
PX1,PX0:外部中断INT1,INTO的中断优先级控制位。
如果IP中某一位被置"1",表示对应中断源被设为高优先级;否则为低优先级。
对于中断优先权和中断嵌套,MCS-51单片机有以下三条
- 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序后,CPU才响应新的中断请求。
- 正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。
- CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。
各中断服务程序的入口地址
中断源 | 入口地址 |
---|---|
外部中断0 | 0003H |
定时/计数器0 | 000BH |
外部中断1 | 0013H |
定时/计数器1 | 001BH |
串行口 | 0023H |
定时/计数器2(仅52子系列有) | 002BH |
四、中断响应时间
中断响应时间是指CPU检测到中断请求信号到转入中断服务程序入口所需要的机器周期。51单片机响应中断的最短时间为3个机器周期。