看门狗指令
看门狗程序

在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。
即可激活看门狗。
汇编格式
Org 0000
Ljmp begin
Begin:
Mov 0A6H,#01EH ;先送1E
Mov 0A6H,#0E1H ;后送E1
;在程序初始化中激活看门狗。
……
……
For:
……
Mov 0A6H,#01EH ;先送1E
Mov 0A6H,#0E1H ;后送E1
;喂狗指令
……
Ljmp for
c格式
在C语言中要增加一个声明语句。
在AT89X51.h声明文件中增加一行 sfr WDTRST = 0xA6;
Main()
{
WDTRST=0x1E;
WDTRST=0xE1;//初始化看门狗。
While (1)
{
WDTRST=0x1E;
WDTRST=0xE1;//喂狗指令
}
}
注意事项:
1. 89S51的看门狗必须由程序激活后才开始工作。
所以必须保证CPU有可靠的上电复位。
否则看门狗也无法工作。
2.看门狗使用的是CPU的晶振。
在晶振停振的时候看门狗也无效。
3. 89S51只有14位计数器。
在16383个机器周期内必须至少喂狗一次。
而且这个时间是固定的,无法更改。
当晶振为12M时每16个毫秒需喂狗一次。
三菱FX系列可编程控制器的应用指令简介

上一页 下一页 返回
5. 1FX系列可编程控制器的应用指 令概况
第5章三菱FX系列可编程控制器的 应用指令简介
5. 1FX系列可编程控制器的应用指令概况 5. 2程序流程控制指令 5. 3数据传送指令和比较指令 5. 4四则运算指令和逻辑运算指令 5. 5循环移位指令 5. 6数据处理指令 5. 7高速处理指令
第5章三菱FX系列可编程控制器的 应用指令简介
上一页 下一页 返回
5. 2程序流程控制指令
5. 2. 3与中断有关的指令
与中断有关的3条应用指令是:中断返回指令IRET,编号为 FNC03;中断允许指令EI编号为FNC04;中断禁止指令DI,编 号为FNCOS。以上3条指令均无操作数,分别占用一个程序 步。
中断程序以中断事件号为开始标记,以中断返回指 令IRET作为结束标记,每个中断程序都要有IRET语句。中
断程序放在主程序结束指令FEND之后。主程序中允许中断 的程序段以允许中断指令EI作为开始标志,以禁止中断指令 DI作为结束标志,如图5-10所示。
上一页 下一页 返回
5. 2程序流程控制指令
中断指令的使用说明如下。 ① PLC按先来先处理的原则处理中断事件,若多个中断事
件同时出现,则先处理编号小的中断事件,编号小的中断事 件优先级别高。 ②中断事件是否有效,由特殊辅助继电器控制。当M8050一 M8058为“ON”时,禁止执行相应的中断。当M5089为“ON” 时,则禁止所有计数器中断。 ③无须中断禁止时,可只用EI指令,不必用DI指令。 ④执行一个中断服务程序时,如果在中断服务程序中有EI 和DI,可实现二级中断嵌套,否则禁止其他中断。
软件看门狗是利用单片机片内闲置的定时器

第21卷第2期 吉林大学学报(信息科学版) V o l121 N o12 2003年5月 JOU RNAL O F J I L I N UN I V ER S IT Y(I N FORM A T I ON SC IEN CE ED IT I ON) M ay2003文章编号:167125896(2003)022*******单片机应用系统中的看门狗技术α胡 屏1,柏 军2(11哈尔滨工业大学威海分校信息与控制工程系,山东威海 264209;21哈尔滨工业大学威海分校计算机科学与工程系,山东威海 264209)摘要:分析研究了单片机应用系统中软件看门狗、单 双时限和强制复位看门狗等几种常见的看门狗技术及具体的实现方法,从提高看门狗工作可靠性的角度,分析了各种看门狗方案的优缺点,给出了基本的硬件电路和软件控制策略,指出了在设计和应用过程中需注意的一些问题。
关键词:单片机;看门狗;抗干扰;X5045看门狗定时器中图分类号:T P39 文献标识码:A引 言随着单片机技术的发展和制造工艺的日益成熟,单片机的应用领域不断拓宽,但由于单片机自身的抗干扰能力较差,尤其是在一些条件比较恶劣,噪声大的场合,常会出现单片机因受外界干扰而导致死机的现象,造成系统不能正常工作。
设置看门狗是防止单片机死机、提高单片机系统抗干扰性的一种重要途径,笔者研究分析了几种较为实用的看门狗技术,供读者参考。
1 软件看门狗软件看门狗是利用单片机片内闲置的定时器 计数器单元作为看门狗,在单片机程序中适当地插入“喂狗”指令,当程序运行出现异常或进入死循环时,利用软件将程序计数器PC赋予初始值,强制性地使程序重新开始运行。
具体实现方法如下。
1)首先在初始化程序中设置好定时器 计数器的方式控制寄存器(TM OD)和定时时间的初值,并开中断。
2)根据定时器的定时时间,在主程序中按一定的间隔插入复位定时器的指令,即插入“喂狗”指令,两条“喂狗”指令间的时间间隔(可由系统时钟和指令周期计算出来)应小于定时时间,否则看门狗将发生误动作。
第5章 S7-200系列PLC的基本指令及程序设计-2

