历史上的今天
今天是:2024年12月03日(星期二)
2019年12月03日 | PIC单片机的复位系统模块与中断模块介绍
2019-12-03 来源:elecfans
pic单片机在生活中存在诸多应用,这是大多朋友学习pic单片机的主要原因之一。对于pic单片机,小编曾带来大量介绍。而本文中,将为大家介绍pic单片两大方面内容:pic单片机复位系统模块+pic单片机中断模块。如果你对这部分内容存在疑惑,不妨继续往下一探究竟哦。

一、PIC单片机复位系统模块介绍
PIC16F87X系列单片机的复位功能设计得比较完善,根据引起单片机内部复位的条件和原因,可以将PIC单片机复位系统分为五个模块进行介绍:
1.上电复位
每次单片机加电时,上电复位电路都要对电源电压VDD的上升过程进行检测,当VDD值上升到规定值1.6~1.8V时,就产生一个有效的复位信号,需经过72ms加1024个时钟周期的延时,才会使单片机复位。
2.人工复位(单片机在执行程序期间)
无论是单片机在按预先设定的正常顺序运行程序,还是出现单片机进入不可预知的某一个死循环,都必须认为单片机在执行程序。单片机在执行程序期间,只要在人工复位端MCLR加入一个低电平信号,就会令其复位。
3.人工复位(单片机在睡眠期间)
单片机处在睡眠状态之下(时钟停振,单片机停止执行程序),只要在人工复位端MCLR加入一个低电平信号,就会令其复位。
4.看门狗复位
不论何种原因,只要没有对看门狗定时器WDT周期性清0,WDT就会出现超时溢出,也就会引发单片机复位。依据单片机在看门狗超时溢出之前所处的状态是睡眠还是执行程序,又可以将看门狗超时溢出分为两种情况。
一种情况只有在单片机执行程序期间,看门狗发生超时溢出,才会引发单片机的复位;而另一种情况对于PIC16F87X单片机而言则不会引发单片机的复位。
5.电源欠压复位
在上电延时之后,该电路再提供1024个时钟周期的延迟,目的是让振荡电路有足够的时间产生稳定的时钟信号。
注:为了满足上述人工复位的需要,通常单片机都设置一个外接复位引脚,来接收外部输入的人工复位信号。

二、PIC单片机中断模块介绍
PIC16F87X系列单片机可以接收多达14个中断源。中断控制器寄存器INTCON标记着各个中断源的请求,对各个中断设置屏蔽位,对全部中断设置全局屏蔽位。
PIC16F87X系列的中断包含:TMR0溢出中断(TOIF)、外部中断(INTF)、端口B变化中断(RBIF)、并行从动端口中断(PSPIF)、A/D变换中断、USART异步接收中断(RCIF)和异步发送中断(TXIF)、同步串行端口中断(SSPIF)、CCP1中断(CCPIIF)、TMR2中断(TMR2IF)、TMR1中断、CCP1中断(CCP2)、E2PROM写中断(EEIF)、总线碰撞中断(BCLIF)。
各个中断采用查询方式进行,即当CPU口向应中断时,事先要通过查询中断标志位去判断是哪个中断产生中断请求,然后执行相应的中断服务程序。
RB0/INT外中断仍遵守PIC16F87X单片机的中断原则,当有中断时产生中断标志位,由CPU查询识别中断。根据这一原则,可以扩展多个外中断源,CPU响应中断后查询中断标志位识别中断。
RB0/INT引脚上的外部中断由边沿触发,既可以是上升沿,也可以是下降沿,这由选择寄存器OPTION_REG的INTEDG位(D6)决定。当INTEDG=1时,选择上升沿触发;当INTEDG=0时,选择下降沿触发。一旦检测到引脚上出现有效边沿,就把INTF位(INTCON的D1)置1。这个中断由中断控制位INTE设置允许或禁止。
为了防止错误的死循环执行同一个中断,在重新开放这个中断之前必须在中断服务程序中用软件对INTF位清0。如果INTE位在进入休眠状态之前已被置1,INT中断可以唤醒在休眠状态下的CPU。GIE位的状态决定处理器是否在被唤醒后转至中断矢量。
当定时器TIMER0的计数器TMR0计满溢出(即由FFH变成00H)时,硬件将自动把TGIF位置1。其中断可以通过对TOIE位进行设置来控制该中断是否开放。
当CPU响应RB7、RB4中断时,就有两种情况产生:第一种称为“短脉冲”,即在CPU响应中断期间引脚电平恢复到原始状态,对这种情况CPU不会产生虚假中断现象。第二种称为“宽脉冲”,即在CPU响应中断后引脚电平才恢复到原始状态,恢复到原始状态的过程也产生中断请求,这种情况就是虚假中断现象。
在端口B的D7~D4引脚上一旦有电平变化就把RBIF位置1,这个中断可以通过对RBIE位进行设置来控制该中断是否开放。
上一篇:PIC单片机的命名规则详细介绍
下一篇:PIC单片机系统定义字的含义解析
史海拾趣
|
我有个四个一体数码管,共阳极的。我想做一个0000-9999计数器,因为数码管是一体化的,a,b,c,d,e,f,dp七个脚都是共用的,所以只要1,2,3,4--a,b,c,d,e,f,dp任何一个脚都会显示四组字符,请问我应该怎么才能单独显示出1,a\\2,a\\3,a\\4,a。。。。我 ...… 查看全部问答> |
|
我在使用skyeye时使用skyeye-binary-testutils-1.0.4.tar.bz2映像程序,书上说这个映像程序能够模拟arm4510,但是我在解压后的testutils文件夹中没有发现模拟arm4510的文件夹,请问应该如何解决这个问题呢?… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 04:10 编辑 用LM2576-ADJ做了一个电源,输出的电流竟然有5点几A,接入负载电流不变,为什么啊,高手帮忙解释一下啊!! 先谢啦。 … 查看全部问答> |
|
如图,这是TI给出的典型应用电路图,我来分析一下每一个元件的作用。 图中分为输入部分,反馈部分,供电部分,和负载,其实很简单的元件构成,其实每一个都是必须的,而且非常有效有用。 输入部分包括Rin和Rb,这两个电阻一个是可变电阻一个是 ...… 查看全部问答> |
|
随着硬件系统的模块化发展,很多电子产品都做出模块并采用串口进行数据通信。例如:GPRS模块、GPS模块、语音模块、热敏微型打印机、串口摄像头等等。在与这些模块进行数据通信都离不开串口,而对于串口的操作,由于串口本身没有标准的通信协议,所 ...… 查看全部问答> |
|
线性稳压器已存在很多年。一些设计人员仍然将具有 20 多年历史的线性稳压器用于众多新老项目,而另一些设计人员则通过分立组件自己制作线性稳压器。线性稳压器凭借出色的简便性在各种电压转换应用中拥有无与 ...… 查看全部问答> |




