历史上的今天
今天是: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;
}
}
}
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 自2009年年底起,3D在国内成为了“时尚”的代名词,继3D电影《阿凡达》、《爱丽丝梦游仙境》在中国市场赚得盆满钵满,3D似乎也成为了报刊企业的又一掘金点。 2010年4月16日,湖北《十堰晚 ...… 查看全部问答> |
|
USB型51/AVR编程器 可能大家都已经等不及了,不过“磨刀不误砍柴工”,大家还是耐心等待我们将该学习板调试完,确保大家能够更好的学习 说明:该编程器支持AT89S51/52系列单片机,还支持AVR的全系列单片机。 该编程器使 ...… 查看全部问答> |
|
程序预览没问题,拍照800*600也没问题 但是当拍照改为1024*768,1280*1024,1600*1200时,会出现无效数据,随着分辨率的增大,无效数据会越来越多。 当为1600*1200时,有效的部分好像是800*600的两倍。 感觉好像取到的数据一直是800*600,又感觉 ...… 查看全部问答> |
|
我利用MSP430控制CC1101进行两个模块之间的无线通信,发现如果地址控制字PKTCTRL1如果为0x06或0x02,通信没问题,但是如果设置为0,就只能通信几次,之后就不行了。 通信方式:模块A定时循环发送消息,模块B循环等待接收。 CC1101寄存器设置:模 ...… 查看全部问答> |
|
Powerpc现在编译的文件系统是jff2格式,用串口线先传倒powerpc的RAM里,再复制进flash,但是现在文件系统似乎限制了大小,如果传3M左右就能正常启动,如果大于4M就不能正常启动,系统会不停重启。但是如果系统能正常启动后,用FTP上传文件,则没有 ...… 查看全部问答> |
|
之前用的是vxworks+Tornado开发方式,一切比较顺利!! 最近单位买了最新版的vxworks,开发环境是workbench,刚接触,本打算先做启动软盘尝试启动vxworks,可发现每次编译后,目标机出现v1.6++++++++++++++++++然后又重起,尝试了各种方法,都是这样,请各位 ...… 查看全部问答> |




