一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于51單片機設(shè)計的花樣流水燈設(shè)計

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-06-11 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、項目介紹

花樣流水燈是一種常見的LED燈效果,被廣泛應(yīng)用于舞臺表演、節(jié)日慶典、晚會演出等場合。在現(xiàn)代智能家居、電子產(chǎn)品中,花樣流水燈也被廣泛使用,通過調(diào)整亮滅順序和時間,可以實現(xiàn)各種炫酷的燈光效果,增強用戶體驗。而51單片機作為一種常見的嵌入式開發(fā)平臺,具有體積小、功耗低、可編程性強等優(yōu)點,非常適合用于開發(fā)花樣流水燈及其他嵌入式應(yīng)用。

以下場景中流水燈得到了廣泛的應(yīng)用:

  • 舞臺表演:花樣流水燈可用于舞臺背景、音樂MV等場合,配合音樂和舞蹈,營造出炫酷、動感的視覺效果。
  • 節(jié)日慶典:在傳統(tǒng)節(jié)日如春節(jié)、中秋節(jié)等場合,花樣流水燈可以用于燈籠、彩燈等裝飾,為節(jié)日增添喜慶氛圍。
  • 晚會演出:在各種晚會、派對、聚會等場合,花樣流水燈可以用于舞臺效果、音樂燈光秀等,增強整個活動的氛圍和趣味性。
  • 智能家居:花樣流水燈可以使用在居家燈光控制中,實現(xiàn)遠程控制、定時開關(guān)、自動調(diào)節(jié)等功能,提升居住環(huán)境的科技感和人性化。

image-20230606215451680

二、設(shè)計原理

2.1 基本原理

花樣流水燈是一種常見的LED燈效果,通常由多個LED燈組成,通過控制每個LED燈的亮滅順序和時間,實現(xiàn)花樣流水燈的效果。在51單片機中,可以使用定時器端口控制來實現(xiàn)這一效果。

2.2 硬件搭建

為了實現(xiàn)花樣流水燈,需要將多個LED燈按照一定的順序連接到51單片機的IO引腳上。電路設(shè)計上,為每個LED燈配備一個電阻,并將它們連接到5V電源引腳和地線上。

具體硬件搭建方法如下:

(1)將多個LED燈依次連接起來組成一個電路鏈,將第一個LED的正極接到P1.0口,第二個LED的正極接到P1.1口,第三個LED的正極接到P1.2口,以此類推,一共連接7個LED燈。

(2)為每個LED燈配備一個適當?shù)碾娮?,用來限?a href="http://www.www27dydycom.cn/tags/電流/" target="_blank">電流,防止損壞LED。

(3)將每個LED的負極連接到5V電源引腳附近的地線上,形成一個完整的電路。

2.3 軟件實現(xiàn)

在軟件實現(xiàn)上,使用51單片機的定時器和端口控制來控制LED燈的亮滅順序和時間。

具體方法如下:

(1)設(shè)置一個計數(shù)器變量count,用來保存當前亮起的LED燈的編號(從0開始)。

(2)在定時器中斷處理函數(shù)中,每次計數(shù)器溢出時,將當前亮起的LED燈熄滅,并將count加1;當count等于LED燈總數(shù)時,將count重置為0。

(3)然后,再將下一個LED燈亮起,以此類推。

(4)通過控制定時器的計數(shù)周期和每個燈亮起的時間,可以調(diào)整花樣流水燈的效果。

三、代碼實現(xiàn)

3.1 流水燈代碼實現(xiàn)1

#include < reg52.h >
 ?
 #define LED_NUM 8         // LED燈總數(shù)
 #define TIMER_TICK 500    // 定時器計數(shù)初值,控制亮滅時間
 #define HIGH 0            // 高電平
 #define LOW 1             // 低電平
 ?
 unsigned int count = 0;
 ?
 // 定時器中斷處理函數(shù)
 void TimerInterrupt() interrupt 1
 {
     static unsigned long tick = 0;
 ?
     tick++;
 ?
     if (tick >= TIMER_TICK)
     {
         P1 &= ~(1 < < count); // 熄滅當前LED
         count++;             // 切換到下一個LED
 ?
         if (count >= LED_NUM)
         {
             count = 0;       // 重置計數(shù)器
         }
 ?
         P1 |= (1 < < count);  // 亮起下一個LED
         tick = 0;            // 重置計時器
     }
 }
 ?
 // 主函數(shù)
 void main()
 {
     unsigned int i;
 ?
     P1 = 0xFF;              // 所有IO口初始化為高電平
     TMOD |= 0x01;           // 定時器0,模式1,16位自動重載
     TH0 = (65536 - TIMER_TICK) / 256;
     TL0 = (65536 - TIMER_TICK) % 256;
     ET0 = 1;                // 定時器中斷允許
     EA = 1;                 // 總中斷允許
     TR0 = 1;                // 定時器開始計數(shù)
 ?
     while (1)
     {
         // 等待中斷事件
     }
 }

