前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

开源了一种很酷的时钟,最低续航7天!

qiguaw 2024-12-24 15:06:02 资源文章 28 ℃ 0 评论

开源项目描述

做了一个实用又好看的VFD屏【RGB时钟摆件】。可7天不间断持续工作。

本文会主要分享它的电路图+代码原理分析。希望能给想DIY时钟的小伙伴一些帮助!


参数与亮点

  • 屏幕使用VFD屏上海中荧9位米字屏。
  • 主控采用STC8H+PT6315。
  • 单片机采用TSSOP20封装的STC8H1K17_36I
  • 支持RX8025T高精度实时时钟
  • 支持WS2812B(1515封装)的两颗RGB
  • 支持三个用户按键
  • 可以离线切换年月日/时分秒设置时间、调整VFD的亮度、开启/关闭 ACG动画、关闭/开启RGB或更改特效


设计图


代码原理

我用Vscode写代码,再使用Keil编译。

电脑环境:Macos+Win虚拟机。


1.源码大概逻辑

三个用户按键由定时器1以固定1ms的频率进行扫描,支持检测按下,松开与长按的逻辑。

当检测到任何一个按键的事件触发了,将使用Flag标记位进行标记,不在中断函数中执行耗时的操作。


定时器0作为系统的滴答定时器,设置不可屏蔽的自动重装载模式。

1毫秒一次中断,uint32_t的变量加1一次,主函数中不使用软件延时函数延时,我们将使用值,值的比较法进行延时,这样大大增加效率。

主函数中,将会对每个按钮的flag进行判断——检测是否为触发按键的事件,然后执行对应的耗时逻辑。

另外,关于VFD的刷新、8025T时间的读取,ACG动画、RGB特效刷新、时间的保存、屏幕保护程序……这些都在主函数中通过值,值的比较法判断是否到了该执行的时刻

这是超级简单的API,如果你想自定义功能,也可以直接调用gui.h。


2.(HTML)字库生成工具

我使用原生HTML写了一个字库生成工具(JS用到了cdn在线库需要电脑联网才可以正常加载)

  • 在使用的时候只需打开这个后缀.html文件(注意如果打开乱码,请在UTF-8的编码下打开)
  • 在浏览器内,用鼠标点击一下
  • 得出你想要的图案
  • 点击生成,直接生成配置在代码字库uint32_t的值。


3.STC烧录设置(重要)

时钟频率选择24Mhz


4.项目结构

参考资料:

[1]https://oshwhub.com/yc_chen/zyc-vfd-shi-zhong

— 完 —

嘉立创EDA·头条号

关注我,看一手优质开源项目

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表