历史上的今天
返回首页

历史上的今天

今天是:2025年01月10日(星期五)

正在发生

2021年01月10日 | STC8单片机+DS3231+WS2812做的全彩RGB挂钟

2021-01-10 来源:51hei

A、红色常亮表示时针,绿色慢呼吸灯表示分针、蓝色每秒走一灯。
B、长按Set键开始调时,短按Set选择时、分、秒,再长按Set退出。红色快闪是调时针、绿色快闪是调分针、蓝色快闪是调秒针
C、短按+键 时间增进、短按-键 时间减回。
D、短按LED键,调整背景色 红、绿、蓝、黄、青、紫
F、可以自己编写其他WS2812相关程序,如流水灯、流星灯效果
源代码的文件太多了 所以用压缩包形式提供
制作出来的实物图如下:
 

电路原理图如下:


单片机源程序如下:

//时钟程序,2020年9月,汪祁绪原创。

//店铺:祁绪电子

#include "all.h"

u8 xdata Set_Mode=Set_Timer_OFF;                                        //设置时间状态变量

u8 xdata LED_Mode=Set_Back_OFF;                                                //设置背景状态变量

u8 xdata LD_hour=LED_LD;                                                        //默认最大128亮度

u8 xdata LD_min=LED_LD;                                                                //默认最大128亮度

u8 xdata LD_sec=LED_LD;                                                                //默认最大128亮度

u8 xdata Back_R=0;                                                                        //背景亮度R

u8 xdata Back_G=0;                                                                        //背景亮度G

u8 xdata Back_B=0;                                                                        //背景亮度B


//根据调整的时针、分针、秒针 分别让RGB快速闪烁显示(快速呼吸)

void LED_PWM_Allot()

