MCS-51单片机的中断系统
时间:2014-11-18 08:20 来源:自动控制网
MCS-51是一个多中断源的单片机,有三类共五个中断源(包括2个外部中断源、2个片内定时/计数器溢出中断源、1个片内串行口通讯中断源),两个优先级,中断处理程序可以实现两级嵌套,具有较强的中断处理能力。 1. 中断源 (1)外部中断是由外部的中断请求信号引起的,MSC-51系列单片机的外部中断源有两个,即外中断0和外中断1。请求信号分别由INT0(P3.2)、INT1(P3.3)引脚引人。输入到INT0(P3.2)、INT1(P3.3)引脚上的有效中断请求信号分别被置位到相应的中断标志(IE0、IE1)中,向CPU申请中断。 外部中断请求INT0、INT1有两种触发方式,即电平触发方式和跳变触发方式。对电平触发方式,检测到低电平即为有效请求。对于跳变触发方式,要检测两次。若前一次为高电平,后一次为低电平,则表示检测到负跳变请求信号,该信号作为有效请求信号。为了保证检测可靠,低电平或高电平的宽度至少要保持一个机器周期即 12 个振荡周期。 外部中断请求被响应后,如果采用电平触发方式,中断请求标志的撤销是由软硬件相结合的方法完成的;而采用跳变触发方式,中断请求标志(IE0、IE1)的撤销是由硬件自动完成的。 (2)定时/计数器中断是单片机内部的定时器定时时间到或计数器计到满值溢出引起的中断。MCS-51系列单片机有2个定时/计数器中断,即定时/计数器T0 和 Tl,它们可以对内部时钟或外部引脚T0(P3.4)、T1(P3.5)上输人的脉冲进行计数。当定时/计数器发生溢出时,表明定时时间到或计数已满,以溢出信号作为中断请求,置位相应的中断标志(TF0、TF1),向CPU申请中断。 定时/计数器中断请求被响应后,内部硬件会自动将中断请求标志(TF0、TF1)清零,撤销中断请求。 (3)串行口中断是单片机内部的串行口发送或接收一帧串行数据操作完毕所产生的中断。发送和接收完毕后,分别置位相应的标志(TI、RI),向CPU申请中断。接收和发送作为一个中断源,称为串行口中断。 串行口中断请求被响应后,需要判断是接收操作还是发送操作,然后由软件的方法撤销中断请求。 各中断源所对应的中断服务程序入口地址如下表: 表3.2 各中断源所对应的中断服务程序入口地址
以上5个中断请求标志信号分别锁存在特殊功能寄存器TCON和SCON中。 2. TCON定时/计数控制寄存器 TCON是片内定时/计数器0和1(T0、T1)的控制寄存器,字节地址为88H,锁存T0、T1的溢出中断请求标志,也锁存外部中断0和1的请求标志,如下表 表3.3 TCON寄存器
IT0:外 部中断0的触发方式控制位。由软件设置,IT0=0为电平触发方式,IT0=1为跳变触发方式。
IE0:外部中断0的请求标志位。 IT1:外部中断1的触发方式控制位。由软件设置,IT1=0为电平触发方式,IT1=1为跳变触发方式。 IE1:外部中断1的请求标志位。 TR0:定时/计数器0的运行控制位。由软件设置,TR0=0关闭定时/计数器0,TR0=1启动定时/计数器0。 TF0:定时/计数器0的溢出中断请求标志。 TR1:定时/计数器1的运行控制位。由软件设置,TR1=0关闭定时/计数器0,TR1=1启动定时/计数器1。 TF1:定时/计数器1的溢出中断请求标志。 3. SCON串行口控制寄存器 SCON是片内串行口的控制寄存器,字节地址为98H,SCON的低2位用来锁存串行口的接收中断和发送中断请求标志,如下表 表3.4 SCON寄存器
Rl:为串行口接收中断请示标志位。CPU响应中断后,必须由软件(中断服务程序)清零。 Tl:为串行口发送中断请求标志位。CPU响应中断后,必须由软件(中断服务程序)清零。 |