预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共60页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章中断系统内容概要5.1AT89S51中断技术概述 在单片机系统中,中断技术主要用于实时监测与控制,也就是要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应并及时处理。这些工作就是由单片机片内的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。 图5-1显示了单片机对外围设备中断服务请求的整个中断响应和处理过程。图5-1中断响应和处理过程如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上,即不论是否有服务请求发生,都必须去查询。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。由于中断工作方式的优点极为明显,因此,单片机的片内硬件中都带有中断系统。 5.2AT89S51中断系统结构 中断系统结构如图5-2所示。共有5个中断请求源(简称中断源),2个中断优先级,可实现2级中断服务程序嵌套。每一中断源可用软件独立地控制为允许中断或关中断状态;每一中断源的中断优先级别均可用软件来设置。图5-2AT89S51的中断系统结构由图5-2可见,中断系统共有5个中断请求源,它们是: (1)INT0*—外部中断请求0,中断请求信号由引脚输入,中断请求标志为IE0。 (2)INT1*—外部中断请求1,中断请求信号由引脚输入,中断请求标志为IE1。 (3)定时器/计数器T0计数溢出发出的中断请求,中断请求标志为TF0。 (4)定时器/计数器T1计数溢出发出的中断请求,中断请求标志为TF1。 (5)串行口中断请求,中断请求标志为发送中断TI或接收中断RI。5.2.2中断请求标志寄存器 5个中断请求源的中断请求标志分别由特殊功能寄存器TCON和SCON的相应位锁存(见图5-2)。 1.TCON寄存器 为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。该寄存器中既包括T0和T1的溢出中断请求标志位TF0和TF1,也包括了两个外部中断请求的标志位IE1与IE0,此外还包括了两个外部中断请求源的中断触发方式选择位。特殊功能寄存器TCON的格式如图5-3所示。图5-3特殊功能寄存器TCON的格式(2)TF0—片内定时器/计数器T0的溢出中断请求标志位,功能与TF1类似。 (3)IE1—外部中断请求1的中断请求标志位。 (4)IE0—外部中断请求0的中断请求标志位,其功能与IE1类似。 (5)IT1—选择外部中断请求1为跳沿触发方式还是电平触发方式。 IT1=0,为电平触发方式,加到INT1*引脚上的外部中断请求输入信号为低电平有效,并把IE1置“1”。转向中断服务程序时,则由硬件自动把IE1清“0”。 IT1=1,为跳沿触发方式,加到INT1*引脚上的外部中断请求输入信号电平从高到低的负跳变有效,并把IE1置“1”。转向中断服务程序时,则由硬件自动把IE1清“0”。 (6)IT0—选择外部中断请求0为跳沿触发方式还是电平触发方式,其意义与IT1类似。 当AT89S51复位后,TCON被清“0”,5个中断源的中断请求标志均为0。 TR1(D6位)、TR0(D4位)这2位与中断系统无关,仅与定时器/计数器T1和T0有关,将在第6章介绍。 2.SCON寄存器 SCON为串行口控制寄存器,字节地址为98H,可位寻址。SCON的低二位锁存串行口的发送中断和接收中断的中断图5-4SCON中的中断请求标志位CPU响应串行口发送中断时,并不清除TI中断请求标志,TI标志必须在中断服务程序中用指令对其清“0”。 (2)RI—串行口接收中断请求标志位。在串行口接收完一个串行数据帧,硬件自动使RI中断请求标志置“1”。CPU在响应串行口接收中断时,RI标志并不清“0”,必须在中断服务程序中用指令对RI清“0”。 5.3中断允许与中断优先级的控制 实现中断允许控制和中断优先级控制分别由特殊功能寄存器区中的中断允许寄存器IE和中断优先级寄存器IP来实现的。下面介绍这两个特殊功能寄存器。5.3.1中断允许寄存器IE AT89S51的CPU对各中断源的开放或屏蔽,是由片内的中断允许寄存器IE控制的。IE的字节地址为A8H,可进行位寻址,其格式如图5-5所示。(2)ES—串行口中断允许位。 ES=0,禁止串行口中断。 ES=1,允许串行口中断。 (3)ET1—定时器/计数器T1的溢出中断允许位。 ET1=0,禁止T1溢出中断。 ET1=1,允许T1溢出中断。 (4)EX1—外部中断1中断允许位。 EX1=0,禁止外部中断1中断。 EX1=1,允许外部中断1中断(4)EX1—外部中断1中断允许位。 EX