●计数器的当前值≠0时,其状态位为0;而它 的当前值=0时,状态位置 1,且停止计数。 ●当装载输入端 LD=1时,减计数器复位:
当前值=设定值,状态位=0。
计数器的应用 举例--计数范围的扩展
【例5-4-1】: 做一个计数器,当计数到200000时, 使Q0.0 = 1。 控制程序如下:
2
手动复位 初始化
●跳转/标号指令必须成对使用,且只能用在同一程 序块中。 ●跳转/标号指令中, n 的范围: 0~255。 ●执行跳转指令后,跳过程序段中各个元件(除定 时器外)的状态不变,保持跳转前的状态。
●跳过程序段中若有定时器:
a.1ms、10ms的定时器,系统会对它们周期 刷新,故会继续计时. b. 对于100ms的定时器,只有执行指令时其 当前值和状态位才会被刷新,因此跳过程序 段中的定时器指令因不执行而停止刷新,会 使定时器计时失准.
跳转、标号指令应用
【例5-3-5】
有一个机械手, 用工作方式开关
选择手动、单步
、自动工作方式
,主程序如下:
6. 子程序
● 在结构化程序设计时,采用子程序可以
优化程序结构,减少扫描时间;
● 与子程序相关的操作有: ※ ※ ※ 建立子程序 子程序调用 子程序返回
1)创建子程序
用命令“编辑” 程序” “插入” “子
第五章 S7-200PLC 基本指令及程序设计-2
河南延龙机电设备有限公司
§5-3 PLC的梯形图程序设计方法
1. 梯形图程序设计的方法 梯形图程序的基本 形式:
X开:开启条件 X关:关断条件 Fk 的自锁触点。
Fk
尽可能是短信号.
线圈Fk: 逻辑运算的中间(或最终)结果;
1)梯形图程序的设计方法:
S7200PLC西门子指令中英文全称对照

指令(英文全称意思) :指令含义1 、LD ( Lode 装载) :动合触点2、LDN ( Lode Not 不装载) : 动断触点3、A ( And 与动合) : 用于动合触点串联4、AN ( And Not 与动断) :用于动断触点串联5、O ( Or 或动合) :用于动合触点并联6、ON ( Or Not 或动断) : 用于动断触点并联7、= ( Out 输出) :用于线圈输出8、OLD ( Or Lode): 块或9、ALD ( And Lode): 块与10、LPS ( Logic Push ) :逻辑入栈11、LRD ( Logic Read ) :逻辑读栈12、LPP ( Logic Pop ) :逻辑出栈13、NOT ( not 并非) :非14、NOP ( No Operation Performed ) : 无操作15、AENO ( And ENO ) : 指令盒输出端ENO相与16、S ( Set 放置) : 置117、R ( Reset 重置,清零) :清零18、P ( uP 上升) :正跳变19、N ( dowN 下降) :负跳变20、TON ( On_Delay Timer ) :通电延时21、TONR ( Retentive On_Delay Timer ) : 有记忆通电延时型22、TOF ( Off_ Delay Timer ) :断电延时型23、CTU ( Count Up ) : 递增计数器24、CTD ( Count Down ) : 递减计数器25、CTDU ( Count Up/ Count Down ) :增减计数器26、ADD ( add 加) : 加注意//ADD_I (_ I 表示整数) ADD_DI( DI表示双字节整数)ADD-R(R 表示实数)它们都是加运算只是数的大小不同!!后面有很多这样的我就略写了!27、SUB ( Subtract 减去,减少) :减28、MUL ( Multiply ) : 乘29、DIV ( Divide ) : 除30、SQRT ( Square root ) : 求平方根31、LN ( Napierian Logarithm 自然对数) : 求自然对数32、EXP ( Exponential 指数的) :求指数33、INC_B ( Increment 增加) :增134、DEC_B ( Decrement 减少) :减135、WAND_B ( Word and 与命令) :逻辑与//其中_B代表数据类型还有W(字节)、DW双字后面几个都是这样的。
西门子应用指令

