你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【螺蛳壳里做道场】用STM8S001J3做高精度时钟

[复制链接]
网络孤客 发布时间:2021-1-22 10:29
还是用上一次的STM8S001J3OLED屏,
为了做更准确的时钟,增加DS3231模块。
参考:
DS3231功能十分强大,是高精度I2C实时时钟芯片(RTC),具有集成的温补晶振(TCXO)和晶体,误差可做到一年小于一分钟。
包含电池输入端,断开主电源时仍可保持精确的计时。
芯片内保存秒、分、时、星期、日期、月和年信息。少于31天的月份,将自动调整月末的日期,包括闰年的修正。时钟的工作格式可以是24小时或带/AM/PM指示的12小时格式。
可设置2个定时/日期闹钟,鉴于MCU容量有限,没设置闹钟功能。
芯片内还内置温度传感器。
20200605152739830.png
MCU引脚功能分配:
Pin1:向上按键
Pin2:GND
Pin4:VCC
Pin5:I2C_SDA
Pin6:I2C_CLK
Pin7:设置按键
Pin8:向上按键 和 SWIM(编程口)
操作:
1、长按设置按键可以进入和退出设置
2、进入设置后,当前设置位会闪动
3、从世纪开始设置也就是设置为20xx或19xx,然后年、月、日、时、分、秒
4、向上向下键可以调整数值,具有循环设置功能,也就是按向上到了最大值跳回最小值,按向下到了最小值跳回最大值。
5、退出设置后,更新星期和农历。
# W# |5 P7 F5 X( R: @
为了功能和显示效果,程序内置多种字体,固定数据占用了大量空间,对于8K的小单片机来说,非常吃紧。
为了减少占用空间,
1、大幅优化字体,
- _) F( ]* r8 Z如:16*32数字字体,把数字两侧用来间隔0x00值删除,显示时直接跳空显示,把字体往下挪一行,字体变成14*24,大小不变,但占用空间大大减少。! Z7 K7 I% m! e6 V/ B
最后,字体+农历基础数据共减少了300多字节,最后不足3KBytes。
2、使用上2545889167大侠的硬件I2C驱动代码
无标题.png
但最后还是没有加入12小时与24小时切换功能。
没带蜂鸣器,也没加入闹钟功能。如用STM8S103芯片,可以把部分数据放入EEPROM中,可以节约近1K空间,再优化程序可以考虑加入此功能。
还是那块面包板,那个OLED屏,那个单片机,换了按键板
微信图片_20210121163708.jpg
还加了DS3231模块,模块带EEPROM。我没把字体和数据加入,有兴趣的可以加入,或开发一个小小的电子时钟。
微信图片_20210121163959.jpg
最后显示效果,设置比较方便,特地设置成未来的时间。; U3 l( ~: d8 t! \
微信图片_20210121163713.jpg
1 T$ g' q7 \  O1 y7 Y# S0 h5 w- Z- f, j) k6 z+ E. h" ^7 ?; u
上源码
+ u; ~/ `: [1 w: |' ^ User.rar (28.98 KB, 下载次数: 8)
收藏 评论2 发布时间:2021-1-22 10:29

举报

2个回答
myxiexing 回答时间:2021-1-23 08:43:41
谢谢分享。
sincomaster 回答时间:2021-1-24 22:34:28
刚好我也有这个时钟模块,谢谢分享

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版