12_(第十一章)PIC18的中断编程讲解.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC18系列单片机原理及实践 (第十一章 PIC 18的中断编程);第十一章 PIC 18的中断及编程;11.1 PIC 18的中断;11.1.1 中断和查询;查询方式与中断方式的区别: 查询方式是靠CPU通过查询语句 来得到外设的状态信息( 如:BTFSS PIR1,TXIF),这就意味着:CPU要消耗大量的时间“停留 ”在查询语句上来等待外设的状态。 注意:此时CPU必须停止其它工作,否则会“漏掉”对外设状态信号的检测、降低CPU对外设反应的灵敏度。 中断方式是借助于CPU内部的中断硬件系统 来自动实现对外设的状态查询。将外部的状态信号以“中断申请”的形式来处理,处理的内容包括:对各个中断源的“屏蔽”和“使能”、各个中断源的优先级排序、硬件自动查询各个模块的中断申请等操作。;非常明显:中断技术的引用意味着CPU对外设管理的高效率。在不影响CPU对主程序运行的前提下对外部设备的可靠、高效管理。 ;11.1.2 中断服务程序;编程者可对外设编写的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 中断执行的步骤;11.1.4 PIC18的中断源;11.1.5 中断的“使能 ” 和 “禁用 ”;其中:IE=1表示使能,IE=0禁止,由软件设定; IF位是外围模块中断申请信号,如果该模块的中断 使能IE=1,则IF=1时就可以引发CPU的中断响应。 GIE 总的中断使能位:当GIE=0时将禁止所有中断。 CPU响应某一中断时会临时关闭GIE,待RETFIE后 自动恢复; PEIE 为外设中断使能位:将控制除TMR0、RB和INT0以 外的所有中断源;;EEIFEEIE;11.1.6 使能中断的步骤(以TMR0为例);中断设置举例;解: BSF INTCON,TMR0IE BSF INTCON,INT0IE BSF INTCON,GIE BCF INTCON,TMR0IE BCF INTCON,GIE ;11.2 定时器中断编程;11.2.1 定时器溢出标志TMRxIF和中断;定时器中断标志和相关的寄存器;定时器中断编程举例; MOVLW 0xFF ;TMR0赋初值 MOVWF TMR0H MOVLW 0xF2 MOVWF TMR0L BCF INTCON,TMR0IF ;清除标志 BSF T0CON,TMR0ON ;启动T0 BSF INTCON,TMR0IE ;开中断 BSF INTCON,GIE OVER MOVFF POTRC,PORTD ;主程序的循环操作 BRA OVER;T0_INT ORG 0200H MOVLW 0xFF ;软件重装初值0xFFF2 MOVWF TMR0H ;注意先装高八位后装低八位 MOVLW 0xF2 MOVWF TMR0L BTF PORTB,5 ;RB5输出方波 BCF INTCON,TMR0IF ;清除标志以便下次正确定时 RETFIE ;

文档评论(0)

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

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

1亿VIP精品文档

相关文档