doc

PIC单片机的中断资源及应用

  • 1星
  • 日期: 2015-08-24
  • 大小: 58.5KB
  • 所需积分:0分
  • 下载次数:5
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: PIC中断

PIC单片机的中断资源及应用

文档内容节选

作者:合肥电子工程学院      李小波 刘春生 来源:国外电子元器件      摘要:PIC系列单片机是美国Microchip技术公司推出的8位嵌入式控制器它以其 控制速度高工作电压低功耗小及性价比高等优点而备受青睐本文以PIC16CXX系列 单片机为例介绍了PIC单片机中断资源的特点应用及应用中应注意的问题,并给出了具 体的应用源程序                关键词:PIC单片机      中断资源 中断源 唤醒      1 PIC单片机简介      PIC系列单片机是美国Microchip技术公司推出的高性能价格比的8位嵌入式控制器Emb edded      Controller,它采用了精简指令集计算机RISCReduced      Instruction Set Computer和哈佛Harvard双总线以及两级指令流水线结构具有高速度低工作电 压低功耗等特点和优良的性能价格比,因而PIC系列单片机越来越受到单片机开发与应 用工程技术人员的青睐该系列独特的结构和中断资源使其在使用时与其它系列的单片 机有许多不同之处下面以PIC16CXX系列微......

