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

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

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

跑馬燈和流水燈的區(qū)別是什么?單片機如何控制LED燈?

數(shù)字信號處理輔導 ? 來源:未知 ? 作者:工程師飛燕 ? 2018-07-10 16:24 ? 次閱讀

一、跑馬燈和流水燈的區(qū)別

好多人分不清跑馬燈和流水燈,還以為是同一種狀態(tài),雖然難度等級是一樣的,但是燈的亮滅顯示方式是不一樣的。請看下圖

跑馬燈和流水燈的區(qū)別是什么?單片機如何控制LED燈?

二、單片機控制LED燈的常用電路接法

弄清楚跑馬燈的顯示狀態(tài)后可以開始進行設計了, 在日常的跑馬燈設計電路中LED燈一般接為這兩種形式,共電源或共地,也就是通常說的灌電流式和拉電流式

跑馬燈和流水燈的區(qū)別是什么?單片機如何控制LED燈?

三、電路分析編程

大家可以根據(jù)自己實際的電路需要選擇其中一種接法,由于AT89S52單片機IO端口不操作時是高電平所以下面我選擇的是共電源接法。


電路分析:當電路輸出高電平[端口為1]LED燈滅,當電路輸出低電平[端口為0]LED燈亮

大家可以按照自己的思路編程,方法不唯一,下面我將介紹3種方法

方法一:不利用算法,直接使用IO控制[可以說是最蠢的方法,但是一樣能實現(xiàn)效果,并且容易理解]

#include 《reg52.h》

//LED輸出端口位定義

sbit led0=P0^0;

sbit led1=P0^1;

sbit led2=P0^2;

sbit led3=P0^3;

sbit led4=P0^4;

sbit led5=P0^5;

sbit led6=P0^6;

sbit led7=P0^7;

//延時函數(shù)

void delay(void)

{

unsigned char a,b;

for(a=0;a《200;a++)

for(b=0;b《200;b++);

}

void main()

{

led0=1; //端口初始化

led1=1;

led2=1;

led3=1;

led4=1;

led5=1;

led6=1;

led7=1;

while(1)

{

led0=0; //點亮LED0

delay(); //延時

led0=1; //熄滅LED0

delay(); //延時,為下一個燈準備

led1=0;

delay();

led1=1;

delay();

led2=0;

delay();

led2=1;

delay();

led3=0;

delay();

led3=1;

delay();

led4=0;

delay();

led4=1;

delay();

led5=0;

delay();

led5=1;

delay();

led6=0;

delay();

led6=1;

delay();

led7=0;

delay();

led7=1;

delay();

}

}

方法二:借助數(shù)組對上面程序進行改進,使端口一次性賦值定義

#include 《reg52.h》

#define uchar unsigned char

#define uint unsigned int

//定義一個一維數(shù)組

unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

//延時函數(shù)

void delay(void)

{

uchar a,b;

for(a=0;a《200;a++)

for(b=0;b《200;b++);

}

void main()

{

uchar i;

while(1)

{

for(i=0;i《8;i++)

{

P0=table[i];//11111110

delay();

}

}

}

方法三:利用函數(shù)封裝庫

#include 《reg52.h》

#include 《intrins.h》 //此為調(diào)用函數(shù)的頭文件必須添加

#define uchar unsigned char

#define uint unsigned int

//延時函數(shù)

void delay(void)

{

uchar a,b;

for(a=0;a《200;a++)

for(b=0;b《200;b++);

}

void main()

{

uchar k;

k=0xfe; //定義初值

while(1)

{

P0=k;

delay();

k=_crol_(k,1); //調(diào)用頭文件封裝庫函數(shù)

}

}

還有移位運算等其他的方法在這里就不一一列出,大家可以自己嘗試!

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

    關注

    6037

    文章

    44558

    瀏覽量

    635350
  • 跑馬燈
    +關注

    關注

    5

    文章

    117

    瀏覽量

    34785

原文標題:回答讀者提問(2018-7-6)

