久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 992|回復: 1
打印 上一主題 下一主題
收起左側

51單片機控制32個發光二極管,至少三種花樣程序怎么寫阿?

[復制鏈接]
跳轉到指定樓層
樓主
ID:1048723 發表于 2022-10-22 14:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
at89c51控制32個發光二極管,至少三種花樣程序怎么寫阿?大佬們!!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1048764 發表于 2022-10-22 20:32 | 只看該作者
#include <REG52.H>
#define        uint        unsigned int
#define        uchar        unsigned char
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個亮到8個都點亮(從低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED從1個亮到8個都點亮(從高位往低位)
uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED從8個全亮到一個都不亮(從低位往高位)
uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED從8個全亮到一個都不亮(從高位往低位)
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;                //定義循環變量
uint tt=70;                //定義時間指數
void delay(uint time)        //延時函數
{
        uint x,y;
        for(x=time;x>0;x--)
        for(y=100;y>0;y--);
}

void disp0()                        //狀態0 所有LED閃爍3次
{
        for(i=0;i<1;i++)
        {
                P0=0x00; P2=0x00; P3=0x00; P1=0x00;
                delay(12000);
                P0=0xff; P2=0xff; P3=0xff; P1=0xff;
                delay(300);
        }
}
void disp7()                        //狀態7 LED自下而上逐漸點亮(直到全部點亮)再依次全滅
{
        for(i=0;i<8;i++)
        {
                P1=table3[i];
                P3=table2[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                P2=table2[i];
                delay(100);
        }
        delay(3800);
        for(i=0;i<8;i++)
        {
                P1=table5[i];
                P3=table4[i];
                delay(100);
        }
        P1=0xff;P3=0xff;
        delay(100);
        for(i=0;i<8;i++)
        {
                P0=table4[i];
                P2=table4[i];
                delay(100);
        }
        P0=0xff;P1=0xff;P2=0xff;P3=0xff;
        delay(100);
}

void disp9()                        //狀態9 間斷8格的4個LED亮,然后逆時針逐漸點亮(直到全部點亮)
{
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                P2=table2[i];
                P1=table2[i];
                P3=table2[i];
                delay(100);
        }
        delay(100);       
}

void disp10()                        //狀態10 從LED全部亮到全不亮(間斷8格的4個LED開始逆時針熄滅)
{
        for(i=0;i<9;i++)
        {
                P0=table5[i];
                P2=table4[i];
                P1=table4[i];
                P3=table4[i];
                delay(100);
        }
        delay(300);
}

void disp12()                        //間斷8格的4個LED亮,然后順時針逐漸點亮(直到全部點亮)
{
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                P2=table3[i];
                P1=table3[i];
                P3=table3[i];
                delay(100);
        }
        delay(5100);
}

void disp13()                        //狀態13 從LED全部亮到全不亮(間斷8格的4個LED開始順時針熄滅)
{
        for(i=0;i<9;i++)
        {
                P0=table4[i];
                P2=table5[i];
                P1=table5[i];
                P3=table5[i];
                delay(100);
        }
        delay(300);
}

void disp14()                        //狀態14 從LED不亮到全亮(從P0.0、P1.0、P2.0、P3.7開始逐步點亮)
{
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                P1=table2[i];
                P2=table2[i];
                P3=table3[i];
                delay(100);
        }
        delay(4700);
}