(1)数量及编号
高速计数器在程序中使用时得地址编号用HCn来表示(在非程序中 有时用HSCn),HC表编程元件名称为高速计数器,n为编号。
HCn除了表示高速计数器得编号之外,还代表两方面得含义:高速计 数器位和高速计数器当前值。编程时,从所用得指令可以看出就是 位还就是当前值。
不同型号得PLC主机,高速计数器得数量对应如表5、7所示。
大家有疑问的,可以询问和交
10
5、1、5 子程序指令
1. 建立子程序 2. 2、 子程序调用 3、 带参数得子程序调用
1、 建立子程序
可用编程软件Edit菜单中得Insert选项,选择 Subroutine,以建立或插入一个新得子程序,同 时在指令树窗口可以看到新建得子程序图标,默 认得程序名就是SBR_n,编号n从0开始按递增 顺序生成,可以在图标上直接更改子程序得程序 名。在指令树窗口双击子程序得图标就可对她 进行编辑。
返回本节
5、2、3 通信
通信指令包括: XMT,自由口发送指令 RCV,自由口接收指令 NETR,网络读指令 NETW,网络写指令 GPA,获取口地址指令
5、2、4 高速计数
1、 高速计数器介绍 2、 高速计数指令 3、 高速计数器得使用方法 4、 应用实例
1、 高速计数器介绍
(1)数量及编号 (2)中断事件类型 (3)工作模式及输入点
2、 写实时时钟
TODW,写实时时钟指令。用来设定实时时钟。 当使能输入有效时,系统将包含当前时间和日期, 一个8字节得缓冲区将装入时钟。
时钟缓冲区得格式如表5、2所示。
•表5、2 时钟缓冲区
程序实例
控制要求:
编写一段程序,可实现读、写实时时钟,并以BCD码显示分钟。时钟 缓冲区从VB100开始。
单片机看门狗(Watchdog)的工作原理及其应用

单片机看门狗(Watchdog)的工作原理及其应用2010年05月16日星期日 23:00在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环。
程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。
所以,出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。
看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行。
这个时候,看门狗电路就会由于得不到单片机送来的信号。
便在它和单片机复位引脚相连的引脚上送出一个复位信号。
使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
看门狗,又叫 watchdog timer,是一个定时器电路。
一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU 正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零。
如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,是MCU复位,防止MCU死机。
看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以,在使用有看门狗的芯片时要注意清看门狗。
单片机汇编语言实现看门狗