文章出處:【微信號:digital_signals,微信公眾號:數(shù)字信號處理輔導】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AT89C2051跑馬燈/流水燈

    本帖最后由 詩畫生 于 2013-6-11 17:40 編輯 送女朋友的生日禮物,不多說先上視頻:有兩個LED短路了,所以一直亮著,原始的跑馬燈已經(jīng)拆掉了,所以請大家見諒撒!……這是原始
    發(fā)表于 06-11 17:21

    如何利用51單片機點亮LED實現(xiàn)跑馬燈效果?

    如何利用51單片機點亮LED實現(xiàn)跑馬燈效果?
    發(fā)表于 11-08 06:19

    LESSON2_流水燈

    流水燈,跑馬燈單片機實現(xiàn)LED流水燈跑馬燈功能。
    發(fā)表于 05-20 15:37 ?55次下載

    基于單片機跑馬燈程序及電路設計

    基于單片機跑馬燈程序及電路設計
    發(fā)表于 05-15 10:07 ?39次下載

    如何用51單片機數(shù)碼管實現(xiàn)跑馬燈功能?

    基于51單片機學習板。用S1鍵作為控制跑馬燈的方向按鍵,S5鍵作為控制跑馬燈方向的加速度按鍵,S9鍵作為
    的頭像 發(fā)表于 07-20 11:41 ?1.4w次閱讀
    如何用51<b class='flag-5'>單片機</b>數(shù)碼管實現(xiàn)<b class='flag-5'>跑馬燈</b>功能?

    交替閃爍8個LEDLED二進制加法顯示與流水燈跑馬燈的設計程序

    本文檔的主要內(nèi)容詳細介紹的是LED的多種使用方法程序免費下載包括了:一.交替閃爍8個LED,時間間隔為1s ,二.LED二進制加法顯示,
    發(fā)表于 09-20 17:19 ?11次下載
    交替閃爍8個<b class='flag-5'>LED</b><b class='flag-5'>燈</b>和<b class='flag-5'>LED</b>二進制加法顯示與<b class='flag-5'>流水燈</b><b class='flag-5'>跑馬燈</b>的設計程序

    使用51單片機控制LED的四個實驗程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機控制LED的四個實驗程序免費下載包括了:得到8盞LED交替亮滅的實驗效果,
    發(fā)表于 09-06 17:26 ?2次下載
    使用51<b class='flag-5'>單片機</b><b class='flag-5'>控制</b>器<b class='flag-5'>LED</b><b class='flag-5'>燈</b>的四個實驗程序免費下載

    使用51單片機實現(xiàn)愛心跑馬燈的程序免費下載

    用51單片機實現(xiàn)愛心跑馬燈程序本人閑來無事做,見實驗室的小伙伴用LED等做了一個跑馬燈,頓時引來了一大群妹子,當時就不服了,哼,不就是一個流水燈
    發(fā)表于 08-28 17:29 ?3次下載
    使用51<b class='flag-5'>單片機</b>實現(xiàn)愛心<b class='flag-5'>跑馬燈</b>的程序免費下載

    使用單片機實現(xiàn)跑馬燈的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用單片機實現(xiàn)跑馬燈的程序免費下載。
    發(fā)表于 06-18 08:00 ?2次下載
    使用<b class='flag-5'>單片機</b>實現(xiàn)<b class='flag-5'>跑馬燈</b>的程序免費下載

    51單片機實驗——跑馬燈實驗

    使用STC89C51單片機,書寫代碼實現(xiàn)P0口演示跑馬燈效果
    發(fā)表于 11-23 16:23 ?12次下載
    51<b class='flag-5'>單片機</b>實驗——<b class='flag-5'>跑馬燈</b>實驗

    ZigBee-CC2530單片機 - 按鍵控制跑馬燈的啟停

    ZigBee-CC2530單片機 - 按鍵控制跑馬燈的啟停程序源碼#include "ioCC2530.h" //引用CC2530頭文件#define LED1 (P1_0
    發(fā)表于 11-29 20:36 ?12次下載
    ZigBee-CC2530<b class='flag-5'>單片機</b> - 按鍵<b class='flag-5'>控制</b><b class='flag-5'>跑馬燈</b>的啟停

    實現(xiàn)LED的點亮與閃爍和跑馬燈

    實現(xiàn)LED的點亮與閃爍和跑馬燈
    發(fā)表于 12-05 09:36 ?12次下載
    實現(xiàn)<b class='flag-5'>LED</b><b class='flag-5'>燈</b>的點亮與閃爍和<b class='flag-5'>跑馬燈</b>

    跑馬燈控制器怎么接線

    跑馬燈控制器:又稱 LED跑馬燈控制器,可以控制LED
    的頭像 發(fā)表于 09-19 16:45 ?1.2w次閱讀

    單片機控制輪流交替閃爍跑馬燈設計

    接觸過單片機的朋友都會對流水燈有了解,那時我們是用單片機來制作的,但是你如果單純做個流水燈,選擇使用單片機來做的話未免有些資源的浪費,今天就
    的頭像 發(fā)表于 02-16 09:10 ?2397次閱讀

    基于51單片機的多模式音樂跑馬燈

    具體實現(xiàn)功能 1、16個發(fā)光二極管做跑馬燈跑馬燈有10種模式。 2、按鍵可以切換跑馬燈模式,且跑馬燈速度可以用按鍵進行控制。 3、數(shù)碼管顯
    的頭像 發(fā)表于 10-22 14:10 ?428次閱讀
    基于51<b class='flag-5'>單片機</b>的多模式音樂<b class='flag-5'>跑馬燈</b>