位置:51电子网 » 技术资料 » 单 片 机

PIC单片机16F84的内部硬件资源(七)

发布时间:2008/5/27 0:00:00 访问次数:583

http://www.hificat.com

10 复位

  复位是单片机的初始化操作。其主要功能是把程序计数器pcl初始化为000h,可使16f84单片机从000h单元开始执行程序。

pic16f84单片机有下列几种不同的复位方式。

  (1)芯片上电复位por。
  (2)正常工作状态下通过外部mclr引脚加低电平复位。
  (3)在省电休眠状态下通过外部mclr引脚加低电平复位。
  (4)监视定时器wdt超时溢出复位。

pic16f84单片机片内集成有“上电复位”por电路,对于一般应用,只要把mclr引脚接高电位即可。
在正常工作或休眠状态下用mclr复位,只需在mclr引脚上加一按键瞬间接地即可。
单片机16f84复位操作,对其它一些寄存器会有影响,如表1所示。

  11监视定时器wdt
  单片机系统常用于工业控制,在操作现场通常会有各种干扰,可能会使执行程序弹飞到一种死循环,从而导致整个单片机控制系统瘫痪。如果操作者在场,就可进行人工复位,摆脱死循环。但操作者不能一直监视着系统,即使监视着系统,也往往是引起不良后果之后才进行人工复位。由于pic16f84单片机中具有程序运行自动监视系统,即监视定时器wdt(watch dog time),直译为“看门狗”定时器。这好比是主人养了一条狗,主人在正常干活时总不忘每隔一段时间就给狗喂食,狗就保持安静,不影响主人干活。如果主人打嗑睡,不干活了,到一定时间,狗饿了,发现主人还没有给它吃东西,就会大叫起来,把主人唤醒。由此可见,wdt有如下特性:

  (1)本身能独立工作,基本上不依赖cpu。
  (2)cpu在一个固定的时间间隔中和wdt打一次交通(如使其清零,即喂一次狗),以表明系统目前工作正常。
  (3)当cpu落入死循环后,能被wdt及时发觉(如wdt计数溢出),并使系统复位。

  pic16f84单片机内的wdt,其定时计数的脉冲序列由片内独立的rc振荡器产生,所以它不需要外接任何器件就可以工作。而且这个片内rc振荡器与osc1/clkin(引脚{16})上的振荡电路无关,即使osc1和osc2上的时钟不工作,wdt照样可以监视定时。例如:当pic16f84在执行sleep指令后,芯片进入休眠状态,cpu不工作,主振荡器也停止工作,但是,wdt照样可监视定时。当wdt超时溢出后,可激活(唤醒)芯片继续正常的操作。而在正常操作期间,wdt超时溢出将产生一个复位信号。如果不需要这种监视定时功能,在固化编程时,可关闭这个功能。附图是监视定时器的结构框图。表2是与wdt有关的寄存器。

  wdt的定时周期在不加分频器的情况下,其基本定时时间是18ms,这个定时时间还受温度、vdd和不同元器件的工艺参数等的影响。如果需要更长的定时周期,还可以通过软件控制opt/on寄存器把预分频器配置给wdt,这个预分频器的最大分频比可达到1∶128。这样就可把定时周期扩大128倍,即达到23秒。

  如果把预分频器配置给wdt,用clrwdt和sleep指令可以同时对wdt和预分频器清零,从而防止计时溢出引起芯片复位。所以在正常情况下,必须在每次计时溢出之前执行一条clrwdt指令(即喂一次“狗”),以避免引起芯片复位。当系统受到严重干扰处于失控状态时,就不可能在每次计时溢出之前执行一条clr wdt指令,wdt就产生计时溢出,从而引起芯片复位,从失控状态又重新进入正常运行状态。

  当wdt计时溢出时,还会同时清除状态寄存器中的d4位t0,检测t0位即可知道复位是否由于wdt计时溢出引起的。  



http://www.hificat.com

10 复位

  复位是单片机的初始化操作。其主要功能是把程序计数器pcl初始化为000h,可使16f84单片机从000h单元开始执行程序。

pic16f84单片机有下列几种不同的复位方式。

  (1)芯片上电复位por。
  (2)正常工作状态下通过外部mclr引脚加低电平复位。
  (3)在省电休眠状态下通过外部mclr引脚加低电平复位。
  (4)监视定时器wdt超时溢出复位。

pic16f84单片机片内集成有“上电复位”por电路,对于一般应用,只要把mclr引脚接高电位即可。
在正常工作或休眠状态下用mclr复位,只需在mclr引脚上加一按键瞬间接地即可。
单片机16f84复位操作,对其它一些寄存器会有影响,如表1所示。

  11监视定时器wdt
  单片机系统常用于工业控制,在操作现场通常会有各种干扰,可能会使执行程序弹飞到一种死循环,从而导致整个单片机控制系统瘫痪。如果操作者在场,就可进行人工复位,摆脱死循环。但操作者不能一直监视着系统,即使监视着系统,也往往是引起不良后果之后才进行人工复位。由于pic16f84单片机中具有程序运行自动监视系统,即监视定时器wdt(watch dog time),直译为“看门狗”定时器。这好比是主人养了一条狗,主人在正常干活时总不忘每隔一段时间就给狗喂食,狗就保持安静,不影响主人干活。如果主人打嗑睡,不干活了,到一定时间,狗饿了,发现主人还没有给它吃东西,就会大叫起来,把主人唤醒。由此可见,wdt有如下特性:

  (1)本身能独立工作,基本上不依赖cpu。
  (2)cpu在一个固定的时间间隔中和wdt打一次交通(如使其清零,即喂一次狗),以表明系统目前工作正常。
  (3)当cpu落入死循环后,能被wdt及时发觉(如wdt计数溢出),并使系统复位。

  pic16f84单片机内的wdt,其定时计数的脉冲序列由片内独立的rc振荡器产生,所以它不需要外接任何器件就可以工作。而且这个片内rc振荡器与osc1/clkin(引脚{16})上的振荡电路无关,即使osc1和osc2上的时钟不工作,wdt照样可以监视定时。例如:当pic16f84在执行sleep指令后,芯片进入休眠状态,cpu不工作,主振荡器也停止工作,但是,wdt照样可监视定时。当wdt超时溢出后,可激活(唤醒)芯片继续正常的操作。而在正常操作期间,wdt超时溢出将产生一个复位信号。如果不需要这种监视定时功能,在固化编程时,可关闭这个功能。附图是监视定时器的结构框图。表2是与wdt有关的寄存器。

  wdt的定时周期在不加分频器的情况下,其基本定时时间是18ms,这个定时时间还受温度、vdd和不同元器件的工艺参数等的影响。如果需要更长的定时周期,还可以通过软件控制opt/on寄存器把预分频器配置给wdt,这个预分频器的最大分频比可达到1∶128。这样就可把定时周期扩大128倍,即达到23秒。

  如果把预分频器配置给wdt,用clrwdt和sleep指令可以同时对wdt和预分频器清零,从而防止计时溢出引起芯片复位。所以在正常情况下,必须在每次计时溢出之前执行一条clrwdt指令(即喂一次“狗”),以避免引起芯片复位。当系统受到严重干扰处于失控状态时,就不可能在每次计时溢出之前执行一条clr wdt指令,wdt就产生计时溢出,从而引起芯片复位,从失控状态又重新进入正常运行状态。

  当wdt计时溢出时,还会同时清除状态寄存器中的d4位t0,检测t0位即可知道复位是否由于wdt计时溢出引起的。  



相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!