CS=0; if(bRegion==0) //write the page addr else WriteByte(cAddress); WriteByte(cData); SCK=0; // CS=1; } uchar ReadEpm(uchar cAddress,bit bRegion) /* 读入一个字节,cAddress 为读入地址,bRegion 为页 */ { uchar cData; while((ReadReg()&0x01)==1);//the device is busy CS=0; if(bRegion==0) else WriteByte(cAddress); cData=ReadByte(); CS=1; return cData; } main() { WriteReg(0x00);//set the watchdog time as 1.4s CS=1; CS=0; } //reset the watchdog
SCK=0; SCK=1; ucData<<=1; } } uchar ReadReg() { uchar ucData; CS=0; WriteByte(RDSR); ucData=ReadByte(); CS=1; return ucData; } uchar WriteReg(uchar ucData) { uchar ucTemp; ucTemp=ReadReg(); if((ucTemp&0x01)==1) //the device is busy return 0; CS=0; WriteByte(WREN);//when write the WREN, the cs must have a high level CS=1; CS=0; WriteByte(WRSR); WriteByte(ucData); CS=1; return 1; } void WriteEpm(uchar cData,uchar cAddress,bit bRegion) /* 写入一个字节,cData 为写入的数,cAddress 为写入地址,bRegion 为页 */ { while((ReadReg()&0x01)==1); //the device is busy CS=0; WriteByte(WREN); //when write the wren , the cs must have a high level CS=1; //write register //read register
PIC汇编语言指令

PIC 8位单片机共有三个级别,有相对应的指令集。
基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。
其指令向下兼容。
一、PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:标号操作码助记符操作数1,操作数2;注释指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。
1标号与MCS-51系列单片机功能相同,标号代表指令的符号地址。
在程序汇编时,已赋以指令存储器地址的具体数值。
汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。
标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。
在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。
指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。
书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。
再有标号不能用操作码助记符和寄存器的代号表示。
标号也可以单独占一行。
2操作码助记符该字段是指令的必选项。
该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。
3操作数由操作数的数据值或以符号表示的数据或地址值组成。
若操作数有两个,则两个操作数之间用逗号(,)分开。
当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。
还可以是被定义过的标号、字符串和ASCⅡ码等。
具体表示时,规定在二进制数前冠以字母“B”,例如B;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。
看门狗的叫门艺术

看门狗的叫门艺术看门狗是人类最早也是最忠实的伙伴之一,它们不仅可以保护我们的家园安全,还可以作为宠物与我们分享生活的点滴。
而其中重要的一项技能就是“叫门艺术”。
本文将探讨看门狗的叫门艺术,并分析其原因和方法。
一、看门狗为何会叫门看门狗是守卫家园的忠诚伙伴,它们的本能驱使它们警觉外来威胁并保护领地。
看门狗会发出叫声来警示主人有陌生人接近或潜在的威胁。
这种叫声可以起到两个重要的作用:一是吓跑潜在侵入者;二是提醒主人有陌生人的到来。
二、看门狗叫门的不同情况及原因1. 陌生人接近看门狗在发现陌生人接近时通常会表现出明显的兴奋和警觉,它们会发出高亢的叫声来警告主人。
这种叫门行为的目的是保护主人和领地,警示陌生人不要靠近。
2. 潜在威胁的到来除了陌生人接近外,看门狗也会因为其他潜在的威胁而叫门。
例如,它们会对有可疑声音或异味的迹象做出反应,发出低沉的叫声来提醒主人。
这种叫门行为旨在让主人意识到可能存在潜在危险,并采取适当的措施。
三、训练看门狗正确的叫门行为虽然看门狗的叫门能力是它们的本能驱使,但是通过正确的训练,我们可以塑造这种行为,使其更加有益且可控。
以下是一些训练方法:1. 社交化训练小狗从小就应该接触各种环境和人群,以便它们能够适应不同的情况和人际交往。
通过正确认识陌生人并逐渐提高狗狗与他人的社交能力,可以减少不必要的叫门行为。
2. 声音指令训练通过声音指令的训练,可以教会狗狗在合适的时机停止叫门。
例如,在听到主人的口令后,狗狗应停止叫门并保持安静。
3. 奖励机制在训练过程中,及时给予狗狗正面的反馈和奖励。
当狗狗按照指令正确地表现出不过度叫门的行为时,主人可以通过口头表扬、食物或玩具等方式奖励狗狗,增强其正面行为。
四、有效管理看门狗的叫门行为除了训练,我们还可以通过其他途径来管理看门狗的叫门行为,以确保其对主人和邻居的生活质量没有负面影响。
1. 控制室内外的视觉和声音使用合适的窗帘或百叶窗来控制室内外的视觉刺激,减少看门狗对外界动静的敏感度。
第5章 S7-200系列PLC的基本指令

电气控制与PLC原理及应用(第2版)
4、 块“与”指令:ALD 用于两个或两个以上并联触点块之间的串联,称之为
并联电路块的串联连接。分支触点块的起始用LD/LDN指 令。
5、块“或”指令:OLD 用于两个或两个以上串联触点块之间的并联,称之为
第5章 S7-200系列PLC的基本指令
内容提要
本章主要以S7-200 CPU 22X 系列PLC的SIMATIC指令 系统为例,主要讲述基本指令的定义、梯形图和语句表 的编程方法,另外还将介绍定时器/计数器最常用的电路。
学习要求
➢掌握基本逻辑指令、程序控制类等指令。 ➢熟练应用所学的基本指令进行简单的程序。 ➢熟练掌握梯形图和指令表两种编程语言之间的转换。 ➢通过定时器/计数器简单电路编程的学习,建立独立的 编程思想,培养分析与解决实际问题的能力。
7、置位和复位指令 (1)S,置位指令 (2)R,复位指令 置位即置1,复位即置0。置位和复位指令
可
以将位存储区的某一位开始的一个或多个(最多
可达255个)同类存储器位置1或置0。这两条指 令
在使用时需指明三点:操作性质、开始位和位的
电气控制与PLC原理及应用(第2版)
(1)置位指令 : S bit,N 将位存储区的指定位(位bit)开始的N个同类存 储器位置位。
电气控制与PLC原理及应用(第2版)
指令编程使用说明:
(1)LD、LDN指令用于与梯形图左侧母线相连的触点, 也可以与OLD、ALD指令配合使用于分支回路的开头。 (2)并联的=指令可以连续使用任意次。 (3)LD、LDN指令的操作数:I,Q,M,SM,T,C, V,S;=指令的操作数:Q,M,SM,T,C,S。 (4)在同一程序中不能使用双线圈输出,即同一元器件在 同一程序中只能使用一次=指令。 注意: =指令不能用于驱动输入继电器I的线圈。
电气控制与PLC(王永华编)

第二章电气控制线路基础2.1 电气控制线路图形、文字符号及绘制原则:P37~43 2.2 三相笼式异步电动机的基本控制线路一.全压启动控制线路1.原理2.保护:短路、过载、欠压和失压保护。
3.自锁二.点动控制线路三.多点控制线路四.正反转控制线路互锁五.顺序控制线路六.自动循环控制线路限位开关:SQ1、SQ2 限位保护:SQ3、SQ42.3 三相笼型异步电动机降压启动控制线路较大容量的笼型异步电动机(大于10KW)直接启动时,电流为其标称额定电流的4~5倍,会对电网产生巨大冲击,所以一般都采用降压启动(启动时降压,运行时全压)。
一.Y-△降压启动启动时为Y正常运行时为△二.自耦变压器降压启动三.软启动:P51~562.4 三相异步电动机制动控制线路制动控制方法分:机械制动:用机械装臵强迫电动机迅速停车电气制动:给电动机加一个与原来旋转方向相反的制动转矩,迫使电动机迅速下降。
一.反接制动控制1.单向运行反接制动2.可逆运行反接制动二.能耗制动控制1.电动机单向运行能耗制动2.电动机可逆运行能耗制动2.5 三相笼型异步电动机调速控制一.调速方法p s f s n n o )1(60)1(1-=-=三种:变极对数p 的变极调速、变转差率s 的降压调速和变电动机供电电源频率f 1的变频调速。
二.变极调速控制线路 变极电动机一般有双速、三速、四速之分,双速电动机装有一套绕组,而三速、四速则为两套绕组。
三.变极调速:控制最复杂,性能最好。
P63~67 2.6 电气控制线路的简单设计法一.简单设计法介绍:68~71二.设计举例2.7 典型生产机械电气控制线路分析一.电气控制线路分析的内容与要求1.内容:电气说明书、电气控制原理图2.分析方法:主电路→控制电路→总体检查二.常用机床电气控制1.C650卧式车床电气控制线路分析①机床的主要结构和运动形式②电气控制线路分析:P762.M7475型平面磨床电气控制线路例:一台4级带送机,由4台笼型电动机拖动,要求按以下设计控制电路。
看门狗芯片的选择与软件控制

”芯片的选择及软件控制看门狗”“看门狗作为一种解决微处理器因干扰而死机的有效方法,目前看门狗基本上已经成为MCU的必备辅助外围电路。
笔者在单片机应用开发中对于看门狗的使用积累了一定的经验,下面以看门狗在MCU系统中的应用为例,与同行们做一下交流。
看门狗的工作原理看门狗是由英文“WATCH DOG”翻译过来的,它的设计使用目的是做微处理器的一个监控者。
微处理器在运行中会受到各种各样的干扰,如电源及空间电磁干扰,当它们超过抗干扰极限的时候,就有可能引起微处理器死机。
尤其在MCU的应用环境中,更容易受到复杂干扰源的干扰影响。
有了看门狗这个监控,就能够在MCU死机后,重新使它复位恢复运行。
看门狗电路本身是一个带清除端和溢出触发器的定时器,如果不清除它,它就以固定频率发出溢出触发脉冲。
实际使用中把这个触发输出引入到MCU的复位端,使用MCU的一个I/O控制它的清除端。
看门狗的监控思路是:MCU正常运行时,软件被设计成定时清除看门狗定时器,而一旦MCU死机,这时认为MCU不再发出清除脉冲,看门狗定时器溢出,则自动复位MCU。
看门狗芯片的选择早期的看门狗电路一般都是使用NE555或者CD4060等定时芯片搭建的,直到目前,仍旧有一些书籍和刊物介绍这些电路,实际上它们早已被独立的看门狗芯片取代了。
提到看门狗,则必须提一下电源监控和上电复位电路。
为了使用者的方便,现在的芯片都把上电复位、电源监控及看门狗集成到一起,如IMP813L就是这样一款芯片。
还有的芯片更是把EEPROM也集成进去,如X5045芯片。
现在的MCU被集成了越来越多的功能,有的集成了看门狗,如PHILIPS的P89C51RX2,有的干脆把电源监控和上电复位及RC时钟也集成了进去,如PHILIPS的P87LPC762。
使用者可以根据自己所选择的具体MCU来配置外围看门狗电路及电源监控,除了对功能的选择外,使用看门狗还应该注意它的复位门限电压,一定要确保MCU在看门狗芯片的最小复位门限电压下可以正常工作。
PIC看门狗定时器WDT(watch dog timer)的理解

PIC 看门狗定时器WDT(watch dog timer)的理解pic 单片机看门狗计时器(Watch Dog Timer)是一个片内自振式的RC 振荡计时器,无需任何的外接元件。
这意味着即使芯片OSC1/OSC2 上振荡停止了(例如执行指令SLEEP 后),WDT 照样保持计时。
WDT 计时溢出将产生RESET。
在PIC16C5X 芯片内有一个特殊的谓之”定义EPROM”(Configuration EPROM) 的单元,其中的一个位是用于定义WDT 的。
你可以将其置”0”来抑制WDT 使之永远不起作用。
这将在第七章的烧写器介绍部分详细说明,请参阅。
1、WDT 周期WDT 有一个基本的溢出周期16ms(无预分频器pic16F917),如果你需要更长的WDT 周期,可以把预分频器分配给WDT,最大分频比可达1:128,这时的WDT 溢出周期约为2.5S。
pic16F917 看门狗还提供了一个16 位的预分频器,使WTD 的超时值提高到268s。
WDT 溢出周期和环境温度、VDD 等参数有关系,请参阅附录的图表。
“CLRWDT”和”SLEEP”指令将清除WDT 计时器以及预分频器里已有的计数值(当预分频器分配给WDT 时)。
WDT 一般用来防止系统失控或者说防止单片机程序运行”失控”。
在正常情况下,WDT 应在计满溢出前被CLRWDT 指令清零,以防止产生RESET。
如果程序由于某种干扰而失控,那么不能在WDT 溢出前执行一条CLRWDT 指令,就会使WDT 溢出而产生RESET,使系统重新启动运行而不至失去控制。
若WDT 溢出产生RESET,则状态寄存器STATUS 的”TO”位会被清零,用户程序可藉此判断复位是否由WDT 溢时所造成。
2、pic 单片机WDT 编程注意事项如果使用WDT,一定要仔细在程序中的某些地方放一条”CLRWDT”指令,以保证在WDT 在溢出前能被请零。
否则会造成芯片不停地产生RESET,使系。
看门狗指令专讲

看门狗复位指令WDR(Watch Dog Reset)无操作数,看门狗复位指令又称看门狗,在S7-200CPU程序系统中允许看门狗定时器被重新触发(复位),这样可以增加此扫描所允许的时间。
如果强烈的外部干扰使PLC偏离正常的程序执行路线.看门狗定时器不再被复位,定时时间到时,PLC将停止运行,看门狗定时器定时时间的默认值为500ms。
当PLC的特殊I/O模块和通信模块的个数较多时进入RUN模式时对这些模块的缓冲存储器的初始化时间较长,可能导致看门狗定时器动作。
带数字量输出的扩展模块也存一个监控定时器,每次使用看门狗复位指令,应该对每个扩展模块的某一个输出字节使用一个立即写指令(BIW)来复位每个模块的看门狗。
如果FOR-NfEXT循环程序的执行时间过长,可能超过监控定时器的定时时间,可以将WDR指令插入到循环程序中,而且在终止本次扫描之前,下列操作过程将被禁止。
通信(R由端口方式除外),I/O更新(立即I/O除外),强制更新。
SM位更新(SM0,SM5〜SM29不能被更新),运行时间诊断,由于扫描时间会超过25s, 10ms和100ms定时器将不会正确累计时间,在中断程序中的STOP指令,如果带数字输出的扩展模块没有被S7-200写,则此看门狗定时器将关断输出。
跳转指令JMP若在它对应的标号之后(即程序往回跳),可能因连续反复跳步使它们之间的程序被反复执行,使监控定时器动作。
为了避免出现这样的情况.可以在]MP 指令和对应的标号之间插入WDR指令。
使用WDR指令时要小心,因为如果用循环指令去阻止扫描完成或过度地延迟扫描完成的时间。
那么在终止本次扫描之前,下列操作过程将被禁止:•通信(自由端口方式除外)•I/O更新(立即I/O除外)。
•强制更新。
•SM位更新(SM0,SM5〜SM29不能被更新)。
•运行时间诊断。
•由于扫描时间超过25s,10ms和100ms定时器将不会正确累计时间。
•在中断程序中的STOP指令。
51单片机 c语言看门狗程序怎么写

