C51单片机有软件看门狗吗?怎么用?开关电源请教
首先 ,你要知道什么是看门狗?
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。
其次,看门狗的工作原理是什么?
在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗(俗称喂狗)。
下面这段程序是我成功调试过了的,看门狗寄存器的各位的具体的意义,你可以自己去看下单片机的PDF文档,里面有详细的介绍...................
#include 52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sfr WDT_CONTR=0xe1;/*看门狗寄存器声明*/
sbit led1=P1^0; /*接发光二极管*/
void delayms(uint xms) /*延时函数*/
{
uint i,j;
for(i=xms;i>0;i--) /*i=xms即延时约xms毫秒 */
for(j=110;j>0;j--);
}
void main()
{
WDT_CONTR=0x35;
led1=0;
delayms(500);
led1=1;
while(1)
{
delayms(1000);
// WDT_CONTR=0x35;/*喂狗,如果这句话不加的话单片机就 会一直复位,看到的现象是发光二极管闪烁,加上这句的话,发光二极管一直亮着,所以在实际工程应用的时候通常要在程序里面调用比较频繁的函数内部写上这句话*/
}
}
/*******************************************************************
喂狗的技巧:如果一个大循环少于看门狗益处时间,
放在while(1)哪个地方都可以啊,如果大于,看下
哪个地方停顿时间长就放哪
*********************************************************************/
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"
看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位.
另外电源呢,要看你考虑哪个方面。变压器电源整流滤波后的纹波较小,但是缺点是效率较低(用LDO会稍微好一点,但是你的压差太大,单片机5V的话12-5=7V,建议更换AC9V的变压器)。
而开关电源就相反,纹波较大,一般要50MV以上吧,而78XX系列的做到10MV很容易,但效率会比较高,一般应该在80%吧。同时如果你吧开关电源的电路和单片机等弱电电路做在一个板上,会产生比较大的干扰,如果用的话要注意抗干扰措施。
建议不强调效率的情况下用变压器产生电源。
(以上回答均为本人理解,如有不当之处还请见谅)
应当换开关电源比较好,软件看门狗可以,自己编个中断程序,比对时间就可以做一个软狗了。
选stc89c58,里面带硬件看门狗,抗干扰性能较好
最好不要用开关电源,纹波大,对震荡电路有影响
如果使用开关电源,最好加一级线形电源转换 缓冲一下
用STC系列单片机替换阿,引脚都是兼容的
单片机编程用什么软件(51单片机编程用什么软件)
keil最流行...我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真...
手机有51单片机的烧录软件吗
没有。根据查询信息得到首先要看你的单片机是什么型号的,就目前的51单片机,还没有一款可以用手机烧录程序的,都必须用电脑。
51单片机,除了keil软件,还有什么软件用来开发程序啊?
keil、IAR for 8051、TASKING51,这些都可以给51单片机写程序。
学51单片机,除了要用keil外,还要用什么软件么?
下载个 Proteus 仿真软件吧, 没有仿真板 在电脑上仿真 看自己的程序是否正确,再下载 些仿真 实例,参考 人家的编程 会 对自己 有帮助的。
51单片机指令的机器代码在软件中的表示
在编写51单片机的程序时,程序员通常不需要直接编写机器代码,而是使用汇编语言或高级语言编写程序,然后通过编译器将程序转换成机器代码。编译器会将汇编指令或高级语言语句转换成对应的机器代码,并将这些机器代码存储在单片机的程序存储器中,以供单片机执行。总之,51单片机指令的机器代码在软件中是以十六...
51单片机的仿真软件哪个好
如果要软件仿真的话,当然是用PROTEUS,51单片机的KEIL编程器可以和PROTEUS联合起来,进行调试;如果要硬件仿真的话,建议用multisim
51单片机程序运行和仿真器运行有啥区别
有仿真器运行可以实时看到单片机内部寄存器的值,方便调试用。而且还可以控制程序执行到哪步停止,更好的解释程序运行原理,也更加容易找出出错的地方。
51单片机学习都用到那些软件
软件keil,编程用的,同时用来编译仿真。也可以用Proteus仿真,初学者这个软件不错。硬件的话可以买个开发板,不用买太贵的,也可以自己做。买的时候会送
学习单片机都需要哪些软件?
如果你是初学者建议学习51系列,这样的话网上的学习资源会后很多。单片机自身完成不了什么任务需要有外电路的配合,所以你需要购买一块51单片机开发板或者你如果嫌麻烦或者经济上不允许的话也可以用软件仿真,比如proteus软件,它可以构建单片机的外围电路,让单片机完成一定的功能。书店里有很多51单片机的书,...
51单片机用什么软件编程
头文件与keil的不通用,比如定义P0口 在keil下是: sfr P0=0x80; 在sdcc下是: __sfr __at P0 0x80; 这个P0^1的不行,但sdcc里面有很多头文件8051.h 80c51.h 80c52.h等等 基本满足要求,给stc单片机编程不用改,加一点特殊的就可以。这样优秀的开源软件不用真的是白不用啊。
熊池中诺: 你用什么单片机啊,现在一般的单片机都有内部硬件看门狗,连8051都有吧(好像),但好像是固定时间的,不过也可以用,其他高性能就更不用说了哈.如果真的没有,软件看门狗的C程序网络上一大堆. 另外电源呢,要看你考虑哪个方面....
环县19671504942: 关于单片机内部看门狗的问题? - ?
熊池中诺: 单片机内部看门狗的使用,就是对看门狗寄存器初始化,即启动看门狗,在主循环程序中不停的刷新看门狗,俗称喂狗.一般都有一个看门狗专用寄存器,因不同单片机,寄存器不同,启动方法和刷新也稍有不同.查看一下技术手册,都有说明,也有例程.
环县19671504942: 单片机硬件与软件看门狗在哪里设置? - ?
熊池中诺: 你好,看门狗可以说就是一个计数器,当计数达到你设定的值的时候单片机会产生一次复位,是为了防止程序跑飞或者陷入死循环用的,只要你在到达设定值之前把看门狗数值清零,也就是喂狗,就不会出现复位的情况了,像你说的可以在while(1)死循环里边加上看门狗复位的语句,不过要确保单片机执行一遍while里的语句的时间不能超过看门狗的设定值,否则就要在其他地方加入看门狗复位的语句,防止看门狗超时导致单片机复位. 具体看门狗怎么设定,怎么喂狗,不同的单片机一般是不一样的,你可以查查你用的单片机的资料或者到网上查查相关的程序自己研究研究.
环县19671504942: 51单片机中的看门狗计时器是什么 - ?
熊池中诺: 看门狗是用来防止万一单片机程序出错造成重大损失的. 防错的原理很简单,它在硬件上就是一个定时器,当它溢出的时候就会让单片机强制复位使程序重新开始执行. 正常的情况下是不能让它溢出的,所以在程序上每隔一段时间要给他置一次值(俗称喂狗),只要程序中正常给它喂他就不会溢出. 一旦程序跑飞了,有干扰或者进入死循环之类的情况时,不能正常执行程序了,那么就永远执行不到喂狗的指令了,但此时定时器是硬件控制的,仍然会走,所以溢出了,单片机就复位了. 一般安全性要求比较高的,系统跑飞了会造成重大事故的都会加一个“狗”保安全. 通常,看门狗的溢出时间越短越灵敏,跑飞之后复位的时间越短,也就越安全,但是,你喂狗的操作也要更频繁.
环县19671504942: AVR单片机中看门狗(WDT)都有哪些作用? - ?
熊池中诺: 其实看门狗就是一个定时器,单片机里面有关于看门狗的设置. 其实看门狗就是一个防止程序跑飞的工具. 如果你设置了看门狗,在你程序开始跑,他就开始计时,如果一段时间内,你没有去清理标志位(看门狗设置了标志位),那就会自动系统复位.所以一般人叫清理标志位形象的为喂狗. 所以一般编程中还有一个概念就是“禁止看门狗”,就是说不要看门狗的功能了,就禁止掉 c51中看门狗的设置时在寄存器PCA0MD中
环县19671504942: keil c51 stc单片机看门狗怎么用 - ?
熊池中诺: 设置成在 IDLE 模式下,看门狗计数器停止计数, 在掉电模式也叫停机模式 看门狗计数器是不计数的.
环县19671504942: 怎么在单片机领域利用看门狗? - ?
熊池中诺: 单片机在运行的时候,有可能受到外界的电磁干扰或本身供电电源的突变干扰,使得单片的程序没按正常时序运行,行内话叫程序跑飞了. 程序跑飞的时候很危险的,比如说控制锅炉温度的单片机,在高温和现场复杂的电磁环境中程序跑飞了,...
环县19671504942: 单片机中的看门狗是什么东西? - ?
熊池中诺: 看门狗实际上是一计数器,在程序运行中,你得抽空去清看门狗,不能让计数器计满.一但程序在干扰下跑飞了,没去清看门狗,看门狗数值计满后,就会发出一清0脉冲,是程序从0地址开始运行.
环县19671504942: 看门狗在单片机里边什么地位?为什么我的《单片机教程》教材里边没有具体讲到看门狗? - ?
熊池中诺: 正确使用的前提下,看门狗在单片机程序里,处于防止程序死循环造成程序死锁的独特地位,是十分必要的单片机程序抗干扰措施.你的《单片机教程》教材里边没有具体讲到看门狗,也许是作者疏忽,也许是版本太老(早期单片机没有看门狗),也许是不在教学大纲范围内.你已经知道了,就学学怎么使用,多学一点对自己有好处.
环县19671504942: 51内核单片机:51内核的单片机有没有自带A/D转换的,PWM输出的,看门狗,LCD功能的 - ?
熊池中诺: 真正的问题是,当你发现片上带的AD抗干扰能力极差的时候,片上带的PWM没有死区控制的时候.片上带的LCD驱动能力不足,段式显示灰度不一致的时候,片上的看门狗受干扰自己实效的时候,就会认识到,这些功能还是专业的好.STC系列...