单片机 心型 LED DIY.docx
- 文档编号:4280147
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:32
- 大小:928.79KB
单片机 心型 LED DIY.docx
《单片机 心型 LED DIY.docx》由会员分享,可在线阅读,更多相关《单片机 心型 LED DIY.docx(32页珍藏版)》请在冰豆网上搜索。
单片机心型LEDDIY
七彩心型LED灯(带音乐可遥控)
带音乐可遥控!
是个不错的DIY项目!
淘宝店铺:
http:
//snd-
程序如下:
#include"led.h"
#include"IO.H"
//externbitf_100ms;
externucharb_LDiv1;
ucharb_led_sys_num;
ucharb_led_delay_time;
ucharb_led_module_num;
bitf_sys_one;
bitf_up_down_add;
bitf_music_led_blink;
voidSBR_LED_DISP_L();
voidSBR_LED_DISP_R();
voidSBR_LED_space_1();
voidSBR_LED_space_2();
//-----------全亮------------------
voidSBR_led_on_all()
{
P0=P0&0x80;
P1=P1&0x80;
P2=0x00;
P3=0x00;
}
//-----------全灭------------------
voidSBR_led_off_all()
{
P0=P0|0x7f;
P1=P1|0x7f;
P2=0xFF;
P3=0xFF;
}
//-----------显示1/3-------------
voidSBR_DISP_3_1()
{
LED14=0;
LED11=0;
LED01=0;
LED04=0;
//LED07=0;
LED25=0;
LED22=0;
LED37=0;
LED35=0;
}
//-----------显示1/3-------------
voidSBR_DISP_3_2()
{
LED16=0;
LED13=0;
LED10=0;
LED02=0;
LED05=0;
LED27=0;
LED24=0;
LED21=0;
LED36=0;
LED34=0;
}
//-----------显示1/3-------------
voidSBR_DISP_3_3()
{
LED15=0;
LED12=0;
LED00=0;
LED03=0;
LED06=0;
LED26=0;
LED23=0;
LED20=0;
LED31=0;
LED33=0;
LED32=0;
}
//--------右上部分全亮-------------------
voidSBR_R_UP_DISP()
{
LED16=0;
LED15=0;
LED14=0;
LED13=0;
LED12=0;
LED11=0;
LED10=0;
}
//--------左上部分全亮-------------------
voidSBR_L_UP_DISP()
{
#if0
LED30=0;
LED31=0;
LED32=0;
LED33=0;
LED34=0;
LED35=0;
LED36=0;
LED37=0;
#else
P3=0X00;
#endif
}
//--------右下部分全亮-------------------
voidSBR_R_DOWN_DISP()
{
#if1
LED00=0;
LED01=0;
LED02=0;
LED03=0;
LED04=0;
LED05=0;
LED06=0;
//LED07=0;
#else
P0=0X00;
#endif
}
//--------左下部分全亮-------------------
voidSBR_L_DOWN_DISP()
{
#if0
LED20=0;
LED21=0;
LED22=0;
LED23=0;
LED24=0;
LED25=0;
LED26=0;
LED27=0;
#else
P2=0X00;
#endif
}
//----------跟随音乐的频率闪烁----------------
voidSBR_music_led()
{
if(f_music_led_blink)
{
if(b_LDiv1)
{
SBR_led_on_all();
}
else
{
SBR_led_off_all();
}
}
}
//-------------------------
//----------跟着音乐闪烁的模式持续的时间--------------
voidSBR_music_hold_time()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_module_num=0;
b_led_delay_time=0;
f_music_led_blink=1;
}
++b_led_delay_time;
if(b_led_delay_time==200)
{
b_led_delay_time=0;
f_music_led_blink=0;
f_sys_one=0;
++b_led_sys_num;
}
}
//;-------------------------//
voidSBR_LED_R_L_UP_DO()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_module_num=0;
b_led_delay_time=0;
}
++b_led_delay_time;
if(b_led_delay_time>=10)
{
b_led_delay_time=0;
++b_led_module_num;
switch(b_led_module_num)
{
case0:
SBR_led_off_all();
SBR_L_UP_DISP();
break;
case1:
SBR_led_off_all();
SBR_R_DOWN_DISP();
break;
case2:
SBR_led_off_all();
SBR_L_DOWN_DISP();
break;
case3:
SBR_led_off_all();
SBR_R_UP_DISP();
break;
case4:
SBR_led_off_all();
SBR_L_UP_DISP();
break;
case5:
//SBR_led_off_all();
SBR_R_DOWN_DISP();
break;
case6:
//SBR_led_off_all();
SBR_L_DOWN_DISP();
break;
case7:
//SBR_led_off_all();
SBR_R_UP_DISP();
break;
case8:
f_sys_one=0;
++b_led_sys_num;//退出
break;
}
}
}
//;----------所有的灯在闪烁-----------
bitf_blink_off;
ucharb_blink_num;
voidSBR_LED_BLINK_ALL()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_module_num=0;
b_led_delay_time=0;
f_blink_off=0;
}
++b_led_delay_time;
if(b_led_delay_time>=5)
{
b_led_delay_time=0;
if(!
f_blink_off)
{
f_blink_off=1;
SBR_led_on_all();
}
else
{
f_blink_off=0;
SBR_led_off_all();
}
++b_led_module_num;
if(b_led_module_num==6)
{
b_led_module_num=0;
f_sys_one=0;
++b_led_sys_num;//退出
}
}
}
//---------显示右半边---------------------
voidSBR_LED_DISP_R()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_delay_time=0;
}
P0=P0&0x80;
P1=P1&0x80;
P2=0xFF;
P3=0xFF;
++b_led_delay_time;
if(b_led_delay_time>=10)
{
b_led_delay_time=0;
f_sys_one=0;
++b_led_sys_num;
}
}
//---------显示右半边---------------------
voidSBR_LED_DISP_L()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_delay_time=0;
}
P0=P0|0x7F;
P1=P1|0x7F;
P2=0x00;
P3=0x00;
++b_led_delay_time;
if(b_led_delay_time==10)
{
b_led_delay_time=0;
f_sys_one=0;
++b_led_sys_num;
}
}
//-------------间隔一个灯亮-------------
voidSBR_LED_space_1()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_delay_time=0;
}
//P0=0x55;//01010101
//P1=0xaa;//10101010
LED00=1;
LED01=0;
LED02=1;
LED03=0;
LED04=1;
LED05=0;
LED06=1;
//LED07=0;
LED10=0;
LED11=1;
LED12=0;
LED13=1;
LED14=0;
LED15=1;
LED16=0;
P2=0x55;
P3=0x69;//01101001
//
++b_led_delay_time;
if(b_led_delay_time==10)
{
b_led_delay_time=0;
f_sys_one=0;
++b_led_sys_num;
}
}
//-------------间隔一个灯亮-------------
voidSBR_LED_space_2()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_delay_time=0;
}
P0=0xaa;
P1=0xd5;
P2=0xaa;
P3=0x96;
++b_led_delay_time;
if(b_led_delay_time==10)
{
b_led_delay_time=0;
f_sys_one=0;
++b_led_sys_num;
}
}
//-----------从上往下显示-------------------------
bitf_up_down_over;
ucharb_time_up_down,b_up_down_num;
voidSBR_LED_UP_TO_DOWN()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_module_num=0;
b_led_delay_time=0;
f_up_down_add=0;
f_up_down_over=0;
}
++b_led_delay_time;
if(b_led_delay_time==5)
{
b_led_delay_time=0;
switch(b_led_module_num)
{
case0:
SBR_led_off_all();
f_up_down_add=0;
if(f_up_down_over)
{
f_sys_one=0;
++b_led_sys_num;//退出
}
LED30=0;
LED16=0;
LED32=0;
break;
case1:
LED15=0;
LED33=0;
break;
case2:
LED14=0;
LED34=0;
break;
case3:
LED13=0;
LED35=0;
break;
case4:
LED12=0;
LED31=0;
break;
case5:
LED11=0;
LED36=0;
break;
case6:
LED10=0;
LED37=0;
break;
case7:
LED20=0;
LED00=0;
break;
case8:
LED21=0;
LED01=0;
break;
case9:
LED22=0;
LED02=0;
break;
case10:
LED23=0;
LED03=0;
break;
case11:
LED24=0;
LED04=0;
break;
case12:
LED25=0;
LED05=0;
break;
case13:
LED26=0;
LED06=0;
break;
case14:
LED27=0;
//LED07=0;
break;
case15:
SBR_led_off_all();
f_up_down_add=1;
LED27=0;
//LED07=0;
SBR_led_on_all();
f_up_down_over=1;
break;
}
if(f_up_down_add)
--b_led_module_num;
else
++b_led_module_num;
}
}
//;-------1/3先亮1/3再亮-1/3最后亮--=/
voidSBR_LED_DISP1_2_3()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_module_num=0;
b_led_delay_time=0;
SBR_led_off_all();
SBR_DISP_3_1();
}
++b_led_delay_time;
if(b_led_delay_time==50)
{
b_led_delay_time=0;
++b_led_module_num;
if(b_led_module_num==1)
{
SBR_DISP_3_2();
}
if(b_led_module_num==2)
{
SBR_DISP_3_3();
}
if(b_led_module_num==3)
{
f_sys_one=0;
++b_led_sys_num;//退出
}
}
}
//---------从左至右循序亮灯------------------------------
voidSBR_LED_L_TO_R_DISP()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_module_num=0;
b_led_delay_time=0;
SBR_led_off_all();
}
++b_led_delay_time;
if(b_led_delay_time==2)
{
b_led_delay_time=0;
++b_led_module_num;
switch(b_led_module_num)
{
case0:
LED30=0;
break;
case1:
LED30=0;
break;
case2:
LED32=0;
break;
case3:
LED33=0;
break;
case4:
LED34=0;
break;
case5:
LED35=0;
break;
case6:
LED31=0;
break;
case7:
LED36=0;
break;
case8:
LED37=0;
break;
case9:
LED20=0;
break;
break;
case10:
LED21=0;
break;
case11:
LED22=0;
break;
case12:
LED23=0;
break;
case13:
LED24=0;
break;
case14:
LED25=0;
break;
case15:
LED26=0;
break;
case16:
LED27=0;
break;
case17:
//LED07=0;
break;
case18:
LED06=0;
break;
case19:
LED05=0;
break;
case20:
LED04=0;
break;
case21:
LED03=0;
break;
case22:
LED02=0;
break;
case23:
LED01=0;
break;
case24:
LED00=0;
break;
case25:
LED10=0;
break;
case26:
LED11=0;
break;
case27:
LED12=0;
break;
case28:
LED13=0;
break;
case29:
LED14=0;
break;
case30:
LED15=0;
break;
case31:
LED16=0;
break;
case32:
f_sys_one=0;
++b_led_sys_num;//退出
break;
}
}
}
//----------------一个灯从左上往下走一个灯从右下往上走
voidSBR_L_DOWN_R_UP()
{
if(!
f_sys_one)
{
f_sys_one=1;
b_led_module_num=0;
b_led_delay_time=0;
SBR_led_off_all();
}
++b_led_delay_time;
if(b_led_delay_time==2)
{
b_led_delay_time=0;
++b_led_module_num;
switch(b_led_module_num)
{
case0:
break;
case1:
LED30=0;
//LED07=0;
break;
case2:
LED32=0;
LED06=0;
break;
case3:
LED33=0;
LED05=0;
break;
case4:
LED34=0;
LED04=0;
break;
case5:
LED35=0;
LED03=0;
break;
case6:
LED31=0;
LED02=0;
break;
case7:
LED36=0;
LED01=0;
break;
case8:
LED37=0;
LED00=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 心型 LED DIY