- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.1 80C51的中断系统 5.1.1 80C51的中断系统结构 引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。 随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点: 二、80C51中断系统的结构 80C51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套 。 5.1.2 80C51的中断源 一、中断源 二、中断请求标志 在中断系统中,采用哪种中断,选择哪种触发方式,要由TCON和SCON相应位规定。 1、TCON(定时/计数器控制寄存器)的中断标志 2、SCON(串行口控制寄存器)的中断标志 一、中断允许控制 CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。IE由软件设置。某位设为1,相应的中断源允许中断;某位设为0,相应的中断源中断屏蔽。CPU复位时,IE=0,禁止所有中断。 二、中断优先级控制 80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来设定的 。某位设定为1,则相应中断源为高优先级;某位设定为0,则相应中断源为低优先级。单片机复位时,IP=0,各中断源同为低优先级。 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示: 80C51单片机的中断优先级有三条原则: 中断服务子程序必须用RETI结尾,否则后续中断将被屏蔽。 5.2 80C51单片机中断处理过程 一、中断响应条件 中断源有中断请求; 此中断源的中断允许位为1; CPU开中断(即EA=1)。 同时满足时,CPU才有可能响应中断。 中断服务的进入: CPU执行程序过程中,在每个机器周期的S5P2期间,中断系统对各个中断源进行采样。这些采样值在下一个机器周期内按优先级和内部顺序被依次查询。 如果某个中断标志在上一个机器周期的S5P2时被置成了1,那么它将于现在的查询周期中及时被发现。接着CPU便执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。 遇以下任一条件,硬件将受阻,不产生LCALL指令: CPU正在处理同级或高优先级中断; 当前查询的机器周期不是所执行指令的最后一个机器周期。即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断; 正在执行的指令为RET、RETI或任何访问IE或IP寄存器的指令。即只有在这些指令后面至少再执行一条指令时才能接受中断请求。 二、中断响应时间 某中断的响应时序如图: 将相应的优先级状态触发器置1(以阻断后来的同级或低级的中断请求)。 执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC。 执行中断服务程序。 编写中断服务程序时注意: (1)由于80C51系列单片机两个相邻中断源中断服务程序入口地址相距才8个单元,一般的中断服务程序放不下,通常在相应的中断服务程序入口地址单元放一条长跳转指令LJMP,这样可以使中断服务程序能灵活地安排在64kB ROM的任何地方。若在2kB范围内转移,则可以用AJMP。 (2)硬件LCALL指令,只负责将PC内的断点地址压入堆栈保护,而对其他寄存器(如PSW,A等)的内容不作保护处理。所以,在中断服务程序中,首先用软件保护现场,在中断服务之后,中断返回前恢复现场,以防止中断返回后,丢失原来寄存器的内容。 若外部中断定义为电平触发方式,中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的低电平保持到请求获得响应时为止,不然就会漏掉;而在中断服务程序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将再次产生中断。 5.2.4 中断程序举例 ORG 0000H START:LJMP MAIN ;跳转到主程序 ORG 0003H LJMP INTO ;转向中断服务程序 ORG 0030H ;主程序
文档评论(0)