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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

想自己制作一個心形流水燈,求指教

  [復制鏈接]
跳轉到指定樓層
樓主
剛開始了解51單片機,看見很多牛人做的非常酷的東西,目前屬于零基礎,求大神給一個32燈的電路設計圖以及內部元器件名稱型號和程序文件。剛開始了解不太懂這些,但是又想做一個東西練練手。謝謝了。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

來自 2#
ID:404797 發表于 2019-3-7 14:25 | 只看該作者
   樓主要的是32燈心形流水燈,這里的難點是流水燈,也就是燈是按一定順序一個一個亮,并一個一個滅,它不同于靜態顯示一個心形圖案,比靜態顯示難度大點。考慮到樓主是個初學者,做32燈的心形流水燈需要器件復雜,初學者很容易做不下來而放棄,所以建議樓主改用單片機+8X8的LED發光矩陣做一個20燈的心形流水燈,這樣比較容易實現,技術上同樣可以得到很大煅練。
    基于單片機+8X8LED發光矩陣,本人為樓主設計了一個心形流水燈方案。需要單片機1只,最小系統板1塊,8X8LED發光矩陣1個,杜幫線16根。利用單片機控制發光矩陣發光,先靜態顯示一個心形圖案,然后先按順時針順顯示心形,完后再按逆時針順序顯示心形,完后重新開始。依此循環。
下面是設計圖:

下面是相應程序:
  1. #include<reg52.h>
  2. unsigned char hdata[]={0x38,0x44,0x42,0x21,0x21,0x42,0x44,0x38};
  3. unsigned char  heart[][2]={{4,2},{5,1},{6,1},{7,2},{7,3},{7,4},{6,5},{5,6},{4,7},{3,7},{2,6},{1,5},{0,4},{0,3},{0,2},{1,1},{2,1},{3,2}};
  4. void delay(int ii){int i,j;for(i=0;i<ii;i++)for(j=0;j<110;j++);}
  5. void heart1()
  6. {int i;
  7. for(i=0;i<8;i++)
  8.    {P2=1<<i;P3=~hdata[i];}
  9. }
  10. void heart2()
  11. {int i;
  12.   for(i=0;i<18;i++)
  13.    {P2=1<<heart[i][0];
  14.     P3=~(1<<heart[i][1]);
  15.         delay(5);
  16.     }
  17.   for(i=17;i>=0;i--)
  18.     {P2=1<<heart[i][0];
  19.      P3=~(1<<heart[i][1]);
  20.          delay(5);
  21.     }
  22.   }
  23. main()
  24. {int i;
  25. while(1)
  26. {for(i=0;i<2500;i++)heart1();
  27.   for(i=0;i<20;i++)heart2();
  28.   }
  29. }
復制代碼

附件有完整的proteus設計和相配套的程序:
ask5a.zip (24.7 KB, 下載次數: 16)


評分

參與人數 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

來自 3#
ID:142059 發表于 2019-3-7 17:39 | 只看該作者
我點我頭像進去我的主題,我發的第一個主題就是流水燈,多種流水效果非常炫酷,還有仿真看效果
回復

使用道具 舉報

地板
ID:473186 發表于 2019-3-7 02:11 | 只看該作者
心形流水燈壇子里有案例,照著改改改修修
回復

使用道具 舉報

5#
ID:472242 發表于 2019-3-7 02:25 | 只看該作者
心形流水燈?上個月也有人說要做這玩意兒!是送給女朋友嗎?哈哈哈!本站案子很多,應該能給你幫助。當然羅,想更深入也完全是沒有問題的。有需求應該有動力!
回復

使用道具 舉報

6#
ID:164602 發表于 2019-3-7 08:00 | 只看該作者
看我的:







程序:(不是我的程序,是網上的,電路圖也是的)
http://www.zg4o1577.cn/bbs/dpj-49819-1.html
回復

使用道具 舉報

