今天偶说说关于51单片机的指令冗余,这个应该是早年前的事情了,偶担任主研开发了一系列的智能仪表,当时单位来了两个新毕业的大学生,领导让他们熟悉厂里的普通的通用智能显示仪表,就是偶开发的这一系列仪表中的一款,带上下限报警,无调节功能的简单仪表,这两位大学生熟悉程序时给厂里提交了一个改进报告,提出了原来仪表有很多重复的输出指令,可以通过优化缩减程序量,减少程序占用EEPROM的空间数,厂领导很高兴,就安排他们两个按报告进行改进,改进后的仪表在厂里做测试,与原仪表没什么区别,运行很好,当拿到附近的瓷厂做试验时,发现报警经常自动消失,但报警条件依然存在。厂里负责技术的领导让偶去现场帮忙解决,现场看不出山么,就是干扰源较多,干扰大点,没什么其它情况,回厂后偶看了下他们改的程序,发现就是把偶原先的RAM备份和报警输出冗余部分该删除了,难怪如此。我给他们介绍了他们删除的认为没用的程序的作用,及智能仪表常用的参数冗余技术和用于输出冗余的指令冗余技术,把大概情况跟相关领导做了汇报,这次所谓的改进就此结束。
其实偶所说的这个指令冗余很简单,就是要在某个输出口上输出一个低电平去驱动一个外部器件,你如果只送一次“0”,那么,当干扰来临时,这个“0”就有可能变成“1”了。正确的处理方式是,你定期刷新这个“0”。那么,即使偶然受了干扰,它也能恢复回来。
楼主最近还看过