一个端口上的数字时钟-ATmega8

这是关于排气指示器的时钟。许多人已经看到,甚至阅读了有关它们的信息。

对于那些不知道的人,我解释说:气体放电指示器是一个装有稀有气体的灯泡,在我们的例子中是氖气。阴极以符号的形式制成,阳极以围绕它们的网格的形式制成。如果将高电压(约200伏)施加到指示器,则会在所选阴极周围形成辉光放电的发光区域。

图片

因此,任务被设定为:在气体放电指示器上建立一个时钟,在这种情况下,它将在液晶屏幕上复制所有信息,并从实时时钟芯片获得时间。 AtMega8微控制器被选为该设备的核心。这是一个通用的微控制器,已经过许多测试,并且上面编写了许多不同的库,这很有帮助。

对于指示本身,我得到的条形图最多有十个气体排放指示器IN-12和IN-15,因此不能谈论静态指示。

图片

我们将处理控制模块的设备:

首先将ATmega8微控制器连接到电源,然后用10k电阻将复位脚拉到正端,以便在不需要它时不起作用。

LCD屏幕通过六线总线连接,不计算功率。我使用的屏幕型号为wh1602a,但它们的区别仅在于板上结论的顺序,因此更换屏幕非常容易。

图片

接下来,转到实时时钟芯片。它应该计算时间,并在必要时将其报告给微控制器。我在ds1307芯片上使用了实时时钟模块。这种方法比计算微控制器本身中的时间精确得多,此外,由于时钟有自己的电池,因此在关闭时钟时可以节省时间。就像主板上的BIOS时钟一样。

为了配置时钟,使用了七个按钮,其中六个直接进入微控制器的输出,第七个通过二极管同时连接至两个输出。也就是说,当按下它时,程序将认为这两个按钮被同时按下。这样做是为了将结论保存到微控制器中,否则它们仅仅是不够的。

好了,最后,为了显示气体排放指示器的时间,我们只有一个空闲端口B。如果使用两个解码器,这对于动态指示已经足够了。

图片

第一解码器是众所周知的高压逻辑芯片k155id1。为此,端口B的引脚从第四到第七使用。它通过四位总线从微控制器接收符号号,并打开必要的输出。因此,它绕开了微控制器,从指示器的阴极上去除了高电压,并将其重置为负。

扫描通过解密器k155id10进行,解密器k155id10从零到第三连接到端口B的引脚。它仅在低电压下与以前的解码器相同。其发现的集电极开路,因此它们被外部电阻吸引。接下来,使用逻辑元件“非”将信号反相,并打开这两级晶体管,以保护逻辑免受高压侵害。这些级联的方案取自schem.net上的一篇文章,其中对该过程进行了详细描述。只有我用更便宜的类似产品代替的晶体管。 NPN晶体管-kt604BM,PNP-2n5401。

图片

也就是说,您只能在该屏幕上使用微控制器的一个端口进行指示。这样既节省了微控制器的输出,又节省了处理器时间。

我在这种情况下设计了这款表,表壳中有两个来自电源的适配器,并且风扇可能无法正常工作。

图片

图为:带有实时时钟的控制单元,升压转换器,带有高压逻辑和晶体管的模块以及带有十个气体放电指示器的指示棒本身。

机箱的正面有拨动开关,用于打开LCD屏幕背光灯,打开升压转换器本身,LCD屏幕对比度控制和F按钮以切换模式。

图片

侧面有五个用于设置时间的按钮。

手表具有三种时间显示模式:时间和日期,仅时间和不显示秒的时间。

图片

图片

带有工作演示的视频(接近结尾):


我将在这里保留项目中的所有材料(源代码,电路和印刷电路板):yadi.sk/d/-Gw5HAAgiLJbE

使用的材料schem.net上的Transmistor隔离

文章:cxem.net/mc/mc187.php
电压转换器文章:e-kit.su/main/1562

Source: https://habr.com/ru/post/zh-CN382637/


All Articles