3.2 流水燈實現(xiàn)效果2

【1】逐個點亮

#include < reg52.h >
 ?
 void Delay(unsigned int t) // 延時函數(shù)
 {
     unsigned int i, j;
     for (i = 0; i < t; i++)
         for (j = 0; j < 125; j++);
 }
 ?
 void main()
 {
     while (1)
     {
         unsigned char i; // 定義計數(shù)器i
         for (i = 0; i < 8; i++) // 循環(huán)8次,依次點亮LED燈
         {
             P0 = ~(1 < < i); // 通過位運算生成控制信號,輸出到P0口,控制LED燈點亮
             Delay(500); // 延時500ms
         }
     }
 }

【2】逐個熄滅

#include < reg52.h >
 ?
 void Delay(unsigned int t) // 延時函數(shù)
 {
     unsigned int i, j;
     for (i = 0; i < t; i++)
         for (j = 0; j < 125; j++);
 }
 ?
 void main()
 {
     while (1)
     {
         unsigned char i; // 定義計數(shù)器i
         for (i = 7; i < 8; i--) // 循環(huán)8次,依次熄滅LED燈
         {
             P0 = ~(1 < < i); // 通過位運算生成控制信號,輸出到P0口,控制LED燈熄滅
             Delay(500); // 延時500ms
         }
     }
 }

【3】來回流動

#include < reg52.h >
 ?
 void Delay(unsigned int t) // 延時函數(shù)
 {
     unsigned int i, j;
     for (i = 0; i < t; i++)
         for (j = 0; j < 125; j++);
 }
 ?
 void main()
 {
     while (1)
     {
         unsigned char i; // 定義計數(shù)器i
         for (i = 0; i < 8; i++) // 循環(huán)8次,依次點亮LED燈
         {
             P0 = ~(1 < < i); // 通過位運算生成控制信號,輸出到P0口,控制LED燈點亮
             Delay(500); // 延時500ms
         }
         for (i = 6; i > 0; i--) // 循環(huán)6次,依次熄滅LED燈
         {
             P0 = ~(1 < < i); // 通過位運算生成控制信號,輸出到P0口,控制LED燈熄滅
             Delay(500); // 延時500ms
         }
     }
 }

3.3 閃光燈的實現(xiàn)

下面是三個不同的閃光燈效果的代碼,分別為常亮、快閃和慢閃。

【1】常亮閃光燈

#include < reg52.h >
 ?
 sbit LED = P1 ^ 0;
 ?
 void main() {
     while (1) {
         LED = 0; // LED常亮
     }
 }

【2】快閃閃光燈

#include < reg52.h >
 ?
 sbit LED = P1 ^ 0;
 ?
 void delay(unsigned int i) {
     while (i--);
 }
 ?
 void main() {
     while (1) {
         LED = 0; // LED亮
         delay(50000); // 延時一段時間
         LED = 1; // LED滅
         delay(50000); // 延時一段時間
     }
 }

【2】慢閃閃光燈

#include < reg52.h >
 ?
 sbit LED = P1 ^ 0;
 ?
 void delay(unsigned int i) {
     while (i--);
 }
 ?
 void main() {
     while (1) {
         LED = 0; // LED亮
         delay(100000); // 延時一段時間
         LED = 1; // LED滅
         delay(100000); // 延時一段時間
     }
 }