7#
ID:164602 發表于 2019-3-7 08:04 | 只看該作者
學會鄧就可以擴展:這個是用595帶動的,60幾個燈,6片595——有時是兩燈同時亮,帶蜂鳴器,可以演奏樂曲,單片機只用到幾個口。







回復

使用道具 舉報

8#
ID:123289 發表于 2019-3-7 08:17 | 只看該作者
你先做個直線的試試。
回復

使用道具 舉報

9#
ID:485979 發表于 2019-3-7 08:21 | 只看該作者
剛買了一個送女朋友 的  還不錯 準備自己做一個
回復

使用道具 舉報

10#
ID:453974 發表于 2019-3-7 08:57 | 只看該作者
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint t);//×óoˉêyéùÃ÷

uint code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//êy×é
uint code welatable[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};

void main()//Ö÷oˉêy
{
        while(1)
        {uint i,j;
                          P0=0xff;
                                P2=0xff;
                    P1=0xff;
                                P3=0xff;
                                delay(10);
               
                       
       
                                for(i=0;i<8;i++)
                                {
                                                                for(i=0;i<8;i++)
                                                        {
                                                                P1=table[7-i];
                                                                        P3=table[i];
                                                                delay(8000);
                                                               
                                                        }
                                                       
                                                        P1=0xff;
                                                        P3=0xff;
                                                        delay(10);
                                                       
                                                                for(i=0;i<8;i++)
                                                        {
                                                                P0=table[i];
                                                                        P2=table[i];
                                                                delay(8000);
                                                               
                                                        }
                                                       
                                                        P0=0xff;
                                                        P2=0xff;
                                                       
                                                        delay(10);
                                                                                for(i=0;i<8;i++)
                                                        {
                                                                P0=table[7-i];
                                                                        P2=table[7-i];
                                                                delay(8000);
                                                               
                                                        }
                                                       
                                                        P0=0xff;
                                                        P2=0xff;
                                                       
                                                        delay(10);
                                                                for(i=0;i<8;i++)
                                                        {
                                                                P1=table[i];
                                                                        P3=table[7-i];
                                                                delay(8000);
                                                               
                                                        }
                                       
                   }
                         
                               
                for(j=0;j<2;j++)
                {
                                for(i=0;i<8;i++)
                                {
                                                                for(i=0;i<8;i++)
                                                        {
                                                                P1=~welatable[7-i];
                                                                        P3=welatable[i];
                                                                delay(8000);
                                                               
                                                        }
                                                       
                                                        P1=0x00;
                                                        P3=0x00;
                                                        delay(10);
                                                       
                                                                for(i=0;i<8;i++)
                                                        {
                                                               
                                                                P0=welatable[i];
                                                                P1=0x00;
                                                                P3=0x00;
                                                                P2=welatable[i];
                                                                delay(8000);
                                                               
                                                        }
                                                        P1=P2=P0=P3=0x00;
                                                        delay(10);
                                                       
                                                        for(i=8;i<16;i++)
                                                        {
                                                                P0=welatable[16-i];
                                                                P2=welatable[16-i];
                                                                delay(8000);
                                                                }
                                                               
                                                        P2=P0=0xff;
                                                                delay(10);
                                                               
                                                                for(i=8;i<16;i++)
                                                        {
                                                                P0=0xff;
                                                                P2=0xff;
                                                                P1=welatable[i];
                                                                P3=welatable[16-i];
                                                                delay(8000);
                                                                }
                                                        P1=P2=P3=P0=0xff;
                                                                delay(10);
                                        }
                  
                 }
                                       
                                       
//                                       
//                         for(j=0;j<2;j++)
//                          {
//                                        for(i=0;i<8;i++)
//                                                        {
//                                                               
//                                                                        P2=table[i];
//                                                                  P0=table[7-i];
//                                                                        P1=table[i];
//                                                                  P3=table[i];
//                                                                delay(8000);
//                                                               
//                                                        }
//                                                        P1=0xff;
//                                                        P3=0xff;
//                                                        P0=0xff;
//                                                        P2=0xff;
//                                                        delay(10);
//                                                       
//                                                                for(i=0;i<8;i++)
//                                                        {
//                                                                P2=table[7-i];
//                                                                  P0=table[i];
//                                                                        P1=table[7-i];
//                                                                  P3=table[7-i];                                                               
//                                                                delay(8000);
//                                                               
//                                                        }
//                                                        P0=0xff;
//                                                        P2=0xff;
//                                                        P1=0xff;
//                                                        P3=0xff;
//                        delay(10);
//                                                }
               
                                               
                                               
                                               
                        for(j=0;j<2;j++)
                        {
                                        for(i=0;i<8;i++)
                                                        {
                                                                P1=table[7-i];
                                                                        P2=table[7-i];
                                                                delay(8000);
                                                               
                                                        }
                                                       
                                                        P1=0xff;
                                                        P2=0xff;
                                                        delay(10);
                                                       
                                                                for(i=0;i<8;i++)
                                                        {
                                                                P0=table[i];
                                                                       
                                                                P3=table[7-i];
                                                                delay(8000);
                                                               
                                                        }
                                                       
                                                        P0=0xff;
                                                        P3=0xff;
                       
                                                }
                                               
                                               
                                               
                                               
                                        for(j=0;j<2;j++)
                          {
                                        for(i=0;i<8;i++)
                                                        {
                                                               
                                                                        P2=table[7-i];
                                                                  P0=table[7-i];
                                                                        P1=table[7-i];
                                                                  P3=table[i];
                                                                delay(8000);
                                                               
                                                        }
                                                        P1=0xff;
                                                        P3=0xff;
                                                        P0=0xff;
                                                        P2=0xff;
                                                        delay(10);
                                                       
                                                                for(i=0;i<8;i++)
                                                        {
                                                                P2=table[i];
                                                                  P0=table[i];
                                                                        P1=table[i];
                                                                  P3=table[7-i];                                                               
                                                                delay(8000);
                                                               
                                                        }
                                                        P0=0xff;
                                                        P2=0xff;
                                                        P1=0xff;
                                                        P3=0xff;
                        delay(10);
                                                }
                         P0=P1=P2=P3=0xff;
                         delay(10);
                         for(j=0;j<2;j++)
                         {
                                        P1=P2=P0=P3=0x00;
                                        delay(30000);
                                        P1=P2=P0=P3=0xff;
                                        delay(30000);
                                }

                               
                               

                for(j=0;j<2;j++)
                                                {
                                                        P3=P2=P0=0xee;
                                                        P1=0x77;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                        P3=P2=P0=0xdd;
                                                        P1=0xbb;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                        P3=P2=P0=0xbb;
                                                        P1=0xdd;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                        P3=P2=P0=0x77;
                                                        P1=0xee;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                        P3=P2=P0=0x77;
                                                        P1=0xee;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                        P3=P2=P0=0xbb;
                                                        P1=0xdd;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                        P3=P2=P0=0xdd;
                                                        P1=0xbb;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                        P3=P2=P0=0xee;
                                                        P1=0x77;
                                                        delay(20000);
                                                        P0=P1=P2=P3=0xff;
                                                       
                                                }
                                                               
for(j=0;j<5;j++)
                                {
                                        P3=P2=P0=0x55;
                                        P1=0xaa;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0xaa;
                                        P1=0x55;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                       
                                }

                                for(j=0;j<4;j++)
                                {
                                        P3=P2=P0=0x11;
                                        P1=0x88;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0x22;
                                        P1=0x44;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0x44;
                                        P1=0x22;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0x88;
                                        P1=0x11;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0x88;
                                        P1=0x11;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0x44;
                                        P1=0x22;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0x22;
                                        P1=0x44;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                        P3=P2=P0=0x11;
                                        P1=0x88;
                                        delay(20000);
                                        P0=P1=P2=P3=0xff;
                                       
                                }
        }
}
void delay(uint t)//Ñóê±oˉêy
{
        while(t--);
}
回復

