首页 理论教育 学习用51单片机编程,轻松理解中断系统

学习用51单片机编程,轻松理解中断系统

时间:2023-10-11 理论教育 版权反馈
【摘要】:51系列的单片机一共有51个中断源,见表3-3。52系列的单片机默认的中断优先级别详见表3-4。图3-9 中断嵌套流程图4.应用中断需要设置的4个寄存器中断允许寄存器IE。

学习用51单片机编程,轻松理解中断系统

中断是为了使单片机对外部或内部随机发生的事件具有实时(即时)处理能力而设置的。有了中断,使单片机处理外部或内部事件的能力大为提高,它是单片机的重要功能之一,是我们必须掌握的。

1.中断的基本概念

中断是CPU在执行现行程序(事件A)的过程中,发生了另外一个事件B,请求CPU迅速去处理(注:这就叫“中断请求”),使CPU暂时中止现行程序的执行(注:这叫“中断响应”),并设置断点,转去处理事件B(注:这叫“中断服务”),待将事件B处理完毕,再返回被中止的程序即事件A,从断点处继续执行(注:这叫“中断返回”的过程)。

978-7-111-46996-4-Part01-144.jpg

图3-8 中断响应过程

中断的响应过程如图3-8所示。

生活中,中断的例子很多。例如,你正在看书(执行主程序),突然电话响了(中断请求),你停止看书(中断响应为在书上作记号,即设置断点),再去接听电话(中断服务),接听电话完毕,你再返回从断点处继续看书(中断返回)。

关于中断,还要理解以下两个概念:

①中断系统:实现中断的硬件逻辑和实现中断功能的指令统称为中断系统。

②中断源:引起中断的事件称为中断源,实现中断功能的处理程序称为中断服务程序。51系列的单片机一共有51个中断源,见表3-3。

3-3 51系列的单片机的中断源

978-7-111-46996-4-Part01-145.jpg

(续)

978-7-111-46996-4-Part01-146.jpg

2.中断优先级

当单片机正在执行主程序时,如果同时发生了几个中断请求,单片机会响应哪个中断请求,或者,单片机正在执行某个中断服务程序的过程,又发生了另外一个中断请求,单片机是立即响应还是不响应,这取决于单片机内部的一个特殊功能寄存器——中断优先级寄存器的设置情况。我们通过设置中断优先级寄存器,可以告诉单片机,当两个中断同时产生时先执行哪个中断程序。如果没有人为地设置中断优先级寄存器,则单片机会按照默认的优先级进行处理(即优先级高的先执行)。如果设置了中断优先级寄存器,则按设置的优先级进行处理。52系列的单片机默认的中断优先级别详见表3-4。

3-4 52系列的单片机默认的中断级别

978-7-111-46996-4-Part01-147.jpg

3.中断嵌套

所谓中断嵌套,就是如果单片机正在处理一个中断程序,又有另一个级别较高的中断请求发生,则单片机会停止当前的中断程序,而转去执行级别较高的中断程序,执行完毕后再返回到刚才已经停止的中断程序的断点处继续执行,执行完毕后再返回到主程序的断点处继续执行。中断嵌套的流程图如图3-9所示。

978-7-111-46996-4-Part01-148.jpg

图3-9 中断嵌套流程图

4.应用中断需要设置的4个寄存器(www.xing528.com)

(1)中断允许寄存器IE。CPU对中断源是开放(允许)或屏蔽(不允许),由片内的中断允许寄存器IE控制。IE在特殊功能寄存器中,字节地址为A8H,位地址从低位到高位分别为A8H~AFH,该寄存器进行位寻址,即编程时对寄存器的每一位都可以单独操作。单片机复位时IE的各个位全部被清0(即各个位都变为0)。

IE各个位的定义详见表3-5。

3-5 中断允许寄存器IE各位的意义

978-7-111-46996-4-Part01-149.jpg

(2)中断优先级寄存器IP。中断优先级寄存器IP在特殊功能寄存器中,字节地址为B8H,位地址从低位到高位分别为B8H~BFH,该寄存器可以进行位寻址,即编程时可以对寄存器的每一位都可以单独操作。IP寄存器用于设定各个中断源属于两级中断中的哪一级。单片机复位时,IP全部被清0。IP的各位定义详见表3-6。

3-6 中断优先级寄存器IP各位的意义

978-7-111-46996-4-Part01-150.jpg

注意高优先级中断能够打断低优先级中断而形成中断嵌套,同优先级中断之间不能形成中断嵌套,低优先级中断不能打断高优先级中断。

一般情况下,中断优先级寄存器不需设置,而采用默认设置。

(3)定时器/计数器工作方式寄存器TMOD。TMOD在单片机内部的特殊功能寄存器中,字节地址为89H,不能位寻址(即编程时不能单独操作各个位,只能采用字节操作)。该寄存器用来设定定时器的工作方法及功能选择。单片机复位时,TMOD全部被清0,TMOD各位的定义详见表3-7。

3-7 定时器/计数器工作方式寄存器TMOD各位的定义

978-7-111-46996-4-Part01-151.jpg

(续)

978-7-111-46996-4-Part01-152.jpg

(4)中断控制寄存器TCON。TCON在特殊功能寄存器,字节地址为88H,位地址从低到高为88H~8FH,TCON可以进行位寻址(每一位可单独操作)。该寄存器用于控制定时器/计数器的开启、停止,标志定时器/计数器的溢出和中断情况,还可对外中断、对行进行设置。单片机复位时TCON全部清0。TCON各位的定义详见表3-8。

3-8 TCON各位的定义

978-7-111-46996-4-Part01-153.jpg

5.中断服务程序的写法(格式)

C51中断函数的格式如下:

978-7-111-46996-4-Part01-154.jpg

说明:中断函数不能返回任何值,所以前面需加voidꎻ函数名可以随便起,只要不和C语言关键词相同就行了ꎻ中断函数是不带参数的,所以()内为空ꎻinterrupt是固定的,必需的ꎻ中断号就是表3-4中的中断序号,需记住。

例如,定时器T1的中断服务可写为:voidT1_time()interrupt3。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