作者:合肥电子工程学院      李小波 刘春生 来源:《国外电子元器件》      摘要:PIC系列单片机是美国Microchip技术公司推出的8位嵌入式控制器。它以其 控制速度高、工作电压低、功耗小及性价比高等优点而备受青睐。本文以PIC16CXX系列 单片机为例介绍了PIC单片机中断资源的特点、应用及应用中应注意的问题,并给出了具 体的应用源程序。                关键词:PIC单片机      中断资源 中断源 唤醒      1 PIC单片机简介      PIC系列单片机是美国Microchip技术公司推出的高性能价格比的8位嵌入式控制器(Emb edded      Controller),它采用了精简指令集计算机RISC(Reduced      Instruction Set Computer)和哈佛(Harvard)双总线以及两级指令流水线结构。具有高速度、低工作电 压、低功耗等特点和优良的性能价格比,因而PIC系列单片机越来越受到单片机开发与应 用工程技术人员的青睐。该系列独特的结构和中断资源使其在使用时与其它系列的单片 机有许多不同之处。下面以PIC16CXX系列微控制器为例来介绍PIC系列单片机的中断资源 特点以及应用方法。      2 中断资源的开发与屏蔽      图1是PIC16C64/64A/65/65A的中断逻辑电路图,其它型号芯睡的中断资源也大致相同, 只是资源多少不一而已,但它们的中断入口只有一个(入口地址在004H)。PIC单片机的 中断大致可以分为两类。      第一类是由中断控制器INTCON直接控制的中断,包括外部引脚中断INT的RB口电平变化中 断以及定时器TMRO溢出中断,它们的中断允许位和中断标志都在INTCON寄存器中。引脚 中断INT和定时器TMRO溢出中断与其它微处理器相同。RB口电平变化中断是PIC单片机特 有的中断,当把RB口高4位I/O口线设置为输入时,只要这4位I/O口线上的电平发生变化 就会引起中断。RB口的电平中断特性对用户是非常有用的。用户可以直接利用这些口线 的关键部位进行电平检测,并可利用中断进行保护性控制等操作;另一方面,电平中断 特性还可以利用RB口的软件控制弱上拉特性组成一个矩阵键盘,并用按键唤醒CPU,这对 于那些以电池供电的系统特别有用。      另一类是外围接口中断,包括定时器TMR1溢出中断、TMR溢出或匹配中断、同步串行口中 断、异步串行口中断、并行从动口中断和CCP(Capture/Compare/PWM)中断等,而带A/ D功能的PIC16C7X系列微处理器还有A/D转换完成中断。这些中断的允许位分别在PIE1和 PIE2寄存器,而中断标志则分别在PIR1和PIR2中。      所有的中断都有自己的中断允许位和中断标志,外围接口中断不仅受各自的中断允许位 控制,同时还共同受外围中断控制允许位的控制。全局中断允许位GID能够控制所有的中 断。无论全局中断允许位GIE和相应的中断允许位状态如何,只要满足中断条件,各个中 断标志位都会被置1。与其它微处理器不同的是:当CPU响应中断时全局中断允许闰GIF会 自动被清零,中断标志位不能用硬件清零而只能用软件清零;当执行中断返回指令RETF IE时,全局中断允许位GIE会被自动置1而重新开放中断。因此,在重新开放中断之前要 用软件清零有关的中断标志位,以避免产生不断地中断请求而反复进入中断。由于全局 中断允许位GIE会被中断服务程序(RETFIE指令)自动置1,因此用软件清零GIE并不可靠 ,这一点要特别注意。用下面的程序可确保整个中断被禁止。      ***************      LOOP BCF INTCON,GIE ;禁止整个中断      BTFSC INTCON,GIE      ;判断全局中断是否被禁止      GOTO LOOP ;否,重新清零      …… ;继续      ***************      对于外部中断事件,例如:INT引脚中断和RB口引脚电平变化中断等为边沿触发,因此, CPU在响应中断时对外部信号的要求并不苛刻。一般情况下,中断花费的时间需要3或4个 指令周期,确切时间取决于中断事件发生的时刻而与指令本身的周期数无关。      3 中断的优先级      PIC系列单片机只有一个中断入口(004H),所有的中断都通过该入口进入中断服务子程 序,至于是哪一个中断源,只有在进入中断服务子程序后查询中断标志才能确认。该单 片机没规定中断的优先级,也没有用于设定中断优先级的寄存器,中断的优先级是由于 中断服务子程序中断查询中断标志的顺序确定的。CPU响应一个中断并进入中断服务程序 后,全局中断允许位GIE被自动清零,CPU在此期间不响应其它中断,也不能形成中断嵌 套。因此,在使用中断时要合理安排查询中断标志的顺序,尽量缩短CPU在中断服务程序 中逗留的时间。在用PIC系列单片机构成系统时应尽量减少中断源的个数,对于那些执行 时间较长且不需采用中断方式来处理的事件,应尽量采和查询标志的方式进行处理;对 于那些必须采用中断方式处理的事件,在中断服务程序中要尽量先查询对系统至关重要 的事件的中断标志。另外,在退出中断服务程序时,只清除处理过的中断标志即可,而 不需要将所有的中断标志清除。对于RB口电平变化中断,一方面要保存RB口每次变化后 的状态,以便在下次中断时判断是哪根口线上的电平发生了变化;另一方面可以设置产 生中断的口线标志,并将由于该中断而未执行的程序在中断服务程序外通过查询口线标 志来执行,以减少CPU在中断服务程序中逗留的时间。      4 程序跨页时的中断处理      PIC系列单片机的程序存储空间是分页处理的,每页空间的大小为512字节到4k字节不等 。页程序计数器PC是一个13位宽的增量寄存器,其低8位PCL是一个可读/写寄存器,其高 字节PCH(有效位为5位)不能直接进行读/写操作,它通过一个8位保护寄存器PCLATH把 高5位地址传递给程序计数器的高字节。当一个中断被响应时,PC中的断点地址自动被压 栈(PUSH)保护;而当执行RETFIE指令时,堆栈中的断点地址回弹到(POP)程序存储器 PC中。无论是压栈操作还是出栈操作,它们都不影响PCLATH寄存器的内容。同时,CPU响 应中断并跳转到中断入口地址时,都只能在本页内跳转而不影响PLCATH寄存器的内容。 另外,在中断入口安排的是GOTO语句,而GOTO语句也只能在本页跳转。当中断服务程序 存放在程序存储器的第一页且CPU在执行非第一页内程序时,响应中断将导致中断入口地 址和中断返回地址错误而引起程序混乱。下面以PIC16C65A来说明这个问题的解决办法。      PIC16C65A的片内程序存储器为4k,分为两页,每页2k。假设中断服务程序存放在 第一页(0000H- 07FFH),通常这样做是因为中断入口地址在第一页,因而可以减少程序量)。那么,具 体程序如下:      ***************      ORG 0000H      0000H GOTO START      ORG 0004H      ***************      0004H GOTO PRO-INT      ORG 0005H      0005H START ……      ……      0234H PRO-INT……      ……      RETFIE      ***************      通过汇编程序编译可知,在程序存储器0004H单元存放的代码是2A34H,当CPU在程序存储 器第一页响应中断时,程序先跳到0004H,然后跳到0234H执行,正常进入中断,执行完 后能正常返回。当CPU在程序存储器第二页响应中断时,由于PCLATH的D4D3(页选择位) 为01,CPU4执行“GOTO      PRO- INT”时的代码虽然是2A34H,但程序不是跳到0234H执行,而是跳至0A34H执行。显然,程 序执行错误。      解决这一问题的方面是在程序存储器0A34H处安排一段程序,在中断程序结束时判断CPU 响应中断时程序所处的位置,从而使程序根据该信息合理设置页选择位,然后再返回中 断。      ******************      ORG 0A34H      BSF RAM,b ;设置在程序执行到第二页时CPU响应中断的标志      BCF PCLATH,3 ;将PC切换到第一页      GOTO PRO-INT      ;程序跳转到中断服务程序      *******************      在指令RETFIE前应增加的程序如下:      ******************      BTFSC RAM,b ;判断CPU响应中断前程序所在位置      BSF PCLATH,3 ;设置页选择位      RETFIE      ******************      以上程序中的RAM是一个内存单元,b是该单元的某一位,该位在程序初始化时清零,CP U在执行程序存储器第二页的程序并响应中断时该位置“1”。经过上述处理,CPU不管在程 序存储器第一页还是第二页响应中断,都能正确进入中断服务程序并能正确返回中断前 的地址。      5 利用中断唤醒CPU      PIC系列单片机具有休眠(SLEEP)省电工作模式,当执行一条SLEEP指令后,芯片就进入 低功耗休眠模式。进入休眠状态后,主振荡器停止工作,此时芯片消耗的电流极低(在 3V工作电压,32kHz时钟时典型值约1μA),这一特点对于电池供电的系统非常有利。利 用中断可以将CPU从休眠状态唤醒。这些中断源包括外部INT引脚中断、RB口引脚电平改 变中断和部分外围接口中断。用于唤醒休眠状态的CPU外围接口中断有:工作在异步计数 器方式下的TMR1中断、SSP起始/停止位检测中断、CCP捕捉方式中断和从动并行口读写中 断。其它外围接口中断因需要片内Q时钟而无法产生中断。      利用中断事件唤醒CPU与全局中断允许位GIE无关,任意一个中断允许位置1的中断源,只 要产生中断就会将相应的中断标志置1,芯片将立入中断服务程序与全局中断允许位GIE 的状态和紧接SLEEP指令后的那条指令有关。由于PIC系列单片机采用了两级指令流水线 结构,在执行SLEEP指令时,下一条指令已预先取出,因此在GIE位为0时,芯片被唤醒后 首先执行预先取出的那条指令;如果GIE位为1,则芯片被唤醒后执行预先取出的那条指 令后紧接着转入中断入口地址再执行中断服务程序。在这种情况下,应在SLEEP指令后安 排一条空操作指令NOP,以便CPU被唤醒后能立即进入中断服务程序。      总之,PIC系更单片机是一种性能价格比很高的微控制器,正确、合理地使用其中断资源 可以使系统更加完善,工作更加稳定。
更多简介内容