void disp15()                        //狀態15 從LED全亮到全不亮(從P0.7、P1.7、P2.7、P3.0開始逐步熄滅)
{
        for(i=0;i<9;i++)
        {
                P0=table5[i];
                P1=table5[i];
                P2=table5[i];
                P3=table4[i];
                delay(100);
        }
        delay(300);
}
void disp17()                        //狀態17 LED從P0.7開始逆時針逐步點亮,(循環2次)并且速度會逐步提高
{

        for(i=0;i<8;i++)
        {
                P0=table3[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P1=table2[i];
                delay(100);
        }       
        for(i=0;i<8;i++)
        {
                P3=table2[i];
                delay(100);
        }       
        for(i=0;i<8;i++)
        {
                P2=table2[i];
                delay(100);
        }
        delay(2600);
        for(i=0;i<8;i++)
        {
                P0=table5[i];
                delay(100);
        }
        P0=0xff;
        delay(100);
        for(i=0;i<8;i++)
        {
                P1=table4[i];
                delay(100);
        }
        P1=0xff;
        delay(100);       
        for(i=0;i<8;i++)
        {
                P3=table4[i];
                delay(100);
        }
        P3=0xff;
        delay(100);       
        for(i=0;i<8;i++)
        {
                P2=table4[i];
                delay(100);
        }
        P2=0xff;
        delay(100);
/*******************************/
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                delay(50);
        }
        for(i=0;i<8;i++)
        {
                P1=table2[i];
                delay(50);
        }       
        for(i=0;i<8;i++)
        {
                P3=table2[i];
                delay(50);
        }       
        for(i=0;i<8;i++)
        {
                P2=table2[i];
                delay(50);
        }
        delay(4300);
        for(i=0;i<8;i++)
        {
                P0=table5[i];
                delay(50);
        }
        P0=0xff;
        delay(50);
        for(i=0;i<8;i++)
        {
                P1=table4[i];
                delay(50);
        }
        P1=0xff;
        delay(50);       
        for(i=0;i<8;i++)
        {
                P3=table4[i];
                delay(50);
        }
        P3=0xff;
        delay(50);       
        for(i=0;i<8;i++)
        {
                P2=table4[i];
                delay(50);
        }
        P2=0xff;
        delay(50);       
}

void disp18()                        //狀態18 LED從P0.7開始逆時針逐步點亮(每亮8位后就熄滅)
{
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                delay(90);
        }
        P0=0xff;
        for(i=0;i<8;i++)
        {
                P1=table2[i];
                delay(90);
        }       
        P1=0xff;
        for(i=0;i<8;i++)
        {
                P3=table2[i];
                delay(90);
        }
        P3=0xff;       
        for(i=0;i<8;i++)
        {
                P2=table2[i];
                delay(90);
        }
        P2=0xff;       
}

void disp19()                        //狀態19 LED從P2.7開始順時針逐步點亮,(循環2次)并且速度會逐步提高
{
        for(i=0;i<8;i++)
        {
                P2=table3[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P3=table3[i];
                delay(100);
        }       
        for(i=0;i<8;i++)
        {
                P1=table3[i];
                delay(100);
        }       
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                delay(100);
        }
        delay(3300);
        P0=0xff; P1=0xff; P3=0xff; P2=0xff;
        delay(200);
/*******************************/
        for(i=0;i<8;i++)
        {
                P2=table3[i];
                delay(50);
        }
        for(i=0;i<8;i++)
        {
                P3=table3[i];
                delay(50);
        }       
        for(i=0;i<8;i++)
        {
                P1=table3[i];
                delay(50);
        }       
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                delay(50);
        }
        delay(4850);
        P0=0xff; P1=0xff; P3=0xff; P2=0xff;
        delay(200);
}

void disp20()                        //狀態20 LED從P2.7開始順時針逐步點亮(每亮8位后就熄滅)
{
        for(i=0;i<8;i++)
        {
                P2=table3[i];
                delay(90);
        }
        P2=0xff;
        for(i=0;i<8;i++)
        {
                P3=table3[i];
                delay(90);
        }       
        P3=0xff;
        for(i=0;i<8;i++)
        {
                P1=table3[i];
                delay(90);
        }
        P1=0xff;       
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                delay(90);
        }
        P0=0xff;               
}
void disp22()                        //裝態22 2個LED自上而下移動(循環4次,且頻率漸快,到最快時持續循環12次,然后循環4次頻率再逐漸降低)
{       
        for(j=0;j<4;j++)
        {
                for(i=0;i<8;i++)
                {
                        P0=table1[i];
                        P2=table1[i];
                        delay(tt);
                }
                P0=0xff; P2=0xff;
                for(i=0;i<8;i++)
                {
                        P1=table0[i];
                        P3=table1[i];
                        delay(tt);
                }
                P1=0xff; P3=0xff;
                tt=tt-10;
        }

        for(j=0;j<12;j++)
        {
                for(i=0;i<8;i++)
                {
                        P0=table1[i];
                        P2=table1[i];
                        delay(20);
                }
                P0=0xff; P2=0xff;
                for(i=0;i<8;i++)
                {
                        P1=table0[i];
                        P3=table1[i];
                        delay(20);
                }
                P1=0xff; P3=0xff;
        }
        tt=20;
        for(j=0;j<4;j++)
        {
                for(i=0;i<8;i++)
                {
                        P0=table1[i];
                        P2=table1[i];
                        delay(tt);
                }
                P0=0xff; P2=0xff;
                for(i=0;i<8;i++)
                {
                        P1=table0[i];
                        P3=table1[i];
                        delay(tt);
                }
                P1=0xff; P3=0xff;
                tt=tt+10;
        }
        tt=70;       
               
}

