单片机 心型 LED DIY.docx

上传人:b****6 文档编号:4280147 上传时间:2022-11-28 格式:DOCX 页数:32 大小:928.79KB
下载 相关 举报
单片机 心型 LED DIY.docx_第1页
第1页 / 共32页
单片机 心型 LED DIY.docx_第2页
第2页 / 共32页
单片机 心型 LED DIY.docx_第3页
第3页 / 共32页
单片机 心型 LED DIY.docx_第4页
第4页 / 共32页
单片机 心型 LED DIY.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

单片机 心型 LED DIY.docx

《单片机 心型 LED DIY.docx》由会员分享,可在线阅读,更多相关《单片机 心型 LED DIY.docx(32页珍藏版)》请在冰豆网上搜索。

单片机 心型 LED DIY.docx

单片机心型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;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1