51单片机程序 设定值保存疑问?

我用过PLC,对C语言逻辑也了解一点点,但是遇到设定值断电保存的C程序我就不会啦,问题如下:
①按钮1 控制设定值加1;
②按钮2控制设定值减1;
③按钮3按下时开始计时,到达设定值后输出点动作;
④单片机用STC的,要求设定值断电后不归零,能记忆上次的值;
⑤(我以后想用数码管把这个设定值显示出来,这一点不回答也可)。
附有梯形图逻辑作参考,望给出详细的C51程序,谢谢啦
对于单片机,我是个外行,希望有朋友能按照梯形图逻辑关系给出C程序,并注释,真心感谢!

用STC的单片机,实现所述功能应该没有问题,如每次设定值后把数值 保存到EEPROM中,
在单片机 上电时先读出这个 数值,只要有改变 就保存就可以了,
数据保存方法 的 C 语言程序,在 STC单片机的数据手册 上都有例程
可以 上 STC 官网下载。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-10
AT89C51只能加 24C02外部EEPROM了。按键的时候存入,上电的时候读取。

STC的都带有ISP功能,直接用Flash来存取。
最方便的还是用带EEPROM功能 的MCU。
第2个回答  2013-05-10
要用到掉电存储器,还需要搭建一个电路来检测掉电事件,可在系统完全失电之前存储一次数据到掉电存储器(电源上有电容,可以再维持一阵,时间足够保存数据的),下次系统上电时,第一时间从掉电存储器载入数据即可。另一种方法可以不用检测掉电事件,在累加累减事件发生的时候,便立即存储一次数据(不过这样频繁读写会减少掉电存储器的使用寿命),这样随时掉电都可以。在硬件上需要扩展一个EEPROM(当然,你也可以选用后面带E的STC单片机,里面附带有EEPROM硬件资源),程序给你写了你也一定用不上,要根据实际硬件情况来编写调试的,你自己去宏晶官网上找吧,关于EEPROM的操作有范例的。追问

朋友你好,能不能把加1、减1和数码管显示的程序给出参考一下,断电保持先抛开不考虑,谢谢

第3个回答  2013-05-10
有的STC单片机有内置的EEPROM,可以将数据保存在EEPROM内,如STC11F08。详细的代码在每个型号的说明文档都有,楼主可以参考下。每次启动系统时,先从EEPROM读取值。需要注意的是每次值改变时必须将值保存进EEPROM里面,这会有一定的耗时,如果对时间要求不是太严格的可以忽略不计较。