使用道具 舉報

11#
ID:472242 發表于 2019-3-7 11:06 | 只看該作者
這里還有,看看是不是你想用的:http://www.zg4o1577.cn/bbs/dpj-150528-1.html
回復

使用道具 舉報

12#
ID:483837 發表于 2019-3-7 11:22 | 只看該作者
那玩意兒不用單片機也可以,電容電阻LED三極管就夠了
回復

使用道具 舉報

13#
ID:460466 發表于 2019-3-7 11:59 | 只看該作者

不愧是高手 程序好長啊!這些LED排成一列是一個一個的逐個亮嗎?怎么會用這么多行程序語言?
回復

使用道具 舉報

14#
ID:483991 發表于 2019-3-7 14:51 | 只看該作者
海闊天空8 發表于 2019-3-7 11:59
不愧是高手 程序好長啊!這些LED排成一列是一個一個的逐個亮嗎?怎么會用這么多行程序語言?

程式越多花樣就越多,玩起來就越炫酷,算法也越靈活。

評分

參與人數 3黑幣 +23 收起 理由
sheng7533967 + 5 贊一個!
zhengchong60 + 10 很給力!
嘉立創AAA + 8 很給力!

查看全部評分

回復

使用道具 舉報

15#
ID:484589 發表于 2019-3-7 19:01 | 只看該作者
shuisheng60 發表于 2019-3-7 02:25
心形流水燈?上個月也有人說要做這玩意兒!是送給女朋友嗎?哈哈哈!本站案子很多,應該能給你幫助。當然羅 ...

