文档详情

第5章__AT89S51单片机的中断.ppt

发布:2015-09-13约6.96千字共27页下载文档
文本预览下载声明
5 AT89S51单片机的中断系统 5.1 AT89单片机的中断及中断请求源 5.1.1中断简介 计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务程序执行完了之后能自动回到原主程序处继续执行,这个过程叫做“中断”。    中断需要解决两个主要问题:一是如何从主程序转到中断服务程序;二是如何从中断服务程序返回主程序。 大体说来,采用中断系统改善了计算机的性能,主要表现在以下几个方面: (1)有效地解决了快速CPU与慢速外设之间的矛盾,可使CPU与外设并行工作,大大提高了工作效率。 (2)可以及时处理控制系统中许多随机产生的参数与信息,即计算机具有实时处理的能力,从而提高了控制系统的性能。 (3)使系统具备了处理故障的能力,提高了系统自身的可靠性。 1.定时器/计数器中断锁存寄存器TCON TCON为定时器/计数器T0、T1的控制寄存器,同时也锁存T0、T1的溢出中断源和外部请求中断源等,与中断源有关的位如下: TF1:T1溢出中断标志。T1被允许计数后,从初值开始加1计数。当 产生溢出时硬件置“1”TF1,向CPU请求中断,一直保持到 CPU响应中断时,才由硬件清“0”(也可由查询软件清零)。 TF0:T0溢出中断标志。T0被允许计数后,从初值开始加1计数。当产 生溢出时硬件置“1”TF0,向CPU请求中断,一直保持到CPU 响应中断时,才由硬件清“0”(也可由查询软件清零)。 2.串行口中断 SCON为串行口控制寄存器,字节地址为98H。SCON的低二位锁存串行口的接收中断和发送中断标志,其格式如下: TI:串行口发送中断标志。在串行口以方式0发送时,每当发送完8位数据后,由硬件置位TI;若以方式1、2、3发送时,在发送停止位的开始时置位TI。TI=1表示串行口发送器正在向CPU申请中断。值得注意的是当CPU响应该中断后,转向中断服务程序时并不复位TI,TI必须由用户在中断服务程序中用软件清0 (可用CLR TI或其它指令)。 RI:串行口接收中断标志。若串行口接收器允许接收并以方式0工作,则每当接收到第8位数据时置位RI;若以方式1、2、3工作,且SM2=0时,则每当接收器接收到停止位的中间时置位RI;当串行口以方式2或方式3工作,且SM2=1时,仅当接收到的第9位数据RB8为1后,同时还要接收到停止位的中间时置位RI。RI为1表示串行口接收器正向CPU申请中断,同样RI必须由用户在中断服务程序中清0。AT89S51复位后,SCON也被清0。 5.2 中断的优先级    如果正在执行主程序时只有1个中断源请求中断,而这时CPU又是对中断开放的,那么这个中断立即得到响应。然而由于中断是随机产生的,中断源一般又不止1个,因此往往会出现这样的情况:几个中断源同时请求中断;或者当某一个中断正在响应中(即正在执行该中断源的中断服务程序),又有其它的中断源请求中断,这时中断系统应如何处理呢?    在一般情况下,首先把各个中断源分成若干个优先级,然后再按如下原则进行处理: (1)不同级的中断源同时申请中断时——先高后低;   (2)同级的中断源同时申请中断时——事先规定;   (3)处理低级中断又收到高级中断请求时——停低转高;   (4)处理高级中断又收到低级中断请求时——高不理低。 AT89S51单片机的中断系统对优先级的控制比较简单,只规定了两个中断优先级,对于每一个中断源均可编程为高优先级中断或低优先级中断。在同1个优先级中,对5个中断源的优先次序安排如下: 外部中断0(IE0) 定时器/计数器T0溢出中断(TF0) 外部中断1(IE1) 定时器/计数器T1溢出中断(TF1) 串行口中断(RI+TI) AT89S51单片机中有1个中断优先级寄存器IP,字节地址为B8H。对于每1个中断源,均可通过对IP的设置来确定其优先等级,置1为高优先级,清0为低优先级。    IP寄存器的格式如表所示。 5.3.1 中断响应过程 1.中断响应的条件    单片机响应中断的条件为中断源有请求(中断允许寄存器IE相应位置1),且CPU开中断(即EA=1)。这样,在每个机器周期内,单片机对所有中断源都进行顺序检测,并可在任1个周期的S6期间,找到所有有效的中断请求,还对其优先级进行排队。但是,必须满足下列条件: (1)无同级或高级中断正在服务;   (2)现行指令执行到最后1个机器周期且已结束
显示全部
相似文档