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