钻石会员
主题
帖子
积分13500
阅读权限50
注册时间2010-4-23
最后登录1970-1-1
在线时间 小时
|
这是一个利用单片机, 模拟按键的操作, 调整万年历时间的方法。 市面上的一些成品万年历时钟, 都是采用专用芯片。早期的一些芯片, 只能通过按键调整时间, 据说新一些的芯片, 有对外接口, 可以用专用设备, 设置万年历的时间, 不过接口方式不公开外人也无法通过接口设置时间, 本文只探讨用按键的方法, 调整万年历的时间。
本实验的这款万年历时钟, 芯片型号 TG4508C, 外观布局一样的, 估计都是这款芯片, 按键的模拟, 可以用继电器, 也可以用PNP管代替, 单片机控制三级管的导通, 这是一个 2x2 的矩阵按键, 用4个PNP管控制, 需要单片机4个IO管脚, 另外还有一个负责总清的IO管脚
万年历时钟芯片必须有下面二个特性, 否则单片机无法调整时间:
** 芯片有个总清管脚, 对地短路后, 时间是一个固定的值(比如 2013-10-06 18:58:00)
** 人工按键调整时间, 改变分钟参数时, 内部的秒针从零开始重新计数
利用上述二个特性, 单片机做如下操作
* 单片机取得当前实时时间, (本实验用了一个WIFI模块, 省去了从外部取得时间的过程).
* 总清, 万年历时间回到固定值(2013-10-06 18:58:00).
* 单片机驱动 <设置键> --- 万年历进入<年>的设置状态 --- 单片机驱动 <增加键>(三次), 万年历的<2013年>被改变为<2016年>
* 单片机驱动 <设置键> --- 万年历由<年>状态 改变为<月>状态 ....
* 设置<分钟>状态时, 利用(<增加键> + <减少键>), <分钟>没有改变, 但<秒针=00>, 这样可以调整<秒针>与实际时间相同
* 单片机驱动<按键>的间隔, 不能太短, 否则万年历芯片可能相应不过来
下述的按键电路图, 仅与 TG4508C芯片的接法有关, 不同的时钟芯片, 要根据产品上的电路板做相应的改动.
本文为抛砖引玉, 希望能看到更好的调整时间的方案。
|
|