pic单片机看门狗(单片机看门狗定时器)

海潮机械 2022-12-19 16:21 编辑:admin 295阅读

1. 单片机看门狗定时器

1、高性能、低功耗且具有代码预取功能的8051微控制器内核

2、符合2.4GHz IEEE802.15.4标准的优良的无限接收灵敏度和抗干扰性能2.4G RF收发器

3、低功耗,低功耗是作为物联网应用的一个最重要的特性:a、主动模式RX(CPU空闲):24mA;b、主动模式TX在1dBm(CPU空闲)29mA;c、 供电模式1(4us唤醒):0.2mA;d、 供电模式2(睡眠定时器运行):1uA;e 、供电模式3(外部中断):0.4uA。

4、支持硬件调试

5、支持精确的数字化RSSI/LQI和强大的5通道DMA

6、IEEE 802.15.4 MAC定时器,通用定时器

7、具有IR发生电路

8、具有捕获功能的32kHz睡眠定时器

9、硬件支持CSMA/CA功能

10、具有电池监测功能和温度传感功能

11、具有8路输入和可配置分辨率的12位ADC

12、集成AES安全协处理器

13、两个支持多种串行通信协议的强大USART

14、21个通用I/O引脚(19*4mA,2*20mA)

15、看门狗定时器

16、强大灵活的开发工具

2. 单片机看门狗定时器怎么设置

1、D8000 的值是固定的,它是用来存储一个目标值以供与看门狗定时器作对比,而看门狗定时器由程序开始运行的时候就开始累加;

2、WDT指令用来清零看门狗定时器,至于该定时器对应的寄存器地址,说明书貌似没有给出;

3、程序陷入死循环或执行时间过长,定时器没有清零,而超出设定值,在MCU(单片机)上是会复位MCU令其重启,FX PLC 则会罢工报错,等你来处理。

不能防止死机(死不死机是环境以及程序所造成的),只能提醒你死机了,MCU实质上是自动帮你给出了操作,死机就重启,再死机再重启,程序有问题没有解决的话,就是不断的隔一段时间就重启。

其主要用于环境(干扰)或误操作造成的程序运行异常。

4、看门狗主要用于防止程序的跑飞,至于硬件死机!硬件那么容易死掉,谁还会买!?

3. 单片机看门狗功能

第一:看门狗需要设置一下时间,就是多长时间复位一次,在没有喂狗的前提下。默认是不复位,可以设其它几种时间,用编程器进行设置。这也算编程的一种方式。

第二:单片机程序里需要不停地喂狗,这个程序是写在单片机中的。

4. 单片机中看门狗定时器的作用

重要。看门狗(WDT)是一个定时器。看门狗是用来防止万一单片机程序出错造成重大损失的。防错的原理很简单,它在硬件上就是一个定时器,当它溢出的时候就会让单片机强制复位使程序重新开始执行。

正常的情况下是不能让它溢出的,所以在程序上每隔一段时间要给他置一次值(俗称喂狗),只要程序中正常给它喂他就不会溢出。

一旦程序跑飞了,有干扰或者进入死循环之类的情况时,不能正常执行程序了,那么就永远执行不到喂狗的指令了,但此时定时器是硬件控制的,仍然会走,所以溢出了,单片机就复位了。

一般安全性要求比较高的,系统跑飞了会造成重大事故的都会加一个“狗”保安全。

5. 单片机看门狗定时器的详细资料说明

监控定时器( watchdog)又称看门狗,它的定时时间为300ms,每次扫描它都被自动复位一次,正常工作时如果扫描周期小于300ms,监控定时器不起作用。

如果强烈的外部干扰使plc(可编程序控制器)偏离正常的程序执行路线,监控定时器不再被周期性地复位,定时时间到时,plc(可编程序控制器)将停止运行。

6. 单片机看门狗定时器的作用

具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

7. 单片机看门狗定时器怎么用

对于裸奔的程序,最理想的看门狗是程序只在主循环中加一个喂狗,计算主循环执行一个循环的最长时间的1.5倍作为看门狗定时器的时间,这样只要程序超出了预计的时间未回到主循环,就会自动复位。

这样的程序尽量不要让中断服务函数占用太多的处理器资源,将耗费处理器资源的工作放在程序的主循环中,可以更有效的利用看门狗。

8. 看门狗实际是一个简单的定时器

