这是我在 2004 年制作的第一个时钟。我用数字 ic 制作了时钟。
我使用了 4 个移位寄存器,所以我不得不使用其中的 33 个。为了消除 4 个开关的抖动,我使用了 NAND 门来完成这项工作。为了制作 1 Hz 时钟,我使用了几个分频器 ic 来减慢 1 MHz 晶体的速度。我的岳父刻在前面。
但是时钟去了阁楼。
现在我退休了,我用 arduino 重建它。原始时钟如下图所示。
我重建了时钟并使用了所有 60 + 12 个 LED 连接,所以现在我需要 9 个移位寄存器(8 位)。不知何故,我将 MM5451 35 位移位寄存器安装在带有 5 个显示器(7 段 LED)的印刷板上。我在前面开了一个洞,把显示器放在里面。见下图。
我制作了自己的例程来读取和设置 RTC,因此无需加载 RTC 库。我正在通过 arduino 上的中断引脚 2 使用 RTC 1 Hz SQW 脉冲。在主循环中,程序正在检查 4 个开关的状态。4 个开关有 16 种功能。
这 16 个功能是:
功能 1111:
显示:空白
指示灯:时间
功能 1110:
显示:时间
Leds:时间和月光(见下面的视频)。
闪烁的 LED 位于位置 46。将其除以 2 = 23。月亮的年龄为 23 天。
闪烁的 LED 每天移动两个 LED 位置。
所以月亮的四个阶段是:
当led闪烁为零时,表示:新月
15 点(除以二 = 7.5 天)= 第一季度
30 岁(除以二 = 15 天)= 满月
45(除以二 = 22.5 天)= 上一季度
从新月到下一个新月是29.5天。
LED 的所有下一个功能是:时间和月度。(功能 1011 除外)所以我只在下一个功能中提及显示屏指示的内容。
功能 1101:
日期
功能 1100 :
太阳的最大高度(这取决于纬度)
功能 1011:
秒
功能 1010:
自一月一日以来的天数
功能 1001:
太阳升起(这取决于纬度)
功能 1000:
星期几
功能 0111:
年
功能 0110:
一天的长度(以小时为单位)
功能 0101:
地球倾斜
功能 0100:
调整(RTC的时间、日期、省时和老化寄存器)
功能 0011:
以天计的月度
功能 0010:
自午夜以来的秒数(最大值 = 86400)
功能 0001:
太阳落山(这取决于纬度)
功能 0000:
太阳的实际高度(这取决于纬度)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !