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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7161|回復: 17
收起左側

51單片機RGB流水燈控制12個LED燈的程序怎么寫

  [復制鏈接]
ID:608007 發表于 2019-12-4 22:02 | 顯示全部樓層 |閱讀模式
剛入單片機的小白,請高手幫忙指點一二,流水燈左半邊P0.0口低位流向高位P0.7口,再從P0.7流向P1.0口再流向P1.3結束,                                                                             右半邊P2.7口低位流向高位P2.0口,再從P2.0流向P1.7口再流向P1.4結束,
                                                                  或左右兩邊同時流向P0.0到P1.3              P2.7到P1.4
51hei圖片20191204215112.jpg
51hei圖片20191204215127.jpg
回復

使用道具 舉報

ID:96682 發表于 2019-12-5 02:31 來自手機 | 顯示全部樓層
心形流水燈程序大把,花樣繁多,修改一下就能實現樓主想要的效果
回復

使用道具 舉報

ID:150776 發表于 2019-12-5 07:16 來自手機 | 顯示全部樓層
網上搜索一下,很多這樣的例
回復

使用道具 舉報

ID:584814 發表于 2019-12-5 09:15 | 顯示全部樓層
網上免費的程序很多抄一下就可以,如果不想動手可以直接掛價招標。
回復

使用道具 舉報

ID:235200 發表于 2019-12-5 13:14 | 顯示全部樓層
如果剛學單片機,建議用順序程序去實現你的每一步,如
P0=0xFE;   第一步
P2=0x7F;
延時;
P0=0xFD;   第二步
P2=0xBF;
延時;
P0=0xFB;   第三步
P2=0xDF;
延時;
P0=0xF7;   第四步
P2=0xEF;
延時;
……
回復

使用道具 舉報

ID:608007 發表于 2019-12-5 16:14 | 顯示全部樓層
csmyldl 發表于 2019-12-5 13:14
如果剛學單片機,建議用順序程序去實現你的每一步,如
P0=0xFE;   第一步
P2=0x7F;

那樣寫太麻煩 ,還是只想P0口8個LED燈 怎么接P1口的低4位LED燈程序,  還是感謝你
回復

使用道具 舉報

ID:608007 發表于 2019-12-5 16:17 | 顯示全部樓層
man1234567 發表于 2019-12-5 09:15
網上免費的程序很多抄一下就可以,如果不想動手可以直接掛價招標。

用的位選P3口控制RGB三色 P0,P1,P2,段選,程序不好找
回復

使用道具 舉報

ID:608007 發表于 2019-12-5 16:19 | 顯示全部樓層
wc86110 發表于 2019-12-5 02:31
心形流水燈程序大把,花樣繁多,修改一下就能實現樓主想要的效果

單色燈程序都好找 ,P0口怎么接P1口的低4位的程序
回復

使用道具 舉報

ID:606366 發表于 2019-12-13 17:09 | 顯示全部樓層
我尋思你這也不是寫RGB燈的思路啊
回復

使用道具 舉報

ID:591676 發表于 2019-12-13 19:33 | 顯示全部樓層
網上有很多這種的,只不過是led燈數量多少的問題,修改一下就能滿足你的要求
回復

使用道具 舉報

ID:608007 發表于 2019-12-16 15:40 | 顯示全部樓層
張x小呀 發表于 2019-12-13 19:33
網上有很多這種的,只不過是led燈數量多少的問題,修改一下就能滿足你的要求

求高手給我一個程序
回復

使用道具 舉報

ID:635583 發表于 2019-12-16 16:04 | 顯示全部樓層
這個很簡單,,其那不久才做過。。剛才看了一下,沒有了,刪掉了。。你可以去看看51單片機論壇,,可以找到,程序和仿真都有
回復

使用道具 舉報

ID:608007 發表于 2019-12-27 17:24 | 顯示全部樓層
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar i;         //////i=100///////
uchar a;
unsigned char table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff};///高到低位P0,P2口/////
unsigned char table2[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0X00};////高到低位P0,P2口////
unsigned char table3[]={0x80,0xc0,0xe0,0xf0,0x00,0x00,0x00,0x00};/////高4位依次點亮每個燈P1口//////
unsigned char table4[]={0x01,0x03,0x07,0x0f,0x00,0x00,0x00,0x00};//////低4位依次點亮每個燈P1口///
unsigned char table5[]={0x81,0xc3,0xe7,0xff};//////高和低位往中間亮P1口/////
unsigned char table6[]={0xfe,0xfc,0xf8,0xf0,0x7ff};
unsigned char table7[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};/////依次高位到低位每個點燈亮/////
unsigned char table8[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};/////依次低位到高位每個點燈亮/////

sbit RR=P3^5;
sbit GG=P3^6;/////P0,P1,P2,輸出低電平時////////
sbit BB=P3^7;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);//////Y=110///////
}

void main()
{

while(1)
{
/////////////////P2,P1,P0,高位往低位逐個循環點亮3次////////
        for(a=0;a<=2;a++) ///////循環次數(a<=2),3次///////
          {
         RR=0;
                 GG=1;        ///////紅色/////
                 BB=1;
       P2=0x01;
          
        for(i=0;i<8;i++)
          {
            
                P2=_cror_(P2,1);
                P1=0x00;
                P0=0x00;
                delay(100);
          }

                 RR=1;
                 GG=0; //////綠色///////
                 BB=1;
           P1=0x01;
   
        for(i=0;i<8;i++)
          {
                          
                   P2=0x00;
                P1=_cror_(P1,1);
                P0=0x00;
                delay(100);
          }

                    RR=1;
                 GG=1;        /////////藍色/////
                 BB=0;                 
            P0=0x01;

        for(i=0;i<8;i++)
          {
            
                P2=0x00;
                   P1=0x00;
                P0=_cror_(P0,1);               
                delay(100);
          }
          }
/////////////////P0,P1,P2低位到高位逐個點亮/////////
         RR=0;
                 GG=1;         //////紅色//////
                 BB=1;
       P0=0x80;
     
        for(i=0;i<8;i++)
          {
            
                P0=_crol_(P0,1);
                P1=0x00;
                P2=0x00;
                delay(100);
          }

                 RR=1;
                 GG=0;        //////綠色///////
                 BB=1;
           P1=0x80;
   
        for(i=0;i<8;i++)
          {
                          
                   P0=0x00;
                P1=_crol_(P1,1);
                P2=0x00;
                delay(100);
          }

                    RR=1;
                 GG=1; //////藍色//////
                 BB=0;                 
            P2=0x80;

        for(i=0;i<8;i++)
          {
            
                P0=0x00;
                   P1=0x00;
                P2=_crol_(P2,1);               
                delay(100);
          }       
////////////////P2,P1,P0,高位到低位逐個滅,變顏色///////
         RR=0;
                 GG=0; ////////黃色/////////
                 BB=1;
       P2=0xfe;
     
        for(i=0;i<8;i++)
          {
            
                P2=_cror_(P2,1);
                P1=0xff;
                P0=0xff;
                delay(200);
          }

                 RR=0;
                 GG=1;        ////////紫色/////////
                 BB=0;
           P1=0xfe;
   
        for(i=0;i<8;i++)
          {
                          
                   P2=0xff;
                P1=_cror_(P1,1);
                P0=0xff;
                delay(200);
          }
       
               
                    RR=1;
                 GG=0; /////天藍色//////
                 BB=0;                 
            P0=0xfe;
        for(i=0;i<8;i++)
          {
            
                P2=0xff;
                   P1=0xff;
                P0=_cror_(P0,1);               
                delay(200);
          }       
/////////P2,P1,P0,高位到低位依次每個點亮,循環2次/////////////

   for(a=0;a<=1;a++)//////循環次數程序(a<=1)循環2次//////
          {
             RR=0;
                 GG=1; ////////紫色///////
                 BB=0;
        for(i=0;i<8;i++)
          {
             P2=table7[i];
             P1=0x00;
             P0=0x00;
             delay(50);
          }
          for(i=0;i<8;i++)
          {
            P2=0xff;
            P1=table7[i];
            P0=0x00;
            delay(50);
          }
          for(i=0;i<8;i++)
          {
            P2=0xff;
            P1=0xff;
            P0=table7[i];
            delay(50);
          }
          

/////////P0,P1,P2,低位到高位依次每個點亮,循環/////////////

                 RR=0;
                 GG=0;         ////////白色//////////
                 BB=0;
        for(i=0;i<8;i++)
          {
            P0=table8[i];
                P1=0x00;
                P2=0x00;
                delay(50);
          }
          for(i=0;i<8;i++)
          {
            P0=0xff;
                P1=table8[i];
                P2=0x00;
                delay(50);
          }
          for(i=0;i<8;i++)
          {
            P0=0xff;
                P1=0xff;
                P2=table8[i];
                delay(50);
          }
          }

////////////////兩側往下流,先左后右流//////////

             RR=0;
                 GG=0;  /////白色
                 BB=0;
        for(i=0;i<8;i++)
          {
            P0=table8[i];
                P1=0x00;
                P2=0x00;
                delay(200);
          }
        for(i=0;i<8;i++)
          {
            P0=0xff;
            P1=table4[i];               
                P1=0x0f;
                delay(200);
          }       

         RR=0;
                 GG=1;   //////紫色
                 BB=0;
        for(i=0;i<8;i++)
          {
            P2=table7[i];
                P1=0x00;
                P0=0x00;
                delay(200);
          }
        for(i=0;i<8;i++)
          {
            P2=0xff;
            P1=table3[i];       
                P1=0xf0;
                delay(200);
          }

/////////////////兩側循環閃爍4次///////////

   for(a=0;a<=3;a++)/////循環4次////
         {
             RR=1;
                 GG=0;   //////天藍色
                 BB=0;
   for(i=0;i<8;i++)
          {
            P2=0xff;
                P1=0xf0;
                P0=0x00;
                delay(100);
          }
                 RR=0;
                 GG=0;   //////黃色
                 BB=1;
   for(i=0;i<8;i++)
          {
            P0=0xff;
                P1=0x0f;
                P2=0x00;
                delay(100);
          }
          }
             RR=0;
                 GG=0;   //////白色
                 BB=0;
        for(i=0;i<8;i++)
          {
            P0=0xff;
                P1=0xff;
                P2=0xff;
                delay(200);
          }  
          
  
}
}
回復

