51单片机做的万年历有必要加看门狗吗?
给单片机设置看门狗电路,是为了在单片机电路死机或程序跑飞的情况下对单片机进行强制复位,从而重新开始正常运行。而在单片机正常工作时是不需要频繁复位的,这会干扰单片机的正常工作。在程序中设置喂狗间隔时间,就是为了及时对计时器进行清零,以避免不必要的复位操作。只有当死机或程序跑飞的状态出现时,程序就运行不到计时器的清零操作,这种情况下看门狗电路才会产生复位信号输出,使单片机从初始化开始重新运行,脱离死机或程序跑飞状态。
补充回答:在单片机的程序设计中,每次喂狗操作都应该在看门狗定时器溢出之前进行,这样一来当程序程序正常运行时,看门狗定时器总能够得到及时的清零,使看门狗不会因定时器溢出而输出强制复位信号,这是程序连续正常运行所需的。
用51单片机做万年历计时,一般都是为了试验,所以多没有专门的实时时钟芯片。晶振频率会有偏差和温度系数,虽然日常使用不会有什么不良影响,但作为实时时钟,连续累积的偏差就很大了,所以时钟会不准,差很多。
没必要,基本没什么干扰,单片机不会死机的。但是如果你的系统里设置了某些需要保存的数据,比如定时闹钟什么的,需要保存起来而且掉电不丢失,这时你可能需要一个外置的EEPROM,而看门狗芯片往往也有EEPROM功能,这时可以加一个,一举两得。
有必要
加了看门狗后, 程序出现故障时, 可以自动恢复, 万年历照常运行
有必要
想用单片机设计一个万年历,如何实现阳历到农历的转换?最好是给出思路...
If (curMonth = (Int(NongliData(m) \/ 65536) + 1)) Then curMonth = 1 - curMonth ElseIf (curMonth > (Int(NongliData(m) \/ 65536) + 1)) Then curMonth = curMonth - 1 End if End If '生成农历天干、地支==> sChinaYear sChinaYear = "农历"&arrTianGan(((curYear - 4)...
设计一个基于单片机的万年历程序
include<reg51.h>#include"lcd.h"#include"ds1302.h"sbit K1=P3^1;sbit K2=P3^0;sbit K3=P3^2;sbit K4=P3^3; \/\/管脚接线unsigned char character0[24] = {0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00,\/\/"月"代码 0x01 ...
基于单片机的万年历难吗
单片机是集CPU、RAM、ROM、定时、计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误...
基于51单片机的时钟万年历—可农历显示
基于51单片机的时钟万年历是一款功能强大的时间显示设备,它不仅能够显示年、月、日、时、分、秒、星期,还能显示农历,满足不同用户的需求。通过按键,用户可以设置闹钟和报警,调整时间,并了解当前年份是否为平年或闰年。硬件方面,该万年历采用STC89C52单片机为核心,配合其他必要的电子元件,如万用板、电...
单片机万年历
万年历是能够显示年月日、二十四节气、农历之类的东西,单片机是一块芯片。万年历可以用单片机来做,但是我真不知道“万年历单片机”怎么做。我想你应该想问的是怎么用单片机来做万年历,我提供思路。 1、单片机最小系统一块。可以用STC89C52芯片+外围电路。可以烧入用户编写的程序,实现万年历所需的逻辑...
怎样制作万年历单片机
万年历是能够显示年月日、二十四节气、农历之类的东西,单片机是一块芯片。万年历可以用单片机来做,但是我真不知道“万年历单片机”怎么做。我想你应该想问的是怎么用单片机来做万年历,我提供思路。1、单片机最小系统一块。可以用STC89C52芯片+外围电路。可以烧入用户编写的程序,实现万年历所需的逻辑...
利用单片机编程实现万年历 求助~!!!
很简单。你的难点根本不用考虑了,如果你用时钟芯片,比如DS12887,里面可以自动计算闰年,内置的闹钟指令。你的要求很容易达到,使用52系列单片机,加上一个并行时钟芯片DS12887然后接一个点阵液晶。程序的话很多,就不好写出了,涉及到时钟的读出,然后讲读出的值传到LCD中。前几天做了个简单的电子钟。
C51单片机的万年历程序设计
格式第一字节BIT7-4 位表示闰月月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小第二字节BIT7-0 对应农历第5-12 月大小,第三字节BIT7 表示农历第13 个月大小月份对应的位为1 表示本农历月大(30 天),为0 表示小(29 天)第三字节BIT6-5 表示春节的公历月份,BIT4-0 表示春节的公历日期*\/code ...
怎样用单片机做一个多功能万年历,用12864屏,不能用时钟芯片,万年历有...
lcden=1;delay(5);lcden=0;} void init(){ uchar num;dula=0;wela=0;lcden=0;\/\/ fen=59;\/\/ miao=53;\/\/ shi=23;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num<15;num++){ write_date(table[num]);delay(5);} write...
单片机做个简单的万年历,可是led屏不亮,程序如下,求大神帮忙
单片机的P0口需要接上拉电阻,如果不愿意加,可以用P3口或者P1口 Unsigned char code discode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};改为:uchar code discode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};这样才能编译通过吧 ...
漳屈氟脲: 1、个人认为没有必要,除了死循环外,想越界,内存泄露等等问题,STM32会进入异常函数,可以添加复位代码来复位单片机2、如果相加,还是按需添加3、加的方式最好是,代码完成后,再加
辽阳县15096703884: 51单片机中的看门狗计时器是什么 - ?
漳屈氟脲: 看门狗是用来防止万一单片机程序出错造成重大损失的. 防错的原理很简单,它在硬件上就是一个定时器,当它溢出的时候就会让单片机强制复位使程序重新开始执行. 正常的情况下是不能让它溢出的,所以在程序上每隔一段时间要给他置一次值(俗称喂狗),只要程序中正常给它喂他就不会溢出. 一旦程序跑飞了,有干扰或者进入死循环之类的情况时,不能正常执行程序了,那么就永远执行不到喂狗的指令了,但此时定时器是硬件控制的,仍然会走,所以溢出了,单片机就复位了. 一般安全性要求比较高的,系统跑飞了会造成重大事故的都会加一个“狗”保安全. 通常,看门狗的溢出时间越短越灵敏,跑飞之后复位的时间越短,也就越安全,但是,你喂狗的操作也要更频繁.
辽阳县15096703884: 看门狗在单片机里边什么地位?为什么我的《单片机教程》教材里边没有具体讲到看门狗? - ?
漳屈氟脲: 正确使用的前提下,看门狗在单片机程序里,处于防止程序死循环造成程序死锁的独特地位,是十分必要的单片机程序抗干扰措施.你的《单片机教程》教材里边没有具体讲到看门狗,也许是作者疏忽,也许是版本太老(早期单片机没有看门狗),也许是不在教学大纲范围内.你已经知道了,就学学怎么使用,多学一点对自己有好处.
辽阳县15096703884: 为什么在通信使用范畴单片机(如:80C51)外部要加一个硬件看门狗???
漳屈氟脲: 你得明白看门狗的作用,死机时使单片机复位重新工作.比如你在打电话,突然基站死机了,通话中断,如果基站不重启,一直处于死机状态,那么你是不是一直都不能打电话了啊?而如果自动重启,虽然会让你当次通话中断,但至少之后你还能继续打电话,这就是看门狗的基本作用! 而通信过程中,什么最重要?保证通信畅通最重要啊~路都不通了,还能干嘛,所以必须要能死机自动重启! 所以,加与不加,看你应用需求!
辽阳县15096703884: 求一个51单片机使用LCD1602做的万年历,最好带温度显示和蜂鸣器报警的. - ?
漳屈氟脲: #include<reg52.h> #include<intrins.h>#define uchar unsigned char #define uint unsigned intsbit ACC0 = ACC^0; sbit ACC7 = ACC^7;sbit T_CLK = P1^6; /*实时时钟时钟线引脚 */ sbit T_IO = P3^5; /*实时时钟数据线引脚 */ sbit T_RST = P1^...
辽阳县15096703884: 51单片机的看门狗是默认关闭的吗 ? - ?
漳屈氟脲: 不同型号的单片机看门狗默认状态不同,有的是默认打开,有的是默认关闭,比较合理的办法是在程序启动后关闭看门狗,初始化完成后如果需要再打开.
辽阳县15096703884: 单片机里的看门狗对while(1),这样的死循环有看门作用吗? - ?
漳屈氟脲: 一,不是所有的单片机都有内置看门狗,就好比不是所有家庭都养狗一样.比如AT89C51没带看门狗,AT89S51有带看门狗,STC单片机一般都带看门狗.二,看门狗是用来防止程序“跑飞”的,不是来防止你程序死循环的.因为死循环有可能是人为故意造成的;而程序跑飞,是因为电磁干扰等非人为的不预测的因素造成的(就好比是天灾),程序一旦跑飞,我们就控制不了单片机了,而死循环还在我们的控制范围内.三,while(1),这样的死循环,看门狗是不会报错的,只要你的程序能正常按时“喂狗”,看门狗就不是出错,反之则报错.-完-
辽阳县15096703884: 5v的看门狗芯片可以用于3v3的单片机吗 - ?
漳屈氟脲: 不能.没必要非要使用看门狗芯片,现在很多产品包括工业上用的产品都直接使用外部RC复位电路,单片机内部看门狗.如果不放心外面可以使用一个电压监控芯片即可.比如SGM809、CAT811S等电压监控芯片.
辽阳县15096703884: 51内核单片机:51内核的单片机有没有自带A/D转换的,PWM输出的,看门狗,LCD功能的 - ?
漳屈氟脲: 真正的问题是,当你发现片上带的AD抗干扰能力极差的时候,片上带的PWM没有死区控制的时候.片上带的LCD驱动能力不足,段式显示灰度不一致的时候,片上的看门狗受干扰自己实效的时候,就会认识到,这些功能还是专业的好.STC系列...
辽阳县15096703884: 看门狗电路一般在什么情况下使用?有什么作用?用单片机怎么接? - ?
漳屈氟脲: 看门狗就是在单片机运行不正常时,也就是单片机程序跑飞时,使单片机重新启动.现在在部分的单片机内部都自己带了,不用外接,外接的要好块钱一块,成本上讲不划算.