void disp24()                        //狀態24 LED左右交替閃爍
{
        P1=0xff; P3=0xff; P0=0xff; P2=0xff;
        for(i=0;i<2;i++)
        {
                P0=0x00; P1=0x00;
                delay(1000);
                P0=0xff; P1=0xff;
                P2=0x00; P3=0x00;
                delay(1000);
                P2=0xff; P3=0xff;
        }
}

void disp25()                        //狀態25 LED交替閃爍
{
        for(i=0;i<2;i++)
        {
                P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
                delay(1000);
                P0=~P0; P1=~P1; P2=~P2; P3=~P3;
                delay(1000);               
        }
        P0=0xff; P1=0xff; P3=0xff; P2=0xff;
        delay(200);
}

void disp26()                        //狀態26 2個LED開始上下移動半圈(LED不亮流水)
{
        P0=0x00;P1=0x00;P2=0x00;P3=0x00;
        for(i=0;i<8;i++)
        {
                P0=~table1[i];
                P2=~table1[i];
                delay(200);
        }
        P0=0x00; P2=0x00;
        for(i=0;i<8;i++)
        {
                P1=~table0[i];
                P3=~table1[i];
                delay(200);
        }
       
        for(i=0;i<8;i++)
        {
                P1=~table1[i];
                P3=~table0[i];
                delay(200);
        }
        P1=0x00; P3=0x00;
        for(i=0;i<8;i++)
        {
                P0=~table0[i];
                P2=~table0[i];
                delay(200);
        }
        P0=0xff; P1=0xff; P3=0xff; P2=0xff;
        delay(200);
}
                       
void disp28()                        //狀態28 P1、P2和P0、P3交替閃爍
{       
        for(i=0;i<2;i++)
        {
                P1=0x00; P2=0x00; P0=0xff; P3=0xff;
                delay(1000);
                P1=0xff; P2=0xff; P0=0x00; P3=0x00;
                delay(1000);
        }
        P1=0xff; P2=0xff; P0=0xff; P3=0xff;
}

void disp29()                        //狀態29 逐步順時針點亮P2、P1的LED,再順時熄滅后,再順時針點亮P0、P3的LED,再順時熄滅
{       

        P0=0xff; P1=0xff; P2=0xff; P3=0xff;
        for(j=0;j<2;j++)
        {
                for(i=0;i<8;i++)
                {
                        P2=table3[i];
                        P1=table3[i];
                        delay(100);
                }
                for(i=0;i<9;i++)
                {
                        P2=table5[i];
                        P1=table5[i];
                        delay(100);
                }
                for(i=0;i<8;i++)
                {
                        P0=table2[i];
                        P3=table3[i];
                        delay(100);
                }
                for(i=0;i<9;i++)
                {
                        P0=table4[i];
                        P3=table5[i];
                        delay(100);
                }
        }
        delay(200);       
}