好的,我也找了很多
回復

使用道具 舉報

16#
ID:484589 發表于 2019-3-7 19:02 | 只看該作者

謝謝。。。。。。
回復

使用道具 舉報

17#
ID:484589 發表于 2019-3-7 19:03 | 只看該作者
yzwzfyz 發表于 2019-3-7 08:17
你先做個直線的試試。

嗯嗯謝謝了。
回復

使用道具 舉報

18#
ID:484589 發表于 2019-3-7 19:05 | 只看該作者
zxwdown 發表于 2019-3-7 14:25
樓主要的是32燈心形流水燈,這里的難點是流水燈,也就是燈是按一定順序一個一個亮,并一個一個滅,它不 ...

謝謝了,這次買元件包沒買這個LED顯示板
回復

使用道具 舉報

19#
ID:472106 發表于 2020-2-14 22:38 | 只看該作者
程序這么多 是有點復雜哦
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美精品一区二区色综合朱莉 | av在线天堂| 日韩国产黄色片 | 亚州成人| 国产精品自产拍 | 成人欧美一区二区三区黑人孕妇 | 亚洲精品久久久久久久不卡四虎 | 国产午夜精品一区二区三区四区 | 狼色网| 成年视频在线观看 | 欧美在线观看网站 | 成人国产精品久久久 | 国产高清视频在线 | 一级高清免费毛片 | 久久99精品久久久水蜜桃 | 成人精品久久久 | jizz中国日本 | 国产精品美女在线观看 | 亚洲久久久 | 亚洲精品大片 | 久久精品色欧美aⅴ一区二区 | 欧美一区二区三区 | 伊人久久精品 | 久久精品国产久精国产 | 国产乱码精品一区二区三区五月婷 | 国产精品中文字幕在线 | 成人欧美一区二区三区色青冈 | 亚洲成人av一区二区 | 亚洲午夜精品视频 | 国产精品一区二区不卡 | 日本亚洲精品成人欧美一区 | 欧美亚洲高清 | 看片国产 | 免费在线成人网 | 亚洲一区在线免费观看 | 欧美在线综合 | 国产精品精品视频一区二区三区 | 久久91| 99精品久久久久久久 | 新91| 一区二区三区回区在观看免费视频 |