数码之家

 找回密码
 立即注册
搜索
查看: 8461|回复: 16

[STM] 螺蛳壳里做道场~用STM8S001J3做高精度时钟

[复制链接]
发表于 2021-1-21 17:58:20 | 显示全部楼层 |阅读模式
本帖最后由 网络孤客 于 2021-1-21 18:02 编辑

还是用上一次的STM8S001J3和OLED屏,
为了做更准确的时钟,增加DS3231模块。

参考:
螺蛳壳里做道场~用STM8S001J3做2048游戏机

DS3231功能十分强大,是高精度I2C实时时钟芯片(RTC),具有集成的温补晶振(TCXO)和晶体,误差可做到一年小于一分钟
包含电池输入端,断开主电源时仍可保持精确的计时。
芯片内保存秒、分、时、星期、日期、月和年信息。少于31天的月份,将自动调整月末的日期,包括闰年的修正。时钟的工作格式可以是24小时或带/AM/PM指示的12小时格式。
可设置2个定时/日期闹钟,鉴于MCU容量有限,没设置闹钟功能。
芯片内还内置温度传感器。


MCU引脚功能分配:
Pin1:向上按键
Pin2:GND
Pin4:VCC
Pin5:I2C_SDA
Pin6:I2C_CLK
Pin7:设置按键
Pin8:向上按键 和 SWIM(编程口)

操作:
1、长按设置按键可以进入和退出设置
2、进入设置后,当前设置位会闪动
3、从世纪开始设置也就是设置为20xx或19xx,然后年、月、日、时、分、秒
4、向上向下键可以调整数值,具有循环设置功能,也就是按向上到了最大值跳回最小值,按向下到了最小值跳回最大值。
5、退出设置后,更新星期和农历。


为了功能和显示效果,程序内置多种字体,固定数据占用了大量空间,对于8K的小单片机来说,非常吃紧。
为了减少占用空间,1、大幅优化字体,
如:16*32数字字体,把数字两侧用来间隔0x00值删除,显示时直接跳空显示把字体往下挪一行,字体变成14*24,大小不变,但占用空间大大减少。
最后,字体+农历基础数据共减少了300多字节,最后不足3KBytes。

2、使用上2545889167大侠的硬件I2C驱动代码,参考下面帖子。
http://bbs.mydigit.cn/read.php?tid=2540435

但最后还是没有加入12小时与24小时切换功能。
没带蜂鸣器,也没加入闹钟功能。如用STM8S103芯片,可以把部分数据放入EEPROM中,可以节约近1K空间,再优化程序可以考虑加入此功能。

还是那块面包板,那个OLED屏,那个单片机,换了按键板


还加了DS3231模块,模块带EEPROM。我没把字体和数据加入,有兴趣的可以加入,或开发一个小小的电子时钟。


最后显示效果,设置比较方便,特地设置成未来的时间。




老规矩,附上源码。




补充内容 (2022-6-3 12:05):
螺蛳壳里做道场~用STM8S001J3做FM收音机

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 9家元 +220 收起 理由
cushion + 20 原創內容
newnet1234 + 20 原創內容
有点不烧 + 20 謝謝分享
超级女生 + 20 歡迎探討
jf201006 + 20 謝謝分享
玛德陛下 + 20 謝謝分享
北落师门 + 20 謝謝分享
家睦 + 60
jjbboox + 20 原創內容

查看全部打赏

发表于 2021-1-22 08:47:04 | 显示全部楼层
懂得原理真好,什么都能自己设计。

打赏

参与人数 1家元 +6 收起 理由
网络孤客 + 6 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-22 09:07:47 | 显示全部楼层
hzw6834 发表于 2021-1-22 08:47
懂得原理真好,什么都能自己设计。

还好吧。
都是到处东拼西凑,自己再研究一下,改一下,就可以用起来。
需要再深的原理还是要更深入的刨元器件的数据手册。
简单应用不会太复杂。
回复 支持 反对

使用道具 举报

发表于 2021-1-24 01:28:48 | 显示全部楼层
这种板子上的3231绝大多数是拆机的,精度随缘,我碰到过一年误差好几分钟的。而且这板子不知道谁画的,背面那个记忆电池,一般装的是一次性的锂电,他板子上有个二极管,电源通过这个二极管在给锂电池充电,不知道用久了会不会有问题,反正我到手就把那个二极管给拆了...

打赏

参与人数 1家元 +6 收起 理由
网络孤客 + 6 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-24 11:36:30 | 显示全部楼层
本帖最后由 网络孤客 于 2021-1-24 11:55 编辑
北落师门 发表于 2021-1-24 01:28
这种板子上的3231绝大多数是拆机的,精度随缘,我碰到过一年误差好几分钟的。而且这板子不知道谁画的,背面 ...

1、DS3231是可以进行老化补偿的。也就是可以调准确度2、这个只是为了实现功能,如果想要做产品,肯定要画板,买正品芯片。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-1-26 16:37:41 | 显示全部楼层
太牛啦!学习了!
回复 支持 反对

使用道具 举报

发表于 2021-1-29 11:08:10 | 显示全部楼层
做的不错哦:lol:
回复 支持 反对

使用道具 举报

发表于 2021-1-30 08:38:52 | 显示全部楼层
现在3231误差可做到一年小于一分钟,我记得当年我玩的时候是1年就几秒呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-30 12:51:20 | 显示全部楼层
wxgwxg 发表于 2021-1-30 08:38
现在3231误差可做到一年小于一分钟,我记得当年我玩的时候是1年就几秒呀。 ...

恭喜,拿到极品。
个体是有差异
回复 支持 反对

使用道具 举报

发表于 2021-1-30 17:11:50 | 显示全部楼层
主要是懂得原理、真好
回复 支持 反对

使用道具 举报

发表于 2021-2-17 10:52:34 | 显示全部楼层
做的不错,学习中。
回复 支持 反对

使用道具 举报

发表于 2021-2-20 11:16:45 | 显示全部楼层
牛人,在学习中。坛中高手如云!
回复 支持 反对

使用道具 举报

发表于 2022-6-3 18:58:10 | 显示全部楼层
支持一下,没想到我微小的工作还能帮到人
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-4 14:20:36 | 显示全部楼层
2545889167 发表于 2022-6-3 18:58
支持一下,没想到我微小的工作还能帮到人

后面的全是用你的驱动
回复 支持 反对

使用道具 举报

发表于 2022-12-23 19:35:40 来自手机浏览器 | 显示全部楼层
下载后发现不是工程,有工程文件吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-23 20:43:53 | 显示全部楼层
本帖最后由 网络孤客 于 2022-12-23 20:47 编辑

触景情伤 发表于 2022-12-23 19:35
下载后发现不是工程,有工程文件吗?


链接:https://pan.baidu.com/s/1eaLupYC2FgQn0AoOW-avgQ
提取码:6666
回复 支持 反对

使用道具 举报

发表于 2022-12-23 21:37:50 来自手机浏览器 | 显示全部楼层
网络孤客 发表于 2022-12-23 20:43
触景情伤 发表于 2022-12-23 19:35
下载后发现不是工程,有工程文件吗?


谢谢大佬了,主要是玩到现在我对于整合stm8的工程文件都不怎么会弄…之前的LCD时钟没有按键调时功能,研究一下看看能不能复刻一下…
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 10:15 , Processed in 0.436801 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表