PIC单片机的中断资源及应用
发布时间:2008/6/3 0:00:00 访问次数:567
     李小波 刘春生 来源:《国外电子元器件》
     摘要:pic系列单片机是美国microchip技术公司推出的8位嵌入式控制器。它以其控制速度高、工作电压低、功耗小及性价比高等优点而备受青睐。本文以pic16cxx系列单片机为例介绍了pic单片机中断资源的特点、应用及应用中应注意的问题,并给出了具体的应用源程序。
    
    
     关键词:pic单片机
     中断资源 中断源 唤醒
     1 pic单片机简介
     pic系列单片机是美国microchip技术公司推出的高性能价格比的8位嵌入式控制器(embedded
     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会自动被清零,中断标志位不能用硬件清零而只能用软件清零;当执行中断返回指令retfie时,全局中断允许位gie会被自动置1而重新开放中断。因此,在重新开放中断之前要用软件清零有关的中断标志位,以避免产生不断地中断请求而反复进入中断。由于全局中断允许位gie会被中断服务程序(retfie指令)自动置1,因此用软件清零gie并不可靠,这一点要特别注意。用下面的程序可确保整个中断被禁止。
     ***************
     loop bcf intcon,gie ;禁止整个中断
     btfsc intcon,gie
     ;判断全局中断是否被禁止
     goto loop ;否,重新清零
     …… ;继续
     ***************
     对于外部中断事件,例如:int引脚中断和rb口引脚电平变化中断等为边沿触发,因此,cpu在响应中断时对外部信号的要求并不苛刻。一般情况下,中断花费的时间需要3或4个指令周期,确切时间取决于中断事件发生的时刻而与指令本
     李小波 刘春生 来源:《国外电子元器件》
     摘要:pic系列单片机是美国microchip技术公司推出的8位嵌入式控制器。它以其控制速度高、工作电压低、功耗小及性价比高等优点而备受青睐。本文以pic16cxx系列单片机为例介绍了pic单片机中断资源的特点、应用及应用中应注意的问题,并给出了具体的应用源程序。
    
    
     关键词:pic单片机
     中断资源 中断源 唤醒
     1 pic单片机简介
     pic系列单片机是美国microchip技术公司推出的高性能价格比的8位嵌入式控制器(embedded
     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会自动被清零,中断标志位不能用硬件清零而只能用软件清零;当执行中断返回指令retfie时,全局中断允许位gie会被自动置1而重新开放中断。因此,在重新开放中断之前要用软件清零有关的中断标志位,以避免产生不断地中断请求而反复进入中断。由于全局中断允许位gie会被中断服务程序(retfie指令)自动置1,因此用软件清零gie并不可靠,这一点要特别注意。用下面的程序可确保整个中断被禁止。
     ***************
     loop bcf intcon,gie ;禁止整个中断
     btfsc intcon,gie
     ;判断全局中断是否被禁止
     goto loop ;否,重新清零
     …… ;继续
     ***************
     对于外部中断事件,例如:int引脚中断和rb口引脚电平变化中断等为边沿触发,因此,cpu在响应中断时对外部信号的要求并不苛刻。一般情况下,中断花费的时间需要3或4个指令周期,确切时间取决于中断事件发生的时刻而与指令本