最近做了个小项目,处理芯片选择的是TQFP44的89s51,电路设计完后板子都已加工回来,客户提出要增加些新的功能,新增的某个功能在程序处理时可能会在等待外部信号时出现死循环,外部信号完全取决于用户的动作,所以加入看门狗监视是比较好的措施了.
问题是板子已定型,没有外部看门狗复位电路,一直认为简单的51是不会有内部看门狗的(再次惭愧),只好暂时把那外部信号放在中断中处理,并加入了些对SP指针的操作以防止死循环,调试中对这种偏门方法始终不太舒服,无意看了下s51的芯片资料,第一页赫然写着有WDT AND DPTR,看过WDT的介绍和使用后,再配合T0定时延长下狗的监视时间,以下是启动狗的指令:
mov WDTRST,#0x1e
mov WDTRST,#0xe1
虽然很多项目中都使用了51核mcu+CPLD/FPGA处理模式,但是对基本的s51这个功能的忽视,让我觉得真的很惭愧,CPLD也好,ARM7/9也罢,失去了对s51这些基本芯片的耐心掌握,这种浮躁的心态正是开发设计中的最大障碍. |