|
51單片機(jī)做的心形花樣流水燈,DIY小作品必備
數(shù)字心形.png (9.94 KB, 下載次數(shù): 81)
下載附件
2017-5-16 14:12 上傳
電路原理圖如下:
0.png (122.57 KB, 下載次數(shù): 54)
下載附件
2017-5-16 17:24 上傳
單片機(jī)源程序如下:
- /******************************************************************************************
- *說(shuō)明:將32個(gè)LED分成4組LED_P0,LED_P1,LED_P3,LED_P2,每一組代表8個(gè)LED燈,也就是講心形分成4個(gè)部分,
- * 如下圖所示,這樣,我們只需操作這些值,然后將這些值對(duì)應(yīng)到相應(yīng)的IO口上就可以了
- *
- * LED_P0.2 LED_P2.5
- * LED_P0.3 LED_P0.1 LED_P2.6 LED_P2.4
- * LED_P0.4 LED_P0.0 LED_P2.7 LED_P2.3
- * LED_P0.5 LED_P2.2
- * LED_P0.6 LED_P2.1
- * LED_P0.7 LED_P2.0
- * LED_P1.0 LED_P3.7
- * LED_P1.1 LED_P3.6
- * LED_P1.2 LED_P3.5
- * LED_P1.3 LED_P3.4
- * LED_P1.4 LED_P3.3
- * LED_P1.5 LED_P3.2
- * LED_P1.6 LED_P3.1
- * LED_P1.7 LED_P3.0
- *
- ***********************************************************************************************/
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define FOSC 12000000L //晶振設(shè)置,使用11.0592M Hz 6T雙速倍模式
- volatile uchar LED_P0 = 0xff;
- volatile uchar LED_P1 = 0xff;
- volatile uchar LED_P2 = 0xff;
- volatile uchar LED_P3 = 0xff;
- #define SCENE_COUNT 20//定義循環(huán)播放發(fā)的數(shù)量
- //可自定義場(chǎng)景,按場(chǎng)景順序播放多種狀態(tài)
- uchar scene[SCENE_COUNT] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED從低位往高位移
- uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED從高位往低位移
- uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED從1個(gè)亮到8個(gè)都點(diǎn)亮(從低位往高位)
- uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED從1個(gè)亮到8個(gè)都點(diǎn)亮(從高位往低位)
- uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED從8個(gè)全亮到一個(gè)都不亮(從低位往高位)
- uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED從8個(gè)全亮到一個(gè)都不亮(從高位往低位)
- uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED從低位往高位移(最低位始終為0)
- uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED從高位往低位移(最高位始終為0)
- uchar i,j; //定義循環(huán)變量
- uint tt=70; //定義時(shí)間指數(shù)
-
- //延時(shí)函數(shù)
- void Delayms(uint ms)
- {
- uint x,y;
- for(x=ms;x>0;x--)
- for(y=125;y>0;y--);
- }
- //將LED_P0,LED_P1,LED_P3,LED_P2的值的對(duì)應(yīng)到具體IO口上,并延時(shí)
- void Display(uint time)
- {
- P0 = ((LED_P0 & 0xfe)>>1) + ((LED_P1 & 0x01)<<7);
-
- P1 = ((LED_P1 & 0xfe)>>1) + ((LED_P3 & 0x01)<<7);
-
- P3 = ((LED_P3 & 0xfe)>>1) + ((LED_P2 & 0x01)<<7);
-
- P2 = ((LED_P2 & 0xfe)>>1) + ((LED_P0 & 0x01)<<7);
-
- Delayms(time);
- }
- //狀態(tài)0 所有LED閃爍3次
- void disp0()
- {
- for(i=0;i<3;i++)
- {
- LED_P0=0x00; LED_P2=0x00; LED_P3=0x00; LED_P1=0x00;
- Display(300);
- LED_P0=0xff; LED_P2=0xff; LED_P3=0xff; LED_P1=0xff;
- Display(300);
- }
- }
- //狀態(tài)1 LED順時(shí)針轉(zhuǎn)一圈
- void disp1()
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table1[i];
- Display(100);
- }
- LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P3=table1[i];
- Display(100);
- }
- LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table1[i];
- Display(100);
- }
- LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table1[i];
- Display(100);
- }
- LED_P0=0xff;
- }
- //狀態(tài)2 LED逆時(shí)針轉(zhuǎn)一圈
- void disp2()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- Display(100);
- }
- LED_P0=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table0[i];
- Display(100);
- }
- LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P3=table0[i];
- Display(100);
- }
- LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P2=table0[i];
- Display(100);
- }
- LED_P2=0xff;
- }
- //狀態(tài)3 4個(gè)LED同時(shí)順時(shí)、逆時(shí)針移動(dòng)1/4圈
- void disp3()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P1=table1[i];
- LED_P2=table1[i];
- LED_P3=table0[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P0=table1[i];
- LED_P1=table0[i];
- LED_P2=table0[i];
- LED_P3=table1[i];
- Display(100);
- }
- LED_P3=0xff; LED_P0=0xff;
- }
- //狀態(tài)4 2個(gè)LED同時(shí)順時(shí)針移動(dòng)半圈
- void disp4()
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table1[i];
- LED_P1=table1[i];
- Display(100);
- }
- LED_P2=0xff; LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P3=table1[i];
- LED_P0=table1[i];
- Display(100);
- }
- LED_P3=0xff; LED_P0=0xff;
- }
- //狀態(tài)5 2個(gè)LED同時(shí)逆時(shí)針移動(dòng)半圈
- void disp5()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P3=table0[i];
- Display(100);
- }
- LED_P0=0xff; LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table0[i];
- LED_P2=table0[i];
- Display(100);
- }
- LED_P1=0xff; LED_P2=0xff;
- }
- //狀態(tài)6 LED自上而下逐漸點(diǎn)亮(一半點(diǎn)亮一半不亮)
- void disp6()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P2=table3[i];
- Display(100);
- }
- LED_P0=0xff; LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table2[i];
- LED_P3=table3[i];
- Display(100);
- }
- LED_P1=0xff; LED_P3=0xff;
- }
- //狀態(tài)7 LED自下而上逐漸點(diǎn)亮(直到全部點(diǎn)亮)
- void disp7()
- {
- for(i=0;i<8;i++)
- {
- LED_P1=table3[i];
- LED_P3=table2[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P2=table2[i];
- Display(100);
- }
- }
- //狀態(tài)8 間斷8格的4個(gè)LED亮并逆時(shí)針旋轉(zhuǎn)
- void disp8()
- {
- for(j=0;j<2;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table0[i];
- LED_P1=table0[i];
- LED_P3=table0[i];
- Display(100);
- }
- LED_P0=0xff; LED_P2=0xff; LED_P1=0xff; LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table0[i];
- LED_P1=table0[i];
- LED_P3=table0[i];
- Display(100);
- }
- LED_P0=0xff; LED_P2=0xff; LED_P1=0xff; LED_P3=0xff;
- }
- }
- //狀態(tài)9 間斷8格的4個(gè)LED亮,然后逆時(shí)針逐漸點(diǎn)亮(直到全部點(diǎn)亮)
- void disp9()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P2=table2[i];
- LED_P1=table2[i];
- LED_P3=table2[i];
- Display(100);
- }
- Display(500);
- }
- //狀態(tài)10 從LED全部亮到全不亮(間斷8格的4個(gè)LED開(kāi)始逆時(shí)針熄滅)
- void disp10()
- {
- for(i=0;i<9;i++)
- {
- LED_P0=table4[i];
- LED_P2=table4[i];
- LED_P1=table4[i];
- LED_P3=table4[i];
- Display(100);
- }
- Display(300);
- }
- //狀態(tài)11 間斷8格的4個(gè)LED亮并順時(shí)針旋轉(zhuǎn)
- void disp11()
- {
- for(j=0;j<2;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table1[i];
- LED_P2=table1[i];
- LED_P1=table1[i];
- LED_P3=table1[i];
- Display(100);
- }
- LED_P0=0xff; LED_P2=0xff; LED_P1=0xff; LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table1[i];
- LED_P2=table1[i];
- LED_P1=table1[i];
- LED_P3=table1[i];
- Display(100);
- }
- LED_P0=0xff; LED_P2=0xff; LED_P1=0xff; LED_P3=0xff;
- }
- }
- //間斷8格的4個(gè)LED亮,然后順時(shí)針逐漸點(diǎn)亮(直到全部點(diǎn)亮)
- void disp12()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- LED_P2=table3[i];
- LED_P1=table3[i];
- LED_P3=table3[i];
- Display(100);
- }
- Display(1000);
- }
- //狀態(tài)13 從LED全部亮到全不亮(間斷8格的4個(gè)LED開(kāi)始順時(shí)針熄滅)
- void disp13()
- {
- for(i=0;i<9;i++)
- {
- LED_P0=table5[i];
- LED_P2=table5[i];
- LED_P1=table5[i];
- LED_P3=table5[i];
- Display(100);
- }
- Display(300);
- }
- //狀態(tài)14 從LED不亮到全亮(從P0.0、P1.0、P2.0、P3.7開(kāi)始逐步點(diǎn)亮)
- void disp14()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- LED_P1=table2[i];
- LED_P2=table2[i];
- LED_P3=table3[i];
- Display(100);
- }
- }
- //狀態(tài)15 從LED全亮到全不亮(從P0.7、P1.7、P2.7、P3.0開(kāi)始逐步熄滅
- void disp15()
- {
- for(i=0;i<9;i++)
- {
- LED_P0=table4[i];
- LED_P1=table5[i];
- LED_P2=table5[i];
- LED_P3=table4[i];
- Display(100);
- }
- Display(300);
- }
- //狀態(tài)16 LED燈交替閃爍(頻率有慢變快)
- void disp16()
- {
- for(i=0;i<5;i++)
- {
- LED_P0=0xaa; LED_P1=0xaa; LED_P2=0xaa; LED_P3=0xaa;
- Display(100);
- LED_P0=~LED_P0; LED_P1=~LED_P1; LED_P2=~LED_P2; LED_P3=~LED_P3;
- Display(100);
- }
- for(i=0;i<5;i++)
- {
- LED_P0=0xaa; LED_P1=0xaa; LED_P2=0xaa; LED_P3=0xaa;
- Display(200);
- LED_P0=~LED_P0; LED_P1=~LED_P1; LED_P2=~LED_P2; LED_P3=~LED_P3;
- Display(200);
- }
- for(i=0;i<5;i++)
- {
- LED_P0=0xaa; LED_P1=0xaa; LED_P2=0xaa; LED_P3=0xaa;
- Display(300);
- LED_P0=~LED_P0; LED_P1=~LED_P1; LED_P2=~LED_P2; LED_P3=~LED_P3;
- Display(300);
- }
- LED_P0=0xff; LED_P2=0xff; LED_P1=0xff; LED_P3=0xff;
- Display(300);
- }
- //狀態(tài)17 LED從P0.7開(kāi)始逆時(shí)針逐步點(diǎn)亮,(循環(huán)2次)并且速度會(huì)逐步提高
- void disp17()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P1=table2[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P3=table2[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P2=table2[i];
- Display(100);
- }
- LED_P0=0xff; LED_P1=0xff; LED_P3=0xff; LED_P2=0xff;
- /*******************************/
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- Display(50);
- }
- for(i=0;i<8;i++)
- {
- LED_P1=table2[i];
- Display(50);
- }
- for(i=0;i<8;i++)
- {
- LED_P3=table2[i];
- Display(50);
- }
- for(i=0;i<8;i++)
- {
- LED_P2=table2[i];
- Display(50);
- }
- LED_P0=0xff; LED_P1=0xff; LED_P3=0xff; LED_P2=0xff;
- }
- //狀態(tài)18 LED從P0.7開(kāi)始逆時(shí)針逐步點(diǎn)亮(每亮8位后就熄滅)
- void disp18()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- Display(100);
- }
- LED_P0=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table2[i];
- Display(100);
- }
- LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P3=table2[i];
- Display(100);
- }
- LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P2=table2[i];
- Display(100);
- }
- LED_P2=0xff;
- }
- //狀態(tài)19 LED從P2.7開(kāi)始順時(shí)針逐步點(diǎn)亮,(循環(huán)2次)并且速度會(huì)逐步提高
- void disp19()
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P3=table3[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P1=table3[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- Display(100);
- }
- LED_P0=0xff; LED_P1=0xff; LED_P3=0xff; LED_P2=0xff;
- /*******************************/
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- Display(50);
- }
- for(i=0;i<8;i++)
- {
- LED_P3=table3[i];
- Display(50);
- }
- for(i=0;i<8;i++)
- {
- LED_P1=table3[i];
- Display(50);
- }
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- Display(50);
- }
- LED_P0=0xff; LED_P1=0xff; LED_P3=0xff; LED_P2=0xff;
- }
- //狀態(tài)20 LED從P2.7開(kāi)始順時(shí)針逐步點(diǎn)亮(每亮8位后就熄滅)
- void disp20()
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- Display(100);
- }
- LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P3=table3[i];
- Display(100);
- }
- LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table3[i];
- Display(100);
- }
- LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- Display(100);
- }
- LED_P0=0xff;
- }
- //狀態(tài)21 2個(gè)LED開(kāi)始上下移動(dòng)半圈
- void disp21()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table1[i];
- Display(100);
- }
- LED_P0=0xff; LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table0[i];
- LED_P3=table1[i];
- Display(100);
- }
-
- for(i=0;i<8;i++)
- {
- LED_P1=table1[i];
- LED_P3=table0[i];
- Display(100);
- }
- LED_P1=0xff; LED_P3=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table1[i];
- LED_P2=table0[i];
- Display(100);
- }
- }
- //裝態(tài)22 2個(gè)LED自上而下移動(dòng)(循環(huán)5次,且頻率漸快,到最快時(shí)持續(xù)循環(huán)16次,然后循環(huán)5次頻率再逐漸降低)
- void disp22()
- {
- for(j=0;j<5;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table1[i];
- Display(tt);
- }
- LED_P0=0xff; LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table0[i];
- LED_P3=table1[i];
- Display(tt);
- }
- LED_P1=0xff; LED_P3=0xff;
- tt=tt-10;
- }
- for(j=0;j<16;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table1[i];
- Display(20);
- }
- LED_P0=0xff; LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table0[i];
- LED_P3=table1[i];
- Display(20);
- }
- LED_P1=0xff; LED_P3=0xff;
- }
- tt=20;
- for(j=0;j<5;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table1[i];
- Display(tt);
- }
- LED_P0=0xff; LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table0[i];
- LED_P3=table1[i];
- Display(tt);
- }
- LED_P1=0xff; LED_P3=0xff;
- tt=tt+10;
- }
- tt=70;
-
- }
- //狀態(tài)23 LED上下交替閃爍
- void disp23()
- {
- for(i=0;i<2;i++)
- {
- LED_P0=0x00; LED_P2=0x00;
- Display(1000);
- LED_P0=0xff; LED_P2=0xff;
- LED_P1=0x00; LED_P3=0x00;
- Display(1000);
- LED_P1=0xff; LED_P3=0xff;
- }
- }
- //狀態(tài)24 LED左右交替閃爍
- void disp24()
- {
- LED_P1=0xff; LED_P3=0xff; LED_P0=0xff; LED_P2=0xff;
- for(i=0;i<2;i++)
- {
- LED_P0=0x00; LED_P1=0x00;
- Display(1000);
- LED_P0=0xff; LED_P1=0xff;
- LED_P2=0x00; LED_P3=0x00;
- Display(1000);
- LED_P2=0xff; LED_P3=0xff;
- }
- }
- //狀態(tài)25 LED交替閃爍
- void disp25()
- {
- for(i=0;i<5;i++)
- {
- LED_P0=0xaa; LED_P1=0xaa; LED_P2=0xaa; LED_P3=0xaa;
- Display(1000);
- LED_P0=~LED_P0; LED_P1=~LED_P1; LED_P2=~LED_P2; LED_P3=~LED_P3;
- Display(1000);
- }
- }
- //狀態(tài)26 2個(gè)LED開(kāi)始上下移動(dòng)半圈(LED不亮流水)
- void disp26()
- {
- LED_P0=0x00;LED_P1=0x00;LED_P2=0x00;LED_P3=0x00;
- for(i=0;i<8;i++)
- {
- LED_P0=~table0[i];
- LED_P2=~table1[i];
- Display(200);
- }
- LED_P0=0x00; LED_P2=0x00;
- for(i=0;i<8;i++)
- {
- LED_P1=~table0[i];
- LED_P3=~table1[i];
- Display(200);
- }
-
- for(i=0;i<8;i++)
- {
- LED_P1=~table1[i];
- LED_P3=~table0[i];
- Display(200);
- }
- LED_P1=0x00; LED_P3=0x00;
- for(i=0;i<8;i++)
- {
- LED_P0=~table1[i];
- LED_P2=~table0[i];
- Display(200);
- }
- }
- //狀態(tài)27 逐步順時(shí)針點(diǎn)亮P2、P1的LED,熄滅后,再順時(shí)針點(diǎn)亮P0、P3的LED
- void disp27()
- {
- LED_P0=0xff; LED_P1=0xff; LED_P2=0xff; LED_P3=0xff;
- for(j=0;j<2;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- LED_P1=table3[i];
- Display(100);
- }
- LED_P2=0xff; LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- LED_P3=table3[i];
- Display(100);
- }
- LED_P0=0xff; LED_P3=0xff;
- }
- }
-
- //狀態(tài)28 P1、P2和P0、P3交替閃爍
- void disp28()
- {
- for(i=0;i<2;i++)
- {
- LED_P1=0x00; LED_P2=0x00; LED_P0=0xff; LED_P3=0xff;
- Display(1000);
- LED_P1=0xff; LED_P2=0xff; LED_P0=0x00; LED_P3=0x00;
- Display(1000);
- }
- LED_P1=0xff; LED_P2=0xff; LED_P0=0xff; LED_P3=0xff;
- }
- //狀態(tài)29 逐步順時(shí)針點(diǎn)亮P2、P1的LED,再順時(shí)熄滅后,再順時(shí)針點(diǎn)亮P0、P3的LED,再順時(shí)熄滅
- void disp29()
- {
- LED_P0=0xff; LED_P1=0xff; LED_P2=0xff; LED_P3=0xff;
- for(j=0;j<2;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- LED_P1=table3[i];
- Display(100);
- }
- for(i=0;i<9;i++)
- {
- LED_P2=table5[i];
- LED_P1=table5[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- LED_P3=table3[i];
- Display(100);
- }
- for(i=0;i<9;i++)
- {
- LED_P0=table5[i];
- LED_P3=table5[i];
- Display(100);
- }
- }
- Display(200);
- }
- //狀態(tài)30 逐步逆時(shí)針點(diǎn)亮P2、P1的LED,熄滅后,再逆時(shí)針點(diǎn)亮P0、P3的LED
- void disp30()
- {
- LED_P0=0xff; LED_P1=0xff; LED_P2=0xff; LED_P3=0xff;
- for(j=0;j<2;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table2[i];
- LED_P1=table2[i];
- Display(100);
- }
- LED_P2=0xff; LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P3=table2[i];
- Display(100);
- }
- LED_P0=0xff; LED_P3=0xff;
- }
- }
- //狀態(tài)31 逐步逆時(shí)針點(diǎn)亮P2、P1的LED,再逆時(shí)熄滅后,再逆時(shí)針點(diǎn)亮P0、P3的LED,再逆時(shí)熄滅
- void disp31()
- {
- LED_P0=0xff; LED_P1=0xff; LED_P2=0xff; LED_P3=0xff;
- for(j=0;j<2;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table2[i];
- LED_P1=table2[i];
- Display(100);
- }
- for(i=0;i<9;i++)
- {
- LED_P2=table4[i];
- LED_P1=table4[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P3=table2[i];
- Display(100);
- }
- for(i=0;i<9;i++)
- {
- LED_P0=table4[i];
- LED_P3=table4[i];
- Display(100);
- }
- }
- Display(200);
- }
- //狀態(tài)32 LED自上而下逐步點(diǎn)亮,然后從下往上逐步熄滅
- void disp32()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P2=table3[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P1=table2[i];
- LED_P3=table3[i];
- Display(100);
- }
- for(i=0;i<9;i++)
- {
- LED_P1=table5[i];
- LED_P3=table4[i];
- Display(100);
- }
- for(i=0;i<9;i++)
- {
- LED_P0=table5[i];
- LED_P2=table4[i];
- Display(100);
- }
- }
- //狀態(tài)33 LED從左往右開(kāi)始點(diǎn)亮(直到全亮),然后從左右兩邊開(kāi)始熄滅(直到全部熄滅)
- void disp33()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- LED_P1=table2[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- LED_P3=table2[i];
- Display(100);
- }
- Display(500);
- for(i=0;i<9;i++)
- {
- LED_P2=table4[i];
- LED_P3=table5[i];
- LED_P1=table4[i];
- LED_P0=table5[i];
- Display(100);
- }
- Display(300);
- }
- //狀態(tài)34 LED從左往右開(kāi)始點(diǎn)亮(直到全亮),然后從中間往左右邊熄滅
- void disp34()
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table2[i];
- LED_P3=table3[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P1=table3[i];
- Display(100);
- }
- Display(500);
- for(i=0;i<9;i++)
- {
- LED_P2=table5[i];
- LED_P3=table4[i];
- LED_P1=table5[i];
- LED_P0=table4[i];
- Display(100);
- }
- Display(300);
- }
- //狀態(tài)35 從P2.7、P1.7開(kāi)始同時(shí)順時(shí)針旋轉(zhuǎn),直到LED全亮
- void disp35()
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- LED_P1=table3[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P3=table3[i];
- LED_P0=table3[i];
- Display(100);
- }
- }
- //狀態(tài)36 從P0.7、P3.1開(kāi)始同時(shí)逆時(shí)針旋轉(zhuǎn),直到LED全亮
- void disp36()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table2[i];
- LED_P3=table2[i];
- Display(100);
- }
- for(i=0;i<8;i++)
- {
- LED_P1=table2[i];
- LED_P2=table2[i];
- Display(100);
- }
- }
- //狀態(tài)37 2個(gè)LED自上而下移動(dòng),并點(diǎn)亮最下2個(gè)LED,然后2個(gè)LED再自下而上回去,同時(shí)4個(gè)LED(上下各2個(gè)LED)再來(lái)回移動(dòng)一次
- void disp37()
- {
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table1[i];
- Display(100);
- }
- LED_P0=0xff; LED_P2=0xff;
- for(i=0;i<8;i++)
- {
- LED_P1=table0[i];
- LED_P3=table1[i];
- Display(100);
- }
-
- for(i=0;i<8;i++)
- {
- LED_P1=table7[i];
- LED_P3=table6[i];
- Display(100);
- }
- LED_P1=0x7f; LED_P3=0xfe;
- for(i=0;i<8;i++)
- {
- LED_P0=table1[i];
- LED_P2=table0[i];
- Display(100);
- }
-
- for(i=0;i<8;i++)
- {
- LED_P0=table0[i];
- LED_P2=table1[i];
- LED_P1=table1[i];
- LED_P3=table0[i];
- Display(200);
- }
-
- for(i=0;i<8;i++)
- {
- LED_P0=table1[i];
- LED_P1=table0[i];
- LED_P2=table0[i];
- LED_P3=table1[i];
- Display(200);
- }
- LED_P0=0xff;LED_P1=0xff; LED_P2=0xff;LED_P3=0xff;
- }
- //狀態(tài)38 逐步順時(shí)針點(diǎn)亮P2、P1的LED,熄滅后,再順時(shí)針點(diǎn)亮P0、P3的LED
- void disp38()
- {
- LED_P0=0xff; LED_P1=0xff; LED_P2=0xff; LED_P3=0xff;
- for(j=0;j<2;j++)
- {
- for(i=0;i<8;i++)
- {
- LED_P2=table3[i];
- LED_P1=table3[i];
- Display(100);
- }
- LED_P2=0xff; LED_P1=0xff;
- for(i=0;i<8;i++)
- {
- LED_P0=table3[i];
- LED_P3=table3[i];
- Display(100);
- }
- LED_P0=0xff; LED_P3=0xff;
- }
- }
- //狀態(tài)39 P1、P3LED(下半部分)一直亮,上半部分LED向外擴(kuò)張亮,然后閃爍3次
- void disp39()
- {
- LED_P1=0x00; LED_P3=0x00;
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
心形花樣流水燈.zip
(408.8 KB, 下載次數(shù): 32)
2017-5-16 14:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|