以上三個代碼中,都使用了P1口的第0位來控制LED燈的亮滅。其中,第一個代碼是常亮閃光燈,只需要將LED置為0。第二個代碼是快閃閃光燈,使用了一個delay函數(shù)來實現(xiàn)延時,每次延時50000個時鐘周期,即約為500ms。第三個代碼是慢閃閃光燈,與第二個代碼類似,只是將延時時間改為了100000個時鐘周期,即約為1s。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1596

    瀏覽量

    109733
  • 51單片機
    +關(guān)注

    關(guān)注

    277

    文章

    5711

    瀏覽量

    127371
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2291

    瀏覽量

    96404
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118911
  • 流水燈
    +關(guān)注

    關(guān)注

    21

    文章

    433

    瀏覽量

    60511
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    C51單片機學(xué)習(xí)筆記(二)——花樣流水燈的實現(xiàn) 精選資料分享

    C51單片機學(xué)習(xí)筆記(二)——花樣流水燈的實現(xiàn)文章目錄C51單片機學(xué)習(xí)筆記(二)——
    發(fā)表于 07-15 09:52

    心形花樣流水燈

    心形花樣流水燈基于51單片機程序設(shè)計電路圖等
    發(fā)表于 11-26 16:36 ?213次下載

    51單片機流水燈程序

    51單片機流水燈程序 51單片機流水燈程序
    發(fā)表于 12-21 15:52 ?174次下載

    單片機控制花樣流水燈原理圖及程序

    本文詳細介紹了AT89C51單片機流水燈的編寫方法以及介紹了單片機32位LED花樣流水燈程序及原
    發(fā)表于 04-26 16:15 ?5.6w次閱讀
    <b class='flag-5'>單片機</b>控制<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>原理圖及程序

    如何使用51單片機控制32個LED多花樣流水燈的程序資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是如何使用51單片機控制32個LED多花樣流水燈的程序資料免費下載。
    發(fā)表于 10-11 08:00 ?47次下載
    如何使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>控制32個LED多<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>的程序資料免費下載

    51單片機控制32個LED多花樣流水燈詳細程序資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是51單片機控制32個LED多花樣流水燈詳細程序資料免費下載。
    發(fā)表于 10-10 08:00 ?81次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>控制32個LED多<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>詳細程序資料免費下載

    使用C51單片機設(shè)計的4按鍵4種花樣流水燈的資料和程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用C51單片機設(shè)計的4按鍵4種花樣流水燈的資料和程序免費下載。
    發(fā)表于 11-09 08:00 ?43次下載
    使用C<b class='flag-5'>51</b><b class='flag-5'>單片機設(shè)</b>計的4按鍵4種<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>的資料和程序免費下載

    使用單片機設(shè)計的花樣流水燈程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用單片機設(shè)計的花樣流水燈程序免費下載。
    發(fā)表于 04-01 08:00 ?1次下載
    使用<b class='flag-5'>單片機設(shè)</b>計的<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>程序免費下載

    使用51單片機設(shè)計的流水燈程序資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機設(shè)計的流水燈程序資料免費下載
    發(fā)表于 04-08 08:00 ?11次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機設(shè)</b>計的<b class='flag-5'>流水燈</b>程序資料免費下載

    使用51單片機進行四按鍵五花樣流水燈設(shè)計的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機進行四按鍵五花樣流水燈設(shè)計的程序免費下載。
    發(fā)表于 08-23 17:30 ?19次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>進行四按鍵五<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>設(shè)計的程序免費下載

    使用51單片機實現(xiàn)簡單花樣流水燈的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機實現(xiàn)簡單花樣流水燈的程序免費下載。
    發(fā)表于 07-05 17:41 ?10次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>實現(xiàn)簡單<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>的程序免費下載

    使用51單片機設(shè)流水燈的源代碼免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機設(shè)流水燈的C語言源代碼免費下載。
    發(fā)表于 06-28 17:42 ?5次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機設(shè)</b>計<b class='flag-5'>流水燈</b>的源代碼免費下載

    使用proteus仿真AVR單片機設(shè)計超級花樣流水燈的資料合集

    本文檔的主要內(nèi)容詳細介紹的是使用proteus仿真AVR單片機設(shè)計超級花樣流水燈的資料合集。
    發(fā)表于 04-30 08:00 ?4次下載
    使用proteus仿真AVR<b class='flag-5'>單片機設(shè)</b>計超級<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>的資料合集

    C51單片機學(xué)習(xí)筆記(二)——花樣流水燈的實現(xiàn)

    C51單片機學(xué)習(xí)筆記(二)——花樣流水燈的實現(xiàn)文章目錄C51單片機學(xué)習(xí)筆記(二)——
    發(fā)表于 11-12 13:51 ?37次下載
    C<b class='flag-5'>51</b><b class='flag-5'>單片機</b>學(xué)習(xí)筆記(二)——<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>的實現(xiàn)

    基于51單片機花樣流水燈設(shè)計

    花樣流水燈就是讓LED燈按照一定規(guī)律進行各種變化,流水燈在生活中也隨處可見,例如在建筑物的棱角上裝上流水燈,可以起到變換閃爍達到美不勝收的效果。此設(shè)計使用16個LED燈,有四種
    的頭像 發(fā)表于 06-28 10:29 ?4252次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>花樣</b><b class='flag-5'>流水燈</b>設(shè)計