51单片机c语言看门狗程序怎么写看门狗在51单片机电路里的作用是防止程序“跑飞”、“死机”后,系统不动作,而采取复位的办法“唤醒”系统。
89S51、89S52系列单片机自带有看门狗功能,片内数据区A6H寄存器具有看门狗功能,使用很简单:#include<reg51.h>...sfr WDTRST = 0xA6;...void main(){WDTRST=0x1E;;//初始化看门狗WDTRST=0xE1;//初始化看门狗for(;;){WDTRST=0x1E;;//喂狗指令WDTRST=0xE1;//喂狗指令}}可见,你只要在程序的大循环体内加一条喂狗指令就行。
但这种看门狗功能有限,不是很可靠的,它依靠晶振工作,一旦晶振不起振,就无效了。
实践中多采用外部看门狗的方法,可以选用的芯片很多:MAX708、MAX813、X25045.....具体编程就要看芯片的参考资料了。
例如:X25045是SPI总线的看门狗芯片,复位端和单片机复位端连接,SPI数据输入你可以选择合适的IO接口。
WREN 0x06 设置写允许位WRDI 0x04 复位写允许位RDSR 0x05 读状态寄存器WRSR 0x01 写状态寄存器READ 0x03/0x0b 读操作时内部EEPROM页地址WRITE 0x02/0x0a 写操作时内部EEPROM页地址#include <reg51.h>sbit CS= P2^7;sbit SO= P2^6;sbit SCK= P2^5;sbit SI= P2^4;#define WREN 0x06 //#define WRDI 0x04 //#define RDSR 0x05 //#define WRSR 0x01 //#define READ0 0x03 //#define READ1 0x0b //#define WRITE0 0x02 //#define WRITE1 0x0a //#define uchar unsigned charuchar ReadByte() //read a byte from device{bit bData;uchar ucLoop;uchar ucData;for(ucLoop=0;ucLoop<8;ucLoop++){SCK=1;SCK=0;bData=SO;ucData<<=1;if(bData){ ucData|=0x01; }}return ucData;}void WriteByte(uchar ucData)//write a byte to device {uchar ucLoop;for(ucLoop=0;ucLoop<8;ucLoop++){if((ucData&0x80)==0) //the MSB send first{SI=0;}else{SI=1;}SCK=0;SCK=1;ucData<<=1;}}uchar ReadReg() //read register{uchar ucData;CS=0;WriteByte(RDSR);CS=1;return ucData;}uchar WriteReg(uchar ucData) //write register{uchar ucTemp;ucTemp=ReadReg();if((ucTemp&0x01)==1) //the device is busyreturn 0;CS=0;WriteByte(WREN);//when write the WREN, the cs must have a high levelCS=1;CS=0;WriteByte(WRSR);WriteByte(ucData);CS=1;return 1;}void WriteEpm(uchar cData,uchar cAddress,bit bRegion)/* 写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页*/ {while((ReadReg()&0x01)==1); //the device is busyCS=0;WriteByte(WREN); //when write the wren , the cs must have a high levelCS=1;CS=0;if(bRegion==0){ WriteByte(WRITE0);} //write the page addrelse{WriteByte(WRITE1);}WriteByte(cAddress);WriteByte(cData);SCK=0; //CS=1;}uchar ReadEpm(uchar cAddress,bit bRegion)/* 读入一个字节,cAddress为读入地址,bRegion为页*/{uchar cData;while((ReadReg()&0x01)==1);//the device is busyCS=0;if(bRegion==0)else{WriteByte(READ1);}WriteByte(cAddress);cData=ReadByte();CS=1;return cData;}main(){WriteReg(0x00);//set the watchdog time as 1.4sCS=1;CS=0; //reset the watchdog}回复:xuzhimin9514所有的89S系列都带狗,所有的80C系列都不带狗。
STM8L看门狗手册

