MCS-51中断系统

一、51单片机的中断源和中断标志

1、中断源

8051单片机有5个中断源,分别为2个外部中断:INT0(P3.2)、INT1(P3.3),2个定时器/计数器T/C0、T/C1中断T0(P3.4)、T1(P3.5)和1个串行口发送或接受中断源。这些中断源由8051的特殊功能寄存器TCON和SCON控制。

2、中断请求标志

1)TCON的中断标志

 

 

IT0(TCON.0)    外部中断0触发方式控制位

当IT0=0时,为电平触发方式,低电平有效

当IT0=1时,为边沿触发方式,下降沿有效

IE0(TCON.1)    外部中断0中断请求标志位

IT1(TCON.2)    外部中断1触发方式控制位

IE1(TCON.3)    外部中断1中断请求标志位

TF0(TCON.5)    定时/计数器T0溢出中断请求标志位

TF1(TCON.7)    定时/计数器T1溢出中断请求标志位

2)SCON的中断标志

RI(SCON.0)    串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除

TI(SCON.1)    串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除

 

二、51单片机对中断请求的控制

1、对中断允许的控制

   CPU对中断系统的所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。该寄存器是个可位操作的寄存器。

 

 

EX0(IE.0)    外部中断0允许位

ET0(IE.1)    定时/计数器T0中断允许位

EX1(IE.2)    外部中断1允许位

ET1(IE.3)    定时/计数器T1中断允许位

ES(IE.4)   串行口中断允许位

EA(IE.7)     CPU中断允许位即总中断允许位

 

2、中断优先级控制

   8051单片机有两个中断优先级,可实现二级中断服务嵌套。每个中断源的优先级由中断优先级寄存器IP中相应位控制。    

 

 

PX0(IP.0)     外部中断0优先级控制位

PT1(IP.1)     定时/计数器T0优先级控制位

PX1(IP.2)     外部中断1优先级控制位

PT1(IP.3)     定时/计数器T1优先级控制位

PS(IP.4)    串行口优先级控制位

同一优先级中的申请不止一个时,则有中断优先级排队问题。同一优先级的中断优先权由硬件的自然优先级决定,其排列如下所示:

 

 

三、电路图

    即点亮流水灯的电路图,只是实验时,在INT0(P3.2)口置低电平引发中断。

四、外部中断程序设计

该程序实现的功能是,外部中断0每中断一次,则将P2.0取反一次。

1、汇编语言程序设计

ORG    0000H

AJMP   MAIN

ORG    0003H     ;外部中断0入口地址

AJMP    INTO    ;转动中断服务子程序

ORG    0030H

MAIN:

MOV     A,#0FEH

MOV     P2,A  

SETB    EA         ;开总中断

CLR     IT0        ;设置为电平触发方式

SETB    EX0              ;开INT0中断

 

LOOP:    AJMP    LOOP

 

INTO:    INC     A

          MOV     P2,A 

               RETI

 

END

 

2、C51程序设计

#include<reg52.h>

 

unsigned char flag=0xfe;

void main ()

{

    EA=1;         //开总中断

       IT0=0;           //设置为电平触发方式

       EX0=1;          //开外部中断0

       P2=flag;

       while(1);

}

 

void int0() interrupt 0

{

   flag=~flag;

flag|=0xfe;

   P2=flag;

}

posted @ 2013-03-18 19:48  天涯海角路  阅读(1353)  评论(0)    收藏  举报