短接SET,按上下按钮设置楼层,WDT是英语Watchdog Timer的缩写字母。

Watchdog Timer 中文名看门狗。是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

9. plc看门狗定时器是什么

一、PIC汇编语言指令格式

  PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:

  标号 操作码助记符 操作数1,操作数2;注释

  指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。

  1标号 与MCS-51系列单片机功能相同,标号代表指令的符号地址。在程序汇编时,已赋以指令存储器地址的具体数值。汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。

  书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。再有标号不能用操作码助记符和寄存器的代号表示。标号也可以单独占一行。

  2操作码助记符 该字段是指令的必选项。该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。

  3操作数 由操作数的数据值或以符号表示的数据或地址值组成。若操作数有两个,则两个操作数之间用逗号(,)分开。当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。还可以是被定义过的标号、字符串和ASCⅡ码等。具体表示时,规定在二进制数前冠以字母“B”,例如B10011100;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。在这里PIC 8位单片机默认进制是十六进制,在十六进制数之前加上Ox,如H2F可以写成Ox2F。

  指令的操作数项也是可选项

  PIC系列与MCS-51系列8位单片机一样,存在寻址方法,即操作数的来源或去向问题。因PIC系列微控制器采用了精简指令集(RISC)结构体系,其寻址方式和指令都既少而又简单。其寻址方式根据操作数来源的不同,可分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。所以PIC系列单片机指令中的操作数常常出现有关寄存器符号。有关的寻址实例,均可在本文的后面找到。

  4注释 用来对程序作些说明,便于人们阅读程序。注释开始之前用分号(;)与其它部分相隔。当汇编程序检测到分号时,其后面的字符不再处理。值得注意:在用到子程序时应说明程序的入口条件、出口条件以及该程序应完成的功能和作用。

  二、清零指令(共4条)

  1寄存器清零指令

  实例:CLRW;寄存器W被清零

  说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。

  2?看门狗定时器清零指令。

  实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器)

  说明:WDT是英语Watchdog Timer的缩写字母。CLR见上述说明。注意该两条指令无操作数。

  3寄存器f清零指令。指令格式:CLRF f

  实例:CLRF TMRO;对TMRO清零

  说明:在PIC系列8位单片机中,常用符号F(或f)代表片内的各种寄程器和F的序号地址。F取值按PIC系列不同型号而不同,一般为Ox00~Ox1F/7F/FF。TMRO代表定时器/计数器TMRO,所以CLRF对寄程器清零,采用了直接寻址方式直接给出要访问的寄存器TMRO。

  4位清零指令。指令格式 BCF f,b

  实例:BCF REG1,2;把寄存器REG1的D2位清零

  说明:BCF是英语Bit Clear F的缩写。指令格式中的F,同上说明;符号b是表示PIC片内某个8位数据寄存器F的位号(或位地址),所以b的取值为0~7或D0~D7。实例中REG是Register的缩写。实例中的2代表指令格式中的b=2即寄存器REG1的D2位。

  通过上述四条清零指令格式和实例,可以说明,学习PIC系列8位单片机的指令时应首先了解指令的助记符意义(功能),再有就是它的表达方式。初学者没有必要死记指令,重要是理解和实践。

  三、面向字节、常数与控制操作的指令

  1传送立即数至工作寄存器W指令

  指令格式:MOVLW k;k表示常数、立即数和标号

  说明:MOVLW是Move Literal to w的缩写

  实例:MOVL 0x1E;常数30送W

  2I/O口控制寄存器TRIS设置指令

  指令格式;TRIS f

  说明;TRIS f是Load TRIS Register的缩写。其功能是把工作寄存器W的内容送入I/O口控制寄存器f。当W=0时,置对应I/O口为输出;W=1,置I/O口为输入。

  实例:MOVLW 0x00 ;把00H送入W

  TRIS RA ;置PIC RA口为输出

  MOVLW 0xFF ;把FFH送入W

  TRIS RB ;置PIC RB口为输入

  说明:这是PIC汇编语言中常用的几条指令,即设置某个I/O口(这里是RA口和RB口)为输入或输出的语句。可见,识读指令时,一应充分理解语句格式的功能,二应前后联系阅读。

  3?W寄存器内容送寄存器f(W内容保持不变)指令

  指令格式:MOVWF f

  说明:MOVWF是Move W to f的缩写

  实例:MOVLW 0x0B;送0BH送W

  MOVWF 6 ;送W内容到RB口

  说明:第一条指令0x0B(常数11)送工作寄存器W,第二条指令,把W内容常数11送到寄存器F6中,查表F6即为RB口,所以PORT_B(B口)=0BH=D11

  4寄存器f传送指令

  指令格式:MOVF f,d

  说明:MOVF是Move f的缩写。F代表PIC中的某个寄存器。指令中的d规定:d=0时,f内容送W;d=1时,f内容送寄存器。

  实例:MOVF 6,0 ;RB口内容送W

  MOVWF 8  ;RB口内容送f8

  说明:第一条指令中的6代表寄存器f=6,查寄存器表f=6为RB口;0代表d=0,代表选择的目标为寄存器W。第二条指令中的8代表寄存器f=8。所以两条指令结果是把RB口的内容送f8。至于f8内容是多少?还应在汇编语言开始时附加指令,这里从略。

  5空操作指令

  指令格式:NOP

  说明:NOP是英语No Operation的缩写。NOP无操作数,所以称为空操作。执行NOP指令只使程序计数器PC加1,所以占用一个机器周期。

  实例:MOVLW 0xOF   ;送OFH到W

  MOVWF PORT_B ;W内容写入B口

  NOP      ;空操作

  MOVF PORT_B,W ;读操作

  说明:该三条指令是一种对I/O口的B口连续操作的实例,其目的达到写入B口的内容要读出时,应保证写、读之间有个稳定时间,因此加入了空操作指令NOP。

  6无条件跳转指令

  指令格式:GOTO k

  说明:执行该条指令时,将指令转移到指定的地址(跳转)。指令中的k,常与程序中的标号联系起来。

  实例:见第9条指令中

  7寄存器内容减1,结果为零的间跳指令

  指令格式:DECFSZ f,d

  说明:DECFSZ是英语Decrement f,Skip of not 0的缩写。符号f,d代表的意义,前述已作说明。该条指令是指寄存器的内容减1存入W(d=0)或f(d=1)中。若指令执行结果减1不为零,指令顺序执行;为零时,就间跳下一条指令后再执行(等效顺序执行一条空指令NOP),实际指令中,当d=1时,该项常被略去。

  8寄存器内容加1,结果为零间跳指令

  指令格式:INCFSZ f,d

  说明:INCFSZ是英语Increment f,Skip of 0的缩写。该条指令与上一条(7)指令差别仅在于“1”上,即执行这条指令时,寄存器f内容加1,若结果不为零,则指令顺序执行;为零则指令间跳执行。执行这条指令的其它逻辑关系与上条相同。

  9子程序返回指令

  指令格式:RETLW k

  说明:RETLW是Return Literal to W的缩写。该指令代表子程序返回,返回前先把8位立即数送W。

  实例:PIC某个汇编语言的延时子程序(摘要):

  (1)BELY MOVLW 0xC5 ;送延时常数0C5H入W

  (2)   MOVWF COUNT2;0C5H送入计数器2

  (3)   CLRF COUNT1;对计数器1清零

  (4)LOOP INCFSZ COUNT1;计数器1加1计数器1加

  1结果不为零,跳转循环

  (5)   GOTO LOOP ;

  (6)   DECTSZ CPUNT2 ;计数2减1计数器2减1

  结果不为零,跳转循环重

  复执行第4条指令

  (7)   GOTO LOOP ;

  (8)   RETLW 0   ;子程序执行结束返回

  说明:程序中的注释已分别对每条指令的功能作了说明,补充说明1?当执行第(4)条加1指令结果为零时,就间跳转到执行第(6)条指令。2?当执行第(6)条减1指令结果为零时,就间跳转到第(8)条子程序返回,整个延时指令才算完成。3?计数器1或2代表PIC中某个寄存器,该寄存器由程序开始的伪指令赋值决定(关于伪指令今后将作专门介绍)。

  本文关于指令的注释将与前述指令中的略有不同。前述指令注释时是对指令具体完成的功能给以说明,这种注释方法对初学者确实易于接受和理解,但是实际应用中的PIC产品汇编语言的注释通常是以程序要做什么(或指令的作用)而不是说指令的直接功能。鉴于上述原因,下述的指令注释将改变过去的注释方法,用程序应起的作用作注释。

  10寄程器半字节交换指令

  指令格式:SWAPF f,d

  说明:SWAPF是Swap f的合写。符号f、d的意义与前述的相同。该条指令的功能是寄存器f的高4位与低4位交换,即指令执行前,若寄存器f的8位状态为D7、D6、D5、D4、D3、D2、D1、D0,执行后的8位状态变为D3、D2、D1、D0、D7、D6、D5、D4,其结果存入W(d=0)或f(d=1)中。

  实例:中断现场保护是中断技术中重要部分。由于PIC16C××指令系统中没有进栈PUSH和出栈POP指令,所以只能用其它指令来实现。因为在主程序中常常用到工作寄存器W和状态寄存器STATUS,所以中断现场保护常要保护寄存器W和STATUS。

  下面是对PIC16C7×系列芯片中断现场保护的实例程序。

  MOVWF W_TEMP   ;将W内容存入到临时寄存器

  W_TEMP中

  SWAPF STATUS,W  ;交换STATUS与W内容

  MOVWF STATUS_TEMP ;将STATUS的内容存入到临

  …           时寄存器STATUS_TEMP中

  中断服务程序

  …

  SWAPF STATUS_TEMP,W;交换STATUS_TEMP与W

  的内容

  MOVWF STATUS    ;STATUS复原成原来的状态

  SWAPF W_TEMP,F   ;交换内容

  SWAPF W_TEMP,W  ;W复原成原来的状态

  说明:上述程序中各条指令的注释基本上都是以程序应达到的目的而注释的,对每条指令的功能几乎未涉及。这是初学者应特别注意的。

  11子程序调用指令(Subroutine Call)

  指令格式:CALL k;k为立即地址

  说明:子程序调用,不同型号芯片的实现方法不尽相同,其共同点是首先将返回地址((PC)+1)压栈保护,再转入所调用的子程序入口地址执行(与MCS-51指令功能相似)。

  指令格式模式:HERE CALL DELAY;调用延时子程序

  …

  DELAY MOVLW 0x80 ;延时子程序

  RETLW 0

  说明:调用指令执行前,PC=地址HERE

  调用指令执行后,PC=地址DELAY(标号),堆栈指针TOS=HERE+1(返回地址)。

  实例:见下条指令的实例

  12寄存器内容取反指令

  指令格式:COMF f,d

  说明:COMF是Complement f的缩写。其中d=1时,操作(f)→f;d=0时,操作(f)→w。

  功能:寄存器f内容取反后送入W(d=0)或f自身(d=1)。

  实例:  ORG   0x1FF

  GOTO MAIN

  ORG   0

  DELAY …

  MAIN MOVLW 0 ;主程序开始

  TRTS 5 ;设置RA口为输出

  BCF 5,0  ;置RA口0位为0

  LOOP   CALL DELAY;闪动延时

  COMF 5? ;RA口求反(亮—灭—

  亮……控制)

  GOTO LOOP ;循环

  …

  说明:上述指令是一种PIC16C54 LED发光控制实验部分程序。其中延时子程序DELY未列出,但不影响本条指令的识读。程序中的主程序开始的三条指令,均已介绍过,紧跟着的CALL指令是调用执行子程序,其入口地址为标号DELAY。子程序执行结束后,又执行COMF 5的LED发光亮—灭…亮—灭……控制指令。后面一条GOTO LOOP指令是达到LED循环点亮目的。

  13面向位的操作指令(共4条,PIC高级产品多增一条)

  该类指令除一条位清零外,另有一条寄存器f位b的置1指令和另外两条位跳步指令(PIC高级产品多增一条f的b位触发转换指令)。

  (1)位置1指令。指令格式 BSF f,b

  说明:BSF是Bit Set f的缩写。F和b的意义与前述相同,该条指令的功能是将寄存器f的b位置1。

  (2)位测试、为零间跳指令。指令格式 BTFSC f,b

  说明:BTFSC是Bit Test,Skip if Clear的缩写。指令功能是测试寄存器f位“b”,如为0,跳过下一条指令;为1顺序执行,即当f(b)=0时,就不执行当前指令而执行下一条指令(间跳),即用一条空指令NOP代替它,所以该条指令占用2个指令周期。

  (3)位测试、为1间跳指令。指令格式 BTFSS f,b

  说明:BTFSS是Bit Test,Skip if Set的缩写。其指令的逻辑功能与上条相反,位测试f(b)=1就间跳执行,f(b)=0顺序执行。