void disp31()                        //狀態31 逐步逆時針點亮P2、P1的LED,再逆時熄滅后,再逆時針點亮P0、P3的LED,再逆時熄滅
{
        P0=0xff; P1=0xff; P2=0xff; P3=0xff;
        for(j=0;j<2;j++)
        {
                for(i=0;i<8;i++)
                {
                        P2=table2[i];
                        P1=table2[i];
                        delay(100);
                }
                for(i=0;i<9;i++)
                {
                        P2=table4[i];
                        P1=table4[i];
                        delay(100);
                }
                for(i=0;i<8;i++)
                {
                        P0=table3[i];
                        P3=table2[i];
                        delay(100);
                }
                for(i=0;i<9;i++)
                {
                        P0=table5[i];
                        P3=table4[i];
                        delay(100);
                }
        }
        delay(200);       
}

void disp32()                        //狀態32 LED自上而下逐步點亮,然后從下往上逐步熄滅
{
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                P2=table3[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P1=table2[i];
                P3=table3[i];
                delay(100);
        }
        for(i=0;i<9;i++)
        {
                P1=table5[i];
                P3=table4[i];
                delay(100);
        }
        for(i=0;i<9;i++)
        {
                P0=table4[i];
                P2=table4[i];
                delay(100);
        }
}

void disp33()                        //狀態33 LED從左往右開始點亮(直到全亮),然后從左右兩邊開始熄滅(直到全部熄滅)
{
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                P1=table2[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P2=table3[i];
                P3=table2[i];
                delay(100);
        }
        delay(500);
        for(i=0;i<9;i++)
        {
                P2=table4[i];
                P3=table5[i];
                P1=table4[i];
                P0=table4[i];
                delay(100);
        }
        delay(300);
}

void disp34()                        //狀態34 LED從左往右開始點亮(直到全亮),然后從中間往左右邊熄滅
{
        for(i=0;i<8;i++)
        {
                P2=table2[i];
                P3=table3[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                P1=table3[i];
                delay(100);
        }
        delay(500);
        for(i=0;i<9;i++)
        {
                P2=table5[i];
                P3=table4[i];
                P1=table5[i];
                P0=table5[i];
                delay(100);
        }
        delay(300);       
}

void disp35()                        //狀態35  從P2.7、P1.7開始同時順時針旋轉,直到LED全亮
{
        for(i=0;i<8;i++)
        {
                P2=table3[i];
                P1=table3[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P3=table3[i];
                P0=table2[i];
                delay(100);
        }
}

void disp36()                        //狀態36  從P0.7、P3.1開始同時逆時針旋轉,直到LED全亮
{
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                P3=table2[i];
                delay(100);
        }
        for(i=0;i<8;i++)
        {
                P1=table2[i];
                P2=table2[i];
                delay(100);
        }
}

void disp39()                        //狀態39 P1、P3LED(下半部分)一直亮,上半部分LED向外擴張亮,然后閃爍3次
{
        P1=0x00; P3=0x00;
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                P2=table3[i];
                delay(150);
        }
        for(i=0;i<8;i++)
        {
                P0=table3[i];
                P2=table3[i];
                delay(300);
        }
        for(i=0;i<4;i++)
        {
                P0=~P0; P2=~P2;
                delay(300);
        }
        delay(1000);
        P0=0xff; P1=0xff; P3=0xff; P2=0xff;
        delay(100);
}

void disp41()                        //狀態41 LED從P2.7、P1.7開始順時針同時熄滅,直到全部熄滅
{
        for(i=0;i<9;i++)
        {
                P2=table5[i];
                P1=table5[i];
                delay(100);
        }
        for(i=1;i<9;i++)
        {
                P0=table4[i];
                P3=table5[i];
                delay(100);
        }
        delay(300);               
}

