项目简介
本项目是针对基于STC15F微控制器的DIY时钟套件的固件替换方案。该套件可从Banggood、AliExpress等平台购买。使用SDCC进行代码构建,通过stcgal或STC - ISP工具将固件烧录到STC15F204EA和STC15W408AS系列微控制器中。
项目的主要特性和功能
基础功能
- 支持时间显示与设置,有12/24小时模式可选。
- 支持日期显示与设置,MM/YY和YY/MM显示可切换。
- 能显示星期、年份和秒数,可重置秒数。
- 显示屏具备自动调光功能。
- 温度显示支持摄氏度或华氏度,可自定义偏移调整。
- 具备闹钟和贪睡功能,有整点报时。
实验性支持
gps
分支支持与输出串行NMEA数据的GPS接收器进行时间同步,目前仅适用于STC15W408AS或STC15W404AS,功能尚不完善。
待实现功能
计划支持与WWVB无线电接收器模块进行时间同步(针对STC15W408AS)。
安装使用步骤
前提条件
- 操作系统:Linux或Mac(Windows未测试,但理论上可行)。
- 安装SDCC并添加到系统路径(建议版本 >= 3.5.0)。
- 安装stcgal(可通过
git clone --recursive ...
复制项目时获取,或使用git submodule update --init --recursive
命令获取)。
硬件连接
将DIY LED时钟套件通过廉价的USB - UART适配器(如CP2102、CH340G)连接到PC,连接方式如下: | P1头 | UART适配器 | | ---- | ---- | | P3.1 | RXD | | P3.0 | TXD | | GND | GND | | 5V | 5V |
构建与烧录
PlatformIO方式(推荐)
- 确保已安装PlatformIO。
- 在
platformio.ini
文件中取消注释相应的env_default
以选择要构建的微控制器。 - 根据需要调整
platformio.ini
中的upload_port
。
传统Make方式
bash
make clean
make
make flash
Make选项
- 覆盖默认串口:
STCGALPORT=/dev/ttyUSB0 make flash
。 - 添加其他选项:
STCGALOPTS="-l 9600 -b 9600" make flash
。 - 烧录STC15W408AS:
STCGALPROT="stc15" make flash
。
预编译二进制文件
可使用官方的STC - ISP工具(如stc - isp - 15xx - v6.85I.exe)进行烧录。该工具为Windows应用程序,在Mac和Linux系统上可通过Wine运行。如需生成eeprom.hex
文件,可运行make eeprom
命令。
时钟假设
对于STC15F204EA,部分代码假设内部RC系统时钟为11.0592 MHz(可通过stc - isp或stcgal设置)。若时钟频率不同,可能需要调整延迟例程。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】