{

        static u8 xdata sec_count;

        static bit PWM_Flag;

        switch(Set_Mode)

        {

                case Set_Timer_OFF         :                                                //默认状态,直接显示时间,分针是呼吸灯效果

                {

                        sec_count++;

                        if(sec_count==255)

                        {

                                if(PWM_Flag==0)                                                //PWM增加

                                {

                                        LD_min++;

                                        if(LD_min>=LED_LD)                                //默认最大128亮度

                                        {

                                                PWM_Flag=1;

                                        }

                                }

                                if(PWM_Flag==1)                                                //PWM减少

                                {

                                        LD_min--;

                                        if(LD_min==0)

                                        {

                                                PWM_Flag=0;

                                        }

                                }

                        }

                        LD_hour=LED_LD;                                                        //时针保持最大亮度128

                        LD_sec=LED_LD;                                                        //秒针保持最大亮度128

                }break;

               

                case Set_Timer_hour :                                                //时针调整模式,时针快速闪烁

                {

                        sec_count++;

                        if(sec_count==255)

                        {

                                if(PWM_Flag==0)                                                //PWM增加

                                {

                                        LD_hour+=10;

                                        if(LD_hour>=LED_LD)                                //默认最大128亮度

                                        {

                                                PWM_Flag=1;

                                        }

                                }

                                if(PWM_Flag==1)                                         //PWM减少

                                {

                                        LD_hour-=10;

                                        if(LD_hour<=10)

                                        {

                                                PWM_Flag=0;

                                        }

                                }

                        }

推荐阅读

史海拾趣

上海双岭电子(Double-peak)公司的发展小趣事

在保持核心技术优势的同时,双岭电子也积极探索跨界合作的可能性。通过与国内外知名企业和研发机构的合作,公司成功将场效应半导体器件应用于传感器、仪器仪表和自动化控制等领域。这种跨界合作不仅拓宽了公司的市场渠道,也提升了产品的附加值。同时,双岭电子还积极参与各类行业展会和交流活动,与业界同行建立了良好的合作关系。

台湾肯尼威(CANNYWELL)公司的发展小趣事

面对不断变化的市场需求和技术环境,肯尼威始终坚持以创新为引领。公司不断投入研发资源,推出了一系列具有创新性的产品。例如,针对特殊需求的客户,公司推出了定制化的电源滤波器解决方案;同时,还开发了新型的三相电源滤波器等产品,满足了市场的多样化需求。这些创新不仅提升了公司的技术实力,也为公司赢得了更多的市场份额。

长江微电(cjiang)公司的发展小趣事

2022年8月,美国商务部出台了一项断供禁令,禁止向中国出售用于芯片设计的特定类型的EDA软件。这一制裁措施对中国的半导体行业造成了巨大冲击。然而,长江微电并未因此气馁,反而借此机会加大了对电感产品的研发力度。通过自主创新,公司成功开发出了一系列高性能、高品质的电感产品,满足了国内外客户的需求。这一成就不仅彰显了长江微电应对国际制裁的勇气和智慧,也为中国半导体行业的发展注入了新的活力。

ETI Systems公司的发展小趣事

ETI Systems深知在电子行业中,单打独斗很难取得长远的发展。因此,公司积极寻求与行业内外的合作伙伴建立战略合作关系。通过与多家知名企业和研究机构的合作,ETI Systems不仅获得了宝贵的技术支持,还拓展了市场渠道和客户资源。这种合作与共赢的伙伴关系,为ETI Systems的快速发展奠定了坚实的基础。

Advanced Energy公司的发展小趣事

在发展过程中,AE公司不断突破技术瓶颈,实现了多项重要技术的创新。这些技术突破不仅提升了公司产品的性能和质量,也推动了整个电子行业的发展。随着技术的不断进步,AE公司开始将业务拓展至全球市场。通过与各国客户的合作与交流,AE公司不断了解市场需求,优化产品设计,为全球客户提供更加优质的电源解决方案。

Corsair Memory Inc公司的发展小趣事

进入90年代后期,Corsair再次调整其产品策略,由生产标准内存转变为生产高于规格的内存,即超频内存。这一决策迎合了当时市场对高性能内存的需求,Corsair的超频内存迅速在市场上获得了认可。其产品的超级性能专为极大需求的应用软件而设,也一直被应用关键的服务器及极高性能的工作站(包括游戏系统)上。

问答坊 | AI 解惑

如何学习单片机!

初学者如何学习单片机!请看这个吧!《51单片机C语言快速上手》! http://u.xunzai.com/fileview_46147.html http://pickup.mofile.com/7992587555186412 最好是用迅雷下载 [ 本帖最后由 lgh050706 于 2009-8-5 21:30 编辑 ]…

查看全部问答>

全国大学生电子设计竞赛历年试题

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 全国大学生电子设计竞赛历年试题  …

查看全部问答>

3D报纸引领阅读潮流 成本与内容成制约发展瓶颈

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 自2009年年底起,3D在国内成为了“时尚”的代名词,继3D电影《阿凡达》、《爱丽丝梦游仙境》在中国市场赚得盆满钵满,3D似乎也成为了报刊企业的又一掘金点。   2010年4月16日,湖北《十堰晚 ...…

查看全部问答>

参与芯币兑换的AVR学习板和编程器调试总结

USB型51/AVR编程器   可能大家都已经等不及了,不过“磨刀不误砍柴工”,大家还是耐心等待我们将该学习板调试完,确保大家能够更好的学习     说明:该编程器支持AT89S51/52系列单片机,还支持AVR的全系列单片机。 该编程器使 ...…

查看全部问答>

S3C6410 拍照问题,高手指教

程序预览没问题,拍照800*600也没问题 但是当拍照改为1024*768,1280*1024,1600*1200时,会出现无效数据,随着分辨率的增大,无效数据会越来越多。 当为1600*1200时,有效的部分好像是800*600的两倍。 感觉好像取到的数据一直是800*600,又感觉 ...…

查看全部问答>

请教一个 MSP430+CC1100/CC1101 的问题

我利用MSP430控制CC1101进行两个模块之间的无线通信,发现如果地址控制字PKTCTRL1如果为0x06或0x02,通信没问题,但是如果设置为0,就只能通信几次,之后就不行了。 通信方式:模块A定时循环发送消息,模块B循环等待接收。 CC1101寄存器设置:模 ...…

查看全部问答>

请教关于Powerpc文件系统的问题

Powerpc现在编译的文件系统是jff2格式,用串口线先传倒powerpc的RAM里,再复制进flash,但是现在文件系统似乎限制了大小,如果传3M左右就能正常启动,如果大于4M就不能正常启动,系统会不停重启。但是如果系统能正常启动后,用FTP上传文件,则没有 ...…

查看全部问答>

什么工具开发驱动程序最快最简单

什么工具开发驱动程序最快最简单? 需要那些基本知识? 介绍几本相关的学习资料,谢了!…

查看全部问答>

workbench!!

之前用的是vxworks+Tornado开发方式,一切比较顺利!! 最近单位买了最新版的vxworks,开发环境是workbench,刚接触,本打算先做启动软盘尝试启动vxworks,可发现每次编译后,目标机出现v1.6++++++++++++++++++然后又重起,尝试了各种方法,都是这样,请各位 ...…

查看全部问答>