void main()
{       
        while(1)
        {               
                disp22();                //狀態22 2個LED自上而下移動(循環5次,且頻率漸快,到最快時持續循環16次,然后循環5次頻率再逐漸降低 ******
                disp9();                //狀態9 間斷8格的4個LED亮,然后逆時針逐漸點亮(直到全部點亮)********        1
                disp10();                //狀態10 從LED全部亮到全不亮(間斷8格的4個LED開始逆時針熄滅)********         2
                disp7();                //狀態7 LED自下而上逐漸點亮(直到全部點亮)再依次全滅********* 和19對稱
                disp14();                //狀態14 從LED不亮到全亮(從P0.0、P1.0、P2.0、P3.7開始逐布點亮) ********1  
                disp15();                //狀態15 從LED全亮到全不亮(從P0.7、P1.7、P2.7、P3.0開始逐步熄滅)*********2
                disp17();                //狀態17 LED從P0.7開始逆時針逐步點亮,并且速度會逐步提高         ************
                disp18();                //狀態18 LED從P0.7開始逆時針逐步點亮(每亮8位后就熄滅) **
                disp20();                //狀態20 LED從P2.7開始順時針逐步點亮(每亮8位后就熄滅)**
                disp39();                //狀態39 P1、P3LED(下半部分)一直亮,上半部分LED向外擴張亮,然后閃爍3次    **
                disp24();                //狀態24 LED左右交替閃爍         **          
                disp25();                //狀態25 LED交替閃爍                   **         
                disp12();                //間斷8格的4個LED亮,然后順時針逐漸點亮(直到全部點亮)*********         1
                disp13();                //狀態13 從LED全部亮到全不亮(間斷8格的4個LED開始順時針熄滅)********        2  
                disp26();                //狀態26 2個LED開始上下移動半圈(LED不亮流水)         *****
                disp19();                //狀態19 LED從P2.7開始順時針逐步點亮,(循環2次)并且速度會逐步提高******** 和7對稱
                disp28();                //狀態28 P1、P2和P0、P3交替閃爍           **
                disp29();                //狀態29 逐步順時針點亮P2、P1的LED,再順時熄滅后,再順時針點亮P0、P3的LED,再順時熄滅        **** 和31對稱
                disp31();                //狀態31 逐步逆時針點亮P2、P1的LED,再逆時熄滅后,再逆時針點亮P0、P3的LED,再逆時熄滅        **** 和29對稱
                disp32();                //狀態32 LED自上而下逐步點亮,然后從下往上逐步熄滅         *****
                disp33();                //狀態33 LED從左往右開始點亮(直到全亮),然后從左右兩邊開始熄滅(直到全部熄滅) *****
                disp36();                //狀態36  從P0.7、P3.0開始同時逆時針旋轉,直到LED全亮*****
                disp35();                //狀態35  從P2.7、P1.7開始同時順時針旋轉,直到LED全亮        *****
                disp41();                //狀態41 LED從P2.7、P1.7開始順時針同時熄滅,直到全部熄滅  *****
                disp34();                //狀態34 LED從左往右開始點亮(直到全亮),然后從中間往左右邊熄滅 *****
                disp0();                //狀態0 所有LED閃爍3次 *******
        }
}
//這個你可以參考下!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人在线视频免费观看 | 日韩欧美国产一区二区三区 | 欧美日韩精品一区二区三区蜜桃 | 国产精品自拍一区 | 国产男女视频网站 | 在线精品一区二区三区 | 国产一级免费视频 | 天天躁日日躁狠狠躁2018小说 | 欧美日韩在线观看一区 | 香蕉一区二区 | 手机看黄av免费网址 | 国产精品一区二区三区四区 | 成人激情视频在线观看 | 国产激情在线看 | 欧美一级片在线播放 | 黄色三级免费网站 | 亚洲成av人片在线观看 | 久久久精品日本 | 亚洲成人福利视频 | 色综久久 | 日日碰狠狠躁久久躁婷婷 | 四虎成人精品永久免费av九九 | 视频一区二区在线观看 | 亚洲视频免费观看 | 自拍偷拍亚洲视频 | 国产精品久久a | 色呦呦网站 | 观看av | 欧美久久一区二区 | 高清av在线| 狠狠色狠狠色综合系列 | 国产精品综合网 | 欧美亚洲网站 | 欧美一区二区免费 | 日本免费一区二区三区 | 亚洲va欧美va天堂v国产综合 | 日批av| 成人精品网 | 9191在线观看 | 国产剧情一区 | 日韩一级精品视频在线观看 |