推荐帖子

移动通信系统中常见的RF干扰原因
     可能造成射频 干扰的原因正不断增多,有些显而易见容易跟踪,有些则非常细微,很难识别发现。虽然仔细设计基站可以提供一定的保护,但多数情况下对干扰信号只能在源头处进行控制。本文讨论射频干扰的各种可能成因,了解其根源后将有助于工程师对其进行测量 跟踪和排除。   射频干扰信号会给无线通信 基站覆盖区域内的移动通信带来许多问题,如电话掉线、连接出现噪声、信道丢失以及接收语音质量很差等
Jacktang RF/无线
C语言函数返回局部变量的几个典型例子
一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意
火辣西米秀 【微控制器 MCU】
DSP之时钟与定时器的通用定时器
C55x DSP片内有两个2通用定时器,利用定时器可向CPU产生周期性中断或向DSP片外的器件提供周期信号。其中TMS320VC5503/5507/5509/5510 DSP提供的是2个20位通用定时器。 1 结构框图 20位的定时器由两部分组成:一个4位的预定标器(PSC)和一个16位的主计数器(TIM)。 定时器有两个计数寄存器(PSC,TIM)和两个周期寄存器(TDDR,PRD),在定
fish001 【DSP 与 ARM 处理器】
MSP430的 SPI读取AFE4400寄存器值的代码
本帖最后由 Aguilera 于 2020-5-6 21:35 编辑     unsigned long AFE4400_Reg_Read(unsigned char Reg_address) {   unsigned char SPI_Rx_buf[4]; //存放读取到的寄存器值   unsigned long retVal;   retVal = 0;   P1OUT&
Aguilera 【微控制器 MCU】
Qorvo领先的射频解决方案推荐
Qorvo 是一家长期坚持提供创新的射频解决方案以实现更加美好互联世界的公司。我们结合产品和领先的技术优势、以系统级专业知识和全球性的制造规模,快速解决客户最复杂的技术难题。   我们服务于全球市场,包括先进的无线设备、有线和无线网络和防空雷达及通信系统。我们在这些高速发展和增长的领域持续保持着领先优势。我们还利用我们独特的竞争优势,以推进 5G 网络、云计算、物联网和其他新兴的应用市场以实现
Jacktang RF/无线
德州仪器运动相机和手持云台解决方案
伴随互联网的迅猛发展与5G时代的到来,短视频成为了行业最火热的风口。智能手机加速更新换代的同时,运动相机与手持稳定器由于应用场景的多元化,以及性能和价格的优势,逐渐受到年轻人的喜爱。 1.      运动相机系统介绍 相比于传统的数码相机,运动相机采用电子防抖的方式,在实际拍摄时只有部分的画面,通过内置陀螺仪和加速度计对摄像机抖动方向进行模糊判断,利用处理器的资源进行计算、并
alan000345 【DSP 与 ARM 处理器】

评论

登录/注册

意见反馈

求资源

回顶部

datasheet推荐 换一换

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })