1、单片机 心型 LED DIY七彩心型 LED 灯(带音乐 可遥控)带音乐 可遥控 ! 是个不错的DIY 项目!淘宝店铺:http:/snd- 程序如下: #include led.h #include IO.H /extern bit f_100ms; extern uchar b_LDiv1; uchar b_led_sys_num; uchar b_led_delay_time; uchar b_led_module_num; bit f_sys_one; bit f_up_down_add; bit f_music_led_blink; void SBR_LED_DISP_L(); vo
2、id SBR_LED_DISP_R(); void SBR_LED_space_1();void SBR_LED_space_2();/-全亮- void SBR_led_on_all() P0=P0&0x80; P1=P1&0x80; P2=0x00; P3=0x00; /-全灭- void SBR_led_off_all() P0=P0|0x7f; P1=P1|0x7f; P2=0xFF; P3=0xFF; /-显示1/3 -void SBR_DISP_3_1() LED14=0; LED11=0; LED01=0; LED04=0; /LED07=0; LED25=0; LED22=0;
3、 LED37=0; LED35=0; /-显示1/3 -void SBR_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 -void SBR_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;/-右上部分 全亮-void SBR_R_UP_DISP() LED1
4、6=0; LED15=0; LED14=0; LED13=0; LED12=0; LED11=0; LED10=0;/-左上部分 全亮-void SBR_L_UP_DISP()#if 0 LED30=0; LED31=0; LED32=0; LED33=0; LED34=0; LED35=0; LED36=0; LED37=0; #else P3=0X00; #endif/-右下部分 全亮-void SBR_R_DOWN_DISP()#if 1 LED00=0; LED01=0; LED02=0; LED03=0; LED04=0; LED05=0; LED06=0;/ LED07=0; #e
5、lse P0=0X00; #endif/-左下部分 全亮-void SBR_L_DOWN_DISP()#if 0 LED20=0; LED21=0; LED22=0; LED23=0; LED24=0; LED25=0; LED26=0; LED27=0; #else P2=0X00; #endif/-跟随音乐的频率闪烁-void SBR_music_led() if(f_music_led_blink) if(b_LDiv1) SBR_led_on_all(); else SBR_led_off_all(); /- /-跟着音乐闪烁的模式 持续的时间- void SBR_music_hold
6、_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; /;-/void SBR_LED_R_L_UP_DO() if(!f_sys_one) f_sys_one=1; b_led_module_num=0; b_led_delay_
7、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) case 0: SBR_led_off_all(); SBR_L_UP_DISP(); break; case 1: SBR_led_off_all(); SBR_R_DOWN_DISP(); break; case 2: SBR_led_off_all(); SBR_L_DOWN_DISP(); break; case 3: SBR_led_off_all(); S
8、BR_R_UP_DISP(); break; case 4: SBR_led_off_all(); SBR_L_UP_DISP(); break; case 5: / SBR_led_off_all(); SBR_R_DOWN_DISP(); break; case 6: / SBR_led_off_all(); SBR_L_DOWN_DISP(); break; case 7: / SBR_led_off_all(); SBR_R_UP_DISP(); break; case 8: f_sys_one=0; +b_led_sys_num;/退出 break; /;-所有的灯在闪烁- bit
9、f_blink_off; uchar b_blink_num;void SBR_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_mod
10、ule_num; if(b_led_module_num=6) b_led_module_num=0; f_sys_one=0; +b_led_sys_num; /退出 /-显示 右半边-void SBR_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; /-显示 右半边
11、-void SBR_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;/-间隔一个灯亮-void SBR_LED_space_1() if(!f_sys_one)f_sys_one=1; b_led_delay_time=0; / P0=0x55; /0101 0101/
12、P1=0xaa; /1010 1010LED00=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;/-间隔一个灯亮-void SBR_LED_space_2() if(!f_sys_
13、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;/-从上 往下 显示-bit f_up_down_over;uchar b_time_up_down,b_up_down_num;void SBR_LED_UP_TO_DOWN() if(!f_sys_one) f_sys_one=1; b_led_module_num=0; b
14、_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) case 0: 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 ; case 1: LED15=0; LED33=0;
15、break ; case 2: LED14=0; LED34=0; break ; case 3: LED13=0; LED35=0; break ; case 4: LED12=0; LED31=0; break ; case 5: LED11=0; LED36=0; break ; case 6: LED10=0; LED37=0; break ; case 7: LED20=0; LED00=0; break ; case 8: LED21=0; LED01=0; break ; case 9: LED22=0; LED02=0; break ; case 10: LED23=0; LE
16、D03=0; break ; case 11: LED24=0; LED04=0; break ; case 12: LED25=0; LED05=0; break ; case 13: LED26=0; LED06=0; break ; case 14: LED27=0;/ LED07=0; break ; case 15: 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;
17、 else +b_led_module_num; /;-1/3先亮 1/3再亮- 1/3最后亮-=/void SBR_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(); i
18、f(b_led_module_num=2) SBR_DISP_3_3(); if(b_led_module_num=3) f_sys_one=0; +b_led_sys_num; /退出 /-从左至右 循序亮灯- void SBR_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
19、; switch(b_led_module_num) case 0: LED30=0; break; case 1: LED30=0; break; case 2: LED32=0; break; case 3: LED33=0; break; case 4: LED34=0; break; case 5: LED35=0; break; case 6: LED31=0; break; case 7: LED36=0; break; case 8: LED37=0; break; case 9: LED20=0; break; break; case 10: LED21=0; break; c
20、ase 11: LED22=0; break; case 12: LED23=0; break; case 13: LED24=0; break; case 14: LED25=0; break; case 15: LED26=0; break; case 16: LED27=0; break; case 17:/ LED07=0; break; case 18: LED06=0; break; case 19: LED05=0; break; case 20: LED04=0; break; case 21: LED03=0; break; case 22: LED02=0; break;
21、case 23: LED01=0; break; case 24: LED00=0; break; case 25: LED10=0; break; case 26: LED11=0; break; case 27: LED12=0; break; case 28: LED13=0; break; case 29: LED14=0; break; case 30: LED15=0; break; case 31: LED16=0; break; case 32: f_sys_one=0; +b_led_sys_num;/退出 break; /-一个灯从 左上 往下走 一个灯从 右下往上走 vo
22、id SBR_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) case 0: break; case 1: LED30=0;/ LED07=0; break; case 2: LED32=0; LED06=0; break; case 3: LED33=0; LED05=0; break; case 4: LED34=0; LED04=0; break; case 5: LED35=0; LED03=0; break; case 6: LED31=0; LED02=0; break; case 7: LED36=0; LED01=0; break; case 8: LED37=0; LED00=0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1