使用道具 舉報

ID:410230 發表于 2020-6-8 22:12 | 顯示全部樓層
樓主,可以讓我看一下你的電路圖嗎,我用的52芯片做的愛心流水燈,但是一直實現不了流水,一直都是全亮的,還有顏色也不懂怎么控制,可以加個扣扣交流一下嗎
回復

使用道具 舉報

ID:744327 發表于 2020-6-9 10:54 | 顯示全部樓層
流水燈程序
int8 a;
for(a=0;e<3;a++)//////循環次數程序(e<3)循環3次
          {
             RED=0;
                 GG=1; //紫色
                 BB=0;
        for(i=0;i<8;i++)
          {
               P2=0xFF;
            P1=0xFF;
            P0=Table[i];
            Delay(50);
          }
          for(i=0;i<8;i++)
          {
             P2=0xFF;
            P1=0xFF;
            P0=Table[i];
            Delay(50);
          }
          for(i=0;i<8;i++)
          {
            P2=0xFF;
            P1=0xFF;
            P0=Table[i];
            Delay(50);
          }
回復

使用道具 舉報

ID:773367 發表于 2020-6-9 13:54 | 顯示全部樓層
一般通過延遲程序,0.02-2s都可,可以從網上復制一些借鑒
回復

使用道具 舉報

ID:56002 發表于 2020-6-10 09:37 | 顯示全部樓層
有幾種算法,需要往里面填函數
模式1:順序點亮

順序單個點亮LED  for (i = 0; i < 8; i++)
逆序單個點亮LED  for (i = 6; i > 0; i--)
/*************************************************************/
模式2:順序單個間隔點亮

順序間隔點亮LED  for (i = 0; i < 8; i += 2)
逆序間隔點亮LED  for (i = 7; i > 0; i -= 2)
/*************************************************************/
模式3:間隔點亮

間隔順序同時點亮 for (i = 2; i < 8; i ++ )
間隔逆序同時點亮 for (i = 6; i > 2; i -- )
/**************************************************************/
模式4:相臨點亮

相臨順序同時點亮  for (i = 1; i < 8; i++ )
相臨逆序同時點亮  for (i = 6; i > 1; i-- )
/************************************************************/
模式5:發散聚集點亮

發散點亮          for (i = 0; i < 4; i++ )
聚集點亮          for (i = 2; i > 0; i-- )
/************************************************************/
模式6:四四點亮

四四順序點亮      for ( i= 0; i < 4; i++ )
四四逆序點亮      for ( i= 2; i > 0; i-- )
/************************************************************/
模式7:四四點亮

四四順序點亮      for ( i = 0; i < 2; i++ )
/************************************************************/
模式8:全部點亮熄滅

                  for ( j = 0; j < 10; j++)
                   LED_on(); LED_off();
/***********************************************************/
延時程序計算方法
計數個數j = 延時時間/6*晶振頻率 - 1
方式一:
void Delay(void)                        
{
    unsigned char a, b, c;
    for (a = 1; a; a++)
        for (b = 1; b; b++)
            for (c = 0; c<10; c++):  //循環次數=255*255*10
}
方式二:1ms延時,準確性較Delay();高
void DelayMs(unsigned int i)               
{
    while(i--)
    {                          
        unsigned int j;               
        for(j=1;j<=613;j++);               
    }                       
}
例:
void LED_04(int i)                 //發散聚集點亮
    {
        switch(i)
         {
         case 0:P1=0xE7;DelayMs(100);break;    //延時100ms
         case 1:P1=0xDB;DelayMs(100);break;
         case 2:P1=0xBD;DelayMs(100);break;
         case 3:P1=0x7E;DelayMs(100);break;
         default:break;
         }
        }
for(p=0;p<5;p++) //模式5:發散聚集點亮
{
for(i=0;i<4;i++)//發散點亮
LED_04(i);
for(i=2;i>0;i--)//聚集點亮
LED_04(i);       
回復

使用道具 舉報

ID:896273 發表于 2021-3-27 10:00 | 顯示全部樓層
效果來自創意
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费午夜视频 | 国产农村妇女精品一二区 | 国产一区二区三区在线 | 亚洲a视频 | 欧美一区二区三区在线观看 | 国产午夜久久 | 成人在线免费看 | 古典武侠第一页久久777 | 狠狠色综合久久丁香婷婷 | www.亚洲区 | 久久久国产精品入口麻豆 | 亚洲国产成人精品女人久久久 | 国产精品美女www | 欧美女优在线观看 | 五月天天丁香婷婷在线中 | 欧美一二三四成人免费视频 | 精品视频成人 | 色久电影 | 一区二区三区福利视频 | 国产一区二区视频在线观看 | 羞羞视频免费观看 | 一区二区免费在线 | 成在线人视频免费视频 | 亚洲一区二区三区免费视频 | 精品亚洲一区二区 | 国产成人免费网站 | 99re在线视频精品 | 亚洲成人精品在线 | 99久久久久久久久 | 成人在线观看免费视频 | 久久国产美女视频 | 精品成人一区二区 | 亚洲精品久久久久中文字幕欢迎你 | 国产精品日韩 | 国产高清视频在线 | 天堂一区二区三区四区 | 在线欧美一区 | 中文字幕色站 | 午夜精品久久 | 国产精品久久久久久久久婷婷 | 精品久久视频 |