第5章1单片机原理及应用_中断系统导论.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.串行口中断请求的撤消 响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的撤消只能用软件清除 CLR TI ;清TI标志位 CLR RI ;清RI标志位 5.9 中断服务程序的设计 一、中断服务程序设计的任务 基本任务: (1)设置中断允许控制寄存器IE。 (2)设置中断优先级寄存器IP。 (3)对外中断源,是采用电平触发还是跳沿触发。 (4)编写中断服务程序,处理中断请求。 前3条一般放在主程序的初始化程序段中。 例5-3 假设允许外部中断0中断,并设定它为高级中断,其它中断源为低级中断,采用跳沿触发方式。在主程序中编写如下程序段: SETB EA ;CPU开中断 SETB ET0 ;允许外中断0产生中断 SETB PX0 ;外中断0为高级中断 SETB IT0 ;外中断0为跳沿触发方式 二、采用中断时的主程序结构 常用的主程序结构如下: ORG 0000H LJMP MAIN ORG 中断入口地址 LJMP INT ? ORG XXXXH MAIN:主 程 序 ?INT:中断服务程序 三、中断服务程序的流程 (1)因各入口地址之间只相隔8个字节,所以通常在中断入口地址单元处存放—条无条件转移指令,使中断服务程序灵活地安排在64KB程序存储器的任何空间。 (2)若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭CPU中断,或禁止某中断源中断,在中断返回前再开放中断。 (3)注意保护现场和恢复现场。 (4)中断服务程序的最后一条是返回指令RETI,该指令将清除响应中断时被置位的优先级状态触发器,然后自动将断点地址从栈顶弹出,装入PC,使程序返回到被中断的处,继续向下执行。 例5-4 根据图5-9的中断服务程序流程,编出中断服务程序。假设,现场保护只需将PSW和A的内容压入堆栈中保护。 典型的中断服务程序如下: INT: CLR EA ;CPU关中断 PUSH PSW ;现场保护 PUSH ACC ; SETB EA ;CPU开中断 中断处理程序段 CLR EA ;CPU关中断 POP ACC ;现场恢复 POP PSW SETB EA ;CPU开中断 RETI ;中断返回,恢复断点 几点说明: (1)现场保护仅涉及到PSW和A的内容,如还有其它需保护的内容,只需要在相应的位置再加几条PUSH和POP指令即可。 (2) “中断处理程序段”,应根据任务的具体要求,来编写。 (3)如果本中断服务程序不允许被其它的中断所中断。可将“中断处理程序段”前后的“SETB EA”和“CLR EA”两条指令去掉。 (4)中断服务程序的最后一条指令必须是返回指令RETI。 ※中断程序设计的一般方法: (1) 主程序中的中断系统初始化 1)设置中断系统特殊功能寄存器(例中断源的触发方式); 2)设置中断优先极; 3)设置中断允许寄存器(开中断); 4)中断服务程序的前期初始化(例如入口参数等)。 (2) 中断响应与中断服务程序 一般中断服务程序的结构包括:现场保护,处理程序,恢复程序,返回等。由于各中断服务程序的入口地址之间只有8个字节的空间,因此一般在入口处要安排一转移指令。 中断程序设计 中断程序设计的一般格式 ORG 0000H LJMP MAIN ;主 程 序 ORG 00YYH LJMP INT ;中断服务程序 ORG XXXXH MAIN: INT: … … … 中断初始化 … RETI 初始状态设置:优先级、 触发方式 开中断:IE 中断服务程序先期初始化 返回之前清中断请求标志位(需要时) 中断应用前后要做的几项工作 1、中断初始化 开中断允许:必须 选择优先级:根据需要选择,可有/可无 设置控制位:INTx—触发方式(ITx) Tx—TCON,TMOD,TRx,初值…… RI/TI—SCON,REN,RB8,TB8,…… 2、中断后 进入中断服务后:关中断,保护现场,…… 退出中断服务前:恢复现场,开中断,设Tx的初 值,清TI/RI,…… 中断服务程序的最后一条指令必是 RETI 小结 例1 一个外部中断源时的编程 如图所示

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档