【保姆级教程】不到一元32位芯片 DIY迷你时钟

本文详细介绍了如何使用CH32V003单片机制作一个成本低于5元的迷你时钟。项目包括计时和闹钟功能,采用0.56英寸数码管显示,硬件设计涉及电源管理、数码管驱动、RTC模块、按键和蜂鸣器。软件设计中,重点讲述了数码管动态扫描、RTC时钟的设置和读取、按键处理及闹钟功能。此外,还提供了结构设计和项目优化的建议。
摘要由CSDN通过智能技术生成

迷你时钟

前言

对于大多数大学生和初学开发者来说,单片机的学习是晦涩难懂的,但是运用制作项目的方式来学习,就会显得更加趣味易学。现基于CH32V003并以项目流程制作方式讲解如何制作一个迷你的多功能时钟。


一、项目介绍

  • 设计初衷

时间的流易和不可逆性是一个古今中外一再提到的内容,中国古代的计时仪器有太阳钟和机械钟两类。太阳钟是以太阳的投影和方位来计时,分别以土圭、圭表、日晷为代表。由于地球轨道偏心率以及地球倾角的影响,真太阳时和平太阳时是不一致的,机械钟应运而生,代表有水钟、香篆钟、太阳仪。

电子爱好者喜欢DIY各种创意时钟,主要有辉光管时钟、点阵屏时钟、液晶屏时钟这几种形态,基本功能包括计时、闹钟,还有些可以通过网络自动校时,天气预报等。

 我们这次准备设计一个超迷你的时钟,在一个0.56英寸的数码管的基础上实现基本计时、闹钟功能,整体硬件成本控制在5元以内。

 

时钟项目很适合嵌入式初学者的第一个综合作品,综合运用了数码管驱动显示技术,RTC时钟模块的I2C驱动,蜂鸣器的PWM驱动,按键的长短按处理,定时器的多任务时序控制。

  • 演示视频

CH32V003迷你时钟

项目全部源文件开源在Gitee

https://gitee.com/haohaodada-official/mini_clock

二、功能设计

  • 功能需求

计时功能:能显示年、月、日、时、分、秒。

闹钟功能:设定好几点几分后,到了设定时间会播放闹铃。

供电要求:内置锂电池,可独立工作3天以上,也可以通过USB线外接供电和充电。

成本要求:BOM价格控制在5元以内。

尺寸要求:长宽和0.56英寸的数码管基本相同,厚度在满足锂电池容量要求下。

  • 功能分析

我们选用的数码管只有4位,要显示这么多内容,就需要轮流来显示,我们定义第一页显示年,效果如下图所示:

 第二页显示月和日,效果如下图所示:

 第三页显示时和分,同时用冒号每隔1秒闪烁来表示秒,效果如下图所示:

 现在我们可以让数码管轮流显示上述几个页面,就可以实现计时功能

接下来,我们要能校准时间,需要通过按键来实现,这里我们用一个按键来实现,通过按键的短按和长按来实现。

我们定义短按来修改具体的数值大小,每短按一次,数值加1,超过范围后,返回到最小值。比如设置小时,超过23后要回到0开始,设置分钟,超过59后要回到0开始,其它类似处理。

我们定义长按来切换不同的页面,同时也是一个确认操作。另外我们还有一个闹钟功能,闹钟也需要设置,闹钟只是设置小时和分,设置的界面和小时分钟界面一样,这样容易让用户不容易察觉,所以我们可以在切换到闹钟界面时,用蜂鸣器发出声音来提示下,表示设置闹钟成功。

当每天时间到了设定的闹钟时间时,蜂鸣器发出闹铃声,我们可以通过短按按键来关闭闹铃。

电源部分需要增加锂电池电源管理来解决,同时要考虑整个系统的功耗。                                             

三、硬件设计

  • 电源管理模块

这里选用TP4056作为锂电池充放电管理芯片,该芯片支持单节锂离子电池恒流/恒压线性充电,充电电流可以设置,最大支持1000mA,带有电池温度监测,欠压锁定,自动再充电和两个状态引脚以显示充电和充电终止功能。

 这里,我们把TEMP引脚接地,不使用温度监测功能。我们把R13电阻设置为1.2K,这样就设置充电电流大小为1000mA,内部计算公式如下:

 设置红色LED为充电状态指示灯,蓝色LED为充满状态指示灯,分别连接到CHRG和STDBY引脚,充电状态表如下图所示:

 整个系统,在锂电池供电时,系统电压就是锂电池的电压(3~4.2V),在USB插入充电时,系统电压稳定在4.2V。

  • 单片机最小系统

CH32V003系统工作电压范围为2.7~5.5V,通过数据手册可以看到CH32V003复位引脚有别于常见的单片机,需要外接上拉电阻,芯片已经内置上拉电阻,我们只需要外接一个0.1uF电容到地就可以,这里我们也不需要按键来复位。 

 所以CH32V003只需要给VSS和VDD引脚供电就可以工作了,当然为了方便程序下载调试,我们还需要引出SWIO口,芯片内核自带一个串行单线调试的接口,SWIO 引脚(Single Wire Input Output)。系统上电或复位后默认调试接口引脚功能开启。SWIO口也可以通过程序配置设置通用IO口。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值