春节期间翻箱子,找出来一个古老的时钟,看了一下,有下列元件:
1.MCU,是AT89C52,生产时间0122(2001年第22周,居然有20多年了);
2.时钟芯片是DS12C887;
3.10个7段1位数码管,10个HC595;
4.电阻、电容等若干。
接上5V供电,能显示,不过全是零,应该是时钟芯片的电池没电了,按下面的按键,可以调整,但是无论哪一位,都可以无限向上加(比如月,到了12之后应该停止,或是重新从1月再向上加)。
找来了美工刀、老虎钳,暴力了一番,把DS12C887撬开,然后把内部电池拆下来,焊上一个2032电池,再通电,用起来还是别扭:一是调整时闪烁有点晃眼,二是调整时数据上加无上限,三是没有显示秒;四是调整功能,一按下第一个按键,立即进入调整状态,容易误操作,。所以就想给它改一下程序,毕竟咱就是干这个的。
找来找去,只找到了几个STC89C52,还好下载器还在,那就用它了。
原理图如下,是根据实物用万用表测出来的,
程序修改后,按下K2或K3,切换显示状态,长按K1,进入调整状态;增加了调整时数据的上、下限。
源代码及仿真下载