第10章 C51中断程序设计
中断系统是计算机或者单片机的重要功能部件,51系列单片机具有5个中断源、两级中断优先级,具有完善的指令控制能力。使用单片机的中断系统可以很方便地完成各种外部硬件响应的操作。
本章主要介绍了51系列单片机的中断的类型、中断系统结构及控制寄存器。接着介绍了CPU的中断处理过程,并通过实例详细介绍了各种中断源的C51程序设计。
10.1 单片机的中断系统
中断系统是现代的微处理器都具备的,不只是51系列单片机所特有的。在51系列单片机中,可以通过特殊功能寄存器来设置中断,并按照中断矢量来识别各个中断。当某个中断发生的时候,首先CPU响应中断,将中断源的入口地址装载到程序计数器PC中,中断服务程序便是从该地址开始执行的。当中断服务程序执行完毕后,将返回原来的断点。下面分别介绍和中断系统相关的特殊功能寄存器及其C51程序的访问,以及中断的C51处理过程。
10.1.1 单片机的中断类型
通常按照中断源的不同,大致可以分为3类:外部中断源、定时中断源和串行中断源。在8051单片机中共有5个中断源,包括两个外部中断源、两个定时中断源和1个串行中断源。下面分别介绍这3类中断源。
1.外部中断源
外部中断源是由外部硬件电路产生的中断。51系列单片机提供了两个外部中断源,分别为和
,分别介绍如下。
❑(Pin3.2)为外部中断0请求。当置TCON.0=0时,低电平中断有效;当置TCON. 0=1时,下降沿中断有效。当向8051 CPU申请中断成功后,将建立IE0标志。
❑(Pin3.3)为外部中断1请求。当置TCON.2=0时,低电平中断有效;当置TCON. 2=1时,下降沿中断有效。当向8051 CPU申请中断成功后,将建立IE1标志。
51系列单片机的外部中断源一般采用两种触发方式:沿触发方式(上升沿或下降沿有效)和电平触发方式(高电平或低电平有效)。下面分别对其进行介绍。
❑对于沿触发方式,在8051 CPU的时钟周期内如果检测到有效的电平变化信号(上升沿或下降沿),则认为产生中断请求,8051 CPU开始执行相应的中断服务程序。
❑对于电平触发方式,在8051 CPU的时钟周期内如果检测到有效的电平信号(高电平或低电平),即认为产生中断请求,8051 CPU开始执行相应的中断服务程序。
2.定时中断源
定时中断源是由51系列单片机内部集成的定时器/计数器产生的中断。51系列单片机内部集成了两个定时器/计数器,分别提供了两个定时中断源:TF0和TF1。其以定时器/计数器的溢出信号作为中断请求,当溢出发生的时候,8051 CPU响应中断请求并开始执行相应的中断服务程序,分别介绍如下。
❑TF0(TCON.5)为定时器/计数器T0的溢出中断请求。在程序运行时,如果定时器/计数器T0溢出,将置位标志位TF0,请求中断,中断系统将进入中断处理例程。
❑TF1(TCON.7)为定时器/计数器T1的溢出中断请求。在程序运行时,如果定时器/计数器T1溢出,将置位标志位TF1,请求中断,中断系统将进入中断处理例程。
3.串行中断源
51系列单片机在进行串行通信的时候,每个数据发送或接收完毕都要产生中断请求,即串行中断。串行中断来自于8051微处理器的内部,CPU响应这个中断请求后,可以再次发送串行数据或者读入接收到的串行数据。
51系列单片机的片内串口通信接口提供了发送中断源TI和接收中断源RI。当进行串行数据传输的时候,如果发送或接收串行数据完成的时候,硬件将置标志位TI或RI从而向CPU请求中断,中断系统将进入中断处理例程。
对于51系列单片机在硬件上提供的这5个中断源,在软件上可以使用控制寄存器来进行控制。下面分别介绍中断请求、中断允许以及中断优先级的标志及其C51程序访问。