- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12_(第十一章)PIC18的中断编程汇编
大连理工大学 电工电子实验中心 陈育斌 PIC18系列单片机原理及实践(第十一章 PIC 18的中断编程) 参考资料:《PIC技术宝典》 PIC Microcontroller and Embedded Systems [美] Rolin D.Mckinlay 著 课件编写:大连理工大学 电工电子实验中心 陈育斌 2009年8月 第十一章 PIC 18的中断及编程 本章内容: 中断和查询的比较; 中断服务程序ISR的作用; PIC18的主要中断类型; 中断向量表的作用; 中断的使能与禁止; 使用中断对定时器、外中断和串行口的编程; PIC18的中断优先级; PIC中断的C语言编程。 11.1 PIC 18的中断 本节主要论述: 中断技术与查询技术的比较; PIC不同的中断类型。 11.1.1 中断和查询 以CPU为核心的控制系统往往包含着多个外围模块(定时器、串行口、ADC电路以及外部芯片等); CPU与外围模块之间存在着数据交换的操作 ---- 我们称之为CPU为外部设备的“服务”。 CPU对外设的服务有两种方式实现: 查询 :CPU 使用指令 来不断的检测外设的工作状态,一旦条件具备,调用服务程序为其服务; 中断 :由CPU的 硬件系统自动完成 对多个外设状态的排序、查询,一旦某一外设条件具备,CPU会停止当前的指令、转向为其外设的服务程序ISR。 查询方式与中断方式的区别: 查询方式是靠CPU通过查询语句 来得到外设的状态信息( 如:BTFSS PIR1,TXIF),这就意味着:CPU要消耗大量的时间“停留 ”在查询语句上来等待外设的状态。 注意:此时CPU必须停止其它工作,否则会“漏掉”对外设状态信号的检测、降低CPU对外设反应的灵敏度。 中断方式是借助于CPU内部的中断硬件系统 来自动实现对外设的状态查询。将外部的状态信号以“中断申请”的形式来处理,处理的内容包括:对各个中断源的“屏蔽”和“使能”、各个中断源的优先级排序、硬件自动查询各个模块的中断申请等操作。 非常明显:中断技术的引用意味着CPU对外设管理的高效率。在不影响CPU对主程序运行的前提下对外部设备的可靠、高效管理。 11.1.2 中断服务程序 在中断方式中,对每一个外部设备都对应一个服务程序,我们称之为“中断服务程序 ------ ISR”; 当一个外部设备的中断申请被CPU允许、响应时,CPU会以一种特殊的方式 转到对应的中断服务程序中……服务完成时会自动返回到主程序 “断点”处继续主程序的执行。 编程者可对外设编写的ISR定义在ROM的某一位置nnnn; 将与ISR地址相关的跳转指令存放在ROM的特定单元 中,这些单元称之-------中断向量 。 一旦CPU响应某一外设的中断申请就首先跳到中断向量单元,并从中获取跳转到ISR的指令、转到真正的ISR中; 图中:ISR的位置可以任意;而跳转指令 GOTO nnnn必须存放在规定的0008H单元。 像学生的信箱:每一个学生都有自己固定的信箱(中断向量单元),每一个学生都从自己的信箱中取得信件。 在MCS-51系统中,为每一个中断源单独设立一个中断向量单元,而PIC18却是都集中在两个向量单元。 CPU一旦相应某一中断,就会进入到0008H(或0018H)单元,只要编程者在该单元填写 GO TO nnnnnn 指令,CPU就会准确的转到ISR。这里nnnnnn位ISR地址。 在PIC18系统中只用一个中断向量单元。这就意味着不论是谁引发的中断响应,CPU都会自动的跳转到0008H单元中,那么如何实现不同中断源的ISR服务呢? 在系统编程中,如果使用了两个或两个以上的中断源时,就要在向量的单元(0008H)编写一段中断源查询的程序:判断是哪些中断源引发的中断,从而GOTO到对应的ISR中。 当然查询程序也可以在ROM的其他位置,但要有中断向量中的指令来引导。如:在0008H单元中写入 GOTO chk_int ;转向查询程序 11.1.3 中断执行的步骤 当一个外设的中断被触发时,CPU会执行下面步骤: CPU执行完当前主程序的指令并将下一条指令的地址(PC的值)压入堆栈 ----- 断点保护; CPU跳转到中断向量单元0008H(或0018H); 执行该单元的GOTO指令跳转到真正的ISR地址。ISR的最后一条指令为RETFIE(中断返回); CPU执行ISR的RETFIE指令时,将栈中的断点地址弹回PC中,使CPU返回主程序的断点继续程序的执行。 11.1.4 PIC18的中断源 与其系统相比,PIC18具有许多中断源。根据型号不同其中断源的数量有所不同。下面是常用的几个中断源: 定时器中断源。有定时器0、定时器1和定时器2等; 外
文档评论(0)