标题: stc12c5a60s2单片机内部eeprom该怎么用? [打印本页]

作者: 创造生活    时间: 2021-10-8 15:07
标题: stc12c5a60s2单片机内部eeprom该怎么用?
      我用stc12c5a60s2,想用外部复位电路来检测电路电压情况,一旦停电,在一瞬间把变量数据用低压检测中断存入eeprom中,在次上电时程序里的变量读取eeprom中存的值,这个程序的思路步骤是怎样的呀?有什么需要注意的吗?求各位指教一下!
作者: 188610329    时间: 2021-10-8 15:34
首先,外部复位电路,是无法监测电路电压情况的。

想要断电瞬间,存储数据到Eeprom需要用到 LVD中断。
在LVD中断中, 把数据写到Eeprom中。
有一个重点, STC的内部eeprom 其实是FLASH  他只有写和扇区擦除,没有改写。所以,你必须要注意一点。发现外部掉电了,写几十个数据去Eeprom 是没啥问题的,但是,如果你要擦除扇区,那是绝对来不及的。因此,在触发掉电中断LVD之前, 你必须要先确保,Eeprom 处于可以写入状态,如果需要擦除扇区,就提前擦除好。
作者: 创造生活    时间: 2021-10-8 17:49
188610329 发表于 2021-10-8 15:34
首先,外部复位电路,是无法监测电路电压情况的。

想要断电瞬间,存储数据到Eeprom需要用到 LVD中断。

老师,我用专用复位芯片MAX813L芯片来检测电路低电压
作者: 创造生活    时间: 2021-10-8 17:53
188610329 发表于 2021-10-8 15:34
首先,外部复位电路,是无法监测电路电压情况的。

想要断电瞬间,存储数据到Eeprom需要用到 LVD中断。

多谢您的指教,我程序设计的快写满扇区了就提前擦除能给提供一下MAX813芯片与单片机中断连接的电路图吗
作者: 188610329    时间: 2021-10-8 18:16
创造生活 发表于 2021-10-8 17:53
多谢您的指教,我程序设计的快写满扇区了就提前擦除能给提供一下MAX813芯片与单片机中断连接的电路图吗

MAXl813没用过, 你自己参考手册连接电路吧,反正基本上,也是连接外部中断INT0~INT4中的一个,然后写中断程序。

不过说实在的,STC12系列,自带的MAX810,没觉得比MAX813差呀, 你还特意外接MAX813,实在是…… 万分费解……,感觉有点像是为了提高产品价值,恶意堆料。
作者: 创造生活    时间: 2021-10-8 18:59
188610329 发表于 2021-10-8 18:16
MAXl813没用过, 你自己参考手册连接电路吧,反正基本上,也是连接外部中断INT0~INT4中的一个,然后写中 ...

关键是我不知道用自带的复位电路,我那电路图和程序该怎么弄,MAX913L我倒有点资料,我这是纯粹为了玩不卖钱,也就不存在堆料的问题了
作者: 188610329    时间: 2021-10-8 19:07
创造生活 发表于 2021-10-8 18:59
关键是我不知道用自带的复位电路,我那电路图和程序该怎么弄,MAX913L我倒有点资料,我这是纯粹为了玩不 ...

那就别给自己找麻烦, 直接用STC12自带的 MAX810, 省心省时省力。

直接: VCC 接 100 K 电阻,到P4.6, 再GND 接30~33K 电阻到P4.6
然后, 程序里开 ELVD 中断 就好了。 多简单的事?
作者: 188610329    时间: 2021-10-8 19:25
创造生活 发表于 2021-10-8 18:59
关键是我不知道用自带的复位电路,我那电路图和程序该怎么弄,MAX913L我倒有点资料,我这是纯粹为了玩不 ...

STC12系列的手册你看过么?

没看过的话,点击这里下载。
2楼下载611页的:http://www.51hei.com/bbs/dpj-96160-1.html


手册第56~67页,关于复位部分,就是讲的自带MAX810的功能,不管是看门狗也好,低压检测也好。
反正我觉得是够用了,完全没必要在外接MAX813.
当然,STC12毕竟型号太老了,还要P4.6外接两个分压电阻,STC15, STC8 系列连外接电阻都不用了,直接写程序就行了。

作者: 创造生活    时间: 2021-10-8 20:48
多谢各位老师指教
作者: univers    时间: 2021-10-8 21:37
分两路走,mcu要有电池,断电触发写eeprom另一个电路
作者: 创造生活    时间: 2021-10-8 22:18
univers 发表于 2021-10-8 21:37
分两路走,mcu要有电池,断电触发写eeprom另一个电路

不想用电池,那玩意怕用不久,总得换电池吧!一块电池才多少亳安时的电量呀?我两个电源全用开关电源。
作者: 188610329    时间: 2021-10-8 22:23
创造生活 发表于 2021-10-8 22:18
不想用电池,那玩意怕用不久,总得换电池吧!一块电池才多少亳安时的电量呀?我两个电源全用开关电源。

不需要用电池,STC单片机的掉电中断,压根不需要电池。

你可以参考我这个帖子,用掉电中断尝试一下,实际测试的经验,写60+字节是毫无压力的。

http://www.51hei.com/bbs/dpj-213012-1.html
作者: yzwzfyz    时间: 2021-10-9 14:22
想法不错,实际做到需要解决:
1、系统复位时,要恢复上次的状态,需要哪些数据。
2、保存这些数据需要多少时间。
3、从感知到掉电,至CPU不能运行,如何保证安全写入数据,不会因欠压数据写入不完整。
慢慢来吧,会成功的。看你思维蛮好的,估计难不到你。
作者: 创造生活    时间: 2021-10-9 15:33
yzwzfyz 发表于 2021-10-9 14:22
想法不错,实际做到需要解决:
1、系统复位时,要恢复上次的状态,需要哪些数据。
2、保存这些数据需要多 ...

多谢您鼓励
作者: weijoyer    时间: 2021-11-1 08:31
STC的ISP烧录软件上有例程,要注意单次擦除的是一个扇区,不能单独擦除一个字节




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1