独立看门狗
简介
独立看门狗是当发生硬件或者软件错误时恢复系统。
这一外设被38KHz时钟驱动,因此主时钟停止后,它仍然工作。
独立看门狗功能描述
将0xCC写入IWDG_KR寄存器将启动看门狗功能,从复位后0xFF开始计数递减。
若减至0x00时,系统将复位。
一旦使能看门狗,看门狗可以通过IWDG_PR和IWDG_RLR寄存器来设置。
IWDG_PR用来对计数时钟选择预分频。
每当KEY_REFRESH的数值(0xAA)写入到IWDG_KR寄存器时,独立看门狗将用IWDG_RLR的数值刷新计数器的内容,从而避免了产生看门狗的复位。
IWDG_PR和IWDG_RLR寄存器具有写保护功能,要修改它们前,需首先在IWDG_KR寄存器写入KEY_ACCESS代码(0x55);在IWDG_KR写入0xAA将恢复写保护状态。
硬件看门狗功能
如果在IWDG_HW选择字节中使能了硬件看门狗的功能,在芯片上电时看门狗的功能被自动开启,如果软件不能及时操作键寄存器,则在计数器达到0x00时产生复位。
关于选择字节的内容请参考数据手册中的说明。
超时周期
超时周期由计数器数值和时钟预分频器决定,下表列出了它们的数值。
在停机模式或者活跃停机模式中使用独立看门狗
通过设置IWDG_HALT寄存器,在停机或活跃停机模式中独立看门狗可以正常工作。
它可以唤醒该器件。
注:为了使用这一功能,避免看门狗错误复位,在执行HALT指令之前,独立看门狗溢出时间和重装看门狗必须设置正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
警戒时钟的定时时间为300毫秒,每次扫描它都被自动复位一次,正常工作时,如果扫描周期小于300毫秒,警戒时钟不起作用。
如果强烈的外部干扰使可编程控制器偏离正常的程序执行路线, 警戒时钟不再被周期性的复位,定时时间到, 可编程控制器将停止运行。
若程序扫描的时间超过300毫秒,为了防止在正常的情况下警戒时钟动作,可将警戒时钟刷新指令(WDR)插入到程序中适当的地方,使警戒时钟复位。
这样,可以增加一次扫描时间。
指令格式如图4-65所示。
LD M2.5 // M2.5接通时 WDR //重新触发WDR , 允许扩展扫描时间
工作原理:当使能输入有效时,警戒时钟复位。
可以增加一次扫描时间。
若使能输入无效,警戒时钟定时时间到,程序将终止当前指令的执行,重新启动,返回到第一条指令重新执行。
注意:如果使用循环指令阻止扫描完成或严重延迟扫描完成,下列程序只有在扫描循环完成后才能执行::通信(自由口方式除外), I/O 更新(立即I/O 除外),强制更新,SM 更新,运行时间诊断,中断程序中的STOP 指令。
10毫秒和100毫秒计时器对于超过25秒的扫描不能正确地累计时间。
注意:如果预计扫描时间将超过500毫秒,或者预计会发生大量中断活动,可能阻止返回主程序扫描超过500毫秒,应使用WDR 指令,重新触发看门狗计时器。
图4-65 WDR 指令格式。