如何用單片機點亮LED

2020-12-03 電子產品世界

每個入門單片機的朋友,我想第一個程序幾乎都是點亮一顆LED燈了,這同軟體工程的「hello world」一樣經典,是很簡單,但卻有著很多回憶,依然記得學習單片機的那段經歷,那時經典的8051單片機比如AT89C52要大約8個大洋,電阻電容等等都得自己去買(學校那時沒開發實驗室),有時為了幾顆電阻,幾顆LED燈,還得花4元的公交車費跑去電子市場,還論顆買,電阻1毛錢2顆,LED燈M5粗的那種1毛錢1顆,然後興高採烈的各種焊接,各種跳線,還各種燒毀……回想起來都說淚啊!

本文引用地址:http://www.eepw.com.cn/article/201808/385828.htm

言歸正傳,我認為單片機第一個程序是點亮LED的理由有幾點:

1、學會用Keil軟體建立單片機工程,建立程序文件,軟體配置和程序編譯。

2、學會分析電路並分析驗證。

3、學會用proteus繪製電路原理圖,並調試仿真。

4、了解一個小實驗的基本流程。

綜合以上幾點,認真的做好這個實驗,對提高學習興趣,很有必要。

什麼是LED?

LED中文名稱叫發光二極體,它會發出可見光,常見及常用的有可發紅、黃、綠色光的LED燈,在產品中,紅色常用來指示系統錯誤,綠色常用來指示系統正常,黃色常用來警告,根據應用需求的不同,LED燈也各有千秋,如圖。

圖中有方形,圓形,貼片等LED,顏色也不一樣,一般地,發光顏色與燈的外形顏色相同,使用的時候,必須注意幾點:

1、引腳判斷:本例使用2腳的LED燈,新的LED長的引腳為正極,短的引腳為負極。

2、工作電壓:通常為1.2~2.2V

3、工作電流:2mA~20mA

如何點亮?

知道LED的基本參數後,就可以根據需求設計電路了,噢!電路?什麼是電路?

電路:指的是由電源,導線,用電器,開關組成的迴路。(大概這樣吧)

那麼,點亮LED燈的電路必須包含定義中的部分:

1、電源:本例用5V直流電源供電。

2、導線:本例用proteus仿真,連線即為導線。

3、用電器:LED燈,當然,還得加電阻。

4、開關:仿真中「運行」相當於開關。

好了,下面見證LED的成長:

1、計算:參考LED的參數,本例使用M3大的圓形紅色LED來演示,它的工作電流取3mA就足夠亮,LED的亮度與電流有關;工作電壓取2V(實測得的數據), 那麼,怎樣滿足該條件? 電源用5V供電,而LED只需要2V,還剩3V,怎麼辦?這時,該電阻出場了,電阻是一種能「吃電能」的傢伙,剩餘的3V電壓就加在它上面,這樣就清楚了, Vled = 2V Vr = 3V ,I = 3mA , 電阻和LED燈應該串聯,不解釋,這裡還差一個參數——電阻值,這時,歐姆定律出場, R = U / I = 3V / 3mA = 1K 。

2、繪製仿真電路圖: 過程就不說了,看圖

運行仿真後。

加入電流表和電壓表,測測數據和計算的是否有偏差。

OK,正確。

單片機如何控制LED?

上圖中是給LED燈直接加電壓,使之點亮,這種控制方式是靠控制開關的通斷使之亮滅,同家庭裡的燈是一樣一樣的,單片機的出現開啟了電子設備智能時代,換一種方式,用單片機去控制LED燈的亮滅,而單片機靠執行程序去輸出想要的結果,真真正正地把人的思想實現出來。

單片機是數字電路,輸出/輸入只有高電平1和低電平0之分,通常0~0.4V的電壓範圍定義為低電平,大於2V定義為高電平,如圖是單片機控制LED燈的電路圖。

PS:由於是仿真,這裡偷懶了,圖中省略了時鐘電路,電源電路和復位電路

將LED燈的負極連接到單片機P1.0口,正極串口電阻R1到+5V,這樣原理相同的,單片機輸出低電平0,使得LED和電阻通路的兩端產生電勢差,相當於上面圖中的「5V電源」,從而滿足LED燈的參數,點亮LED燈;而當單片機P1.0口輸出高電平時,電勢差約為0,不滿足LED燈亮的要求,此時LED燈熄滅,要達到這樣的效果,必須將「想法」裝給單片機,這時程序閃亮登場。

程序編寫:用keil新建一個C語言程序工程,代碼如下:

運行仿真,可以看到LED燈亮了,具體步驟不多說,網上一大堆

可是,這樣好嗎?嗯,實驗到這步,流程基本走通了,然而這樣的程序並沒多大意義,當我們需要點亮多顆燈時,需要shit LED1 = 。.. sbit LED2 = 。.. 然後再賦值,也許你會說:「簡單,同時埠賦值嘛, 如 P1 = 0x6D 完事兒」 ,但是,這幾顆燈要是都不在一個埠呢?這時還是得一個個埠去定義,去賦值?這樣好嗎?可能不好,下面的程序案例,將點亮LED燈封裝在一個函數裡,這個函數僅實現點亮LED燈的邏輯功能,使用時根據硬體連接設置函數參數即可,希望起到拋磚引玉的效果。

運行結果為P1^2和P1^7輸出低電平,LED燈點亮。


相關焦點

  • 51單片機入門之一:點亮一個發光二極體
    以上是發光二極體的基礎知識,但這裡只說了一些重要的性質和參數,實際在做電路時還要考慮到其它的因素,如各種種樣的封裝尺寸以及價格等,下面說一下如何通過編程讓實驗板上的一個發光二極體發光。學過電子技術的人應該知道,要讓一個發光二極體發光我們可能採用如下電路實現,如圖2,這裡只要限流電阻選擇恰當,就可以讓發光二極體發光。
  • 單片機小製作,LED小燈瓶
    那個LED電子螢火蟲用的是ATtiny13單片機來控制,我也正好有。而且硬體製作比較簡單,成本也不高,10元錢都不到,就能DIY一個。雖然簡單,但是製作卻需要耐心和細心,畢竟需要連接12個LED,焊接的工作量不少,我自己用了一個下午才完成,而程序更是陸陸續續地寫了幾個小時。估計你會很好奇地問,一共才6個可用I/O引腳的 ATtiny13,怎麼能驅動12個LED呢?
  • 單片機驅動LED中上拉電阻的問題
    這時上拉電阻也是限流用的。P口為高電位或高阻狀態發光管暗的時候電流是從電源正——上拉電阻——P口,這時LED無電流流過,P口為低電位,限流電阻上流過電流全部從P口流入。要從單片機的輸出驅動能力開始講起。下面是本人做過的LED上拉電阻試驗測試條件:VCC=4.96V,φ3綠色發光二極體。二極體正極接VCC,負極通過RL接地。
  • 單片機點亮一個發光二極體LED1,用仿真軟體Proteus展示
    編程實現用P0.1口控制發光二極體LED1發光步驟:(1)用單片機編程軟體Keil 編寫程序,並保存到「單片機練習一」文件夾中,命名為「P0.1控制LED」;(2)用單片機仿真軟體Proteus畫出原理圖;(3)在Proteus中雙擊單片機
  • 單片機控制步進電機的原理
    另外,用鍵盤來對電機的狀態進行控制,並用數碼管顯示電機的轉速,採用74LS164作為2位單個數碼管的顯示驅動。74LS164帶鎖存,使用串行接法可以節約I/O口資源。其電路圖如圖2所示。通過51的TXD和RXD口對CLK和DATA發送數據。
  • 基於AT89C51的LED顯示屏控制電路設計
    當某一列為高電平,某一行為低電平時,則對應的發光二極體點亮。首先單片機P1.1串行輸出一位二進位位「1」,經4組74LSl64給4個16×16點陣LED模塊的第1列送入一高電平,接著由P3.O串行輸出4個16×16點陣LED模塊的第1列行數據,即Y1,Y17,Y33,Y49列的行數據,經74LS373鎖存後送LED顯示屏的行線,此時每個LED模塊第1列對應的LED點亮。
  • 電子仿真:51單片機實現LED燈閃爍
    電子仿真軟體:Proteus筆者認為對於沒有條件的小夥伴,最好的辦法是用電子仿真軟體來模擬實驗。需要軟體的小夥伴可以私信筆者「Proteus」來獲取,裡面不僅有官方正版的軟體、安裝教程、漢化補丁、還有關於此軟體的詳細使用教程,如下圖所示。至於Proteus到底是一個可以幹什麼的軟體,現在不做解釋,請往下看實驗現象。
  • 51單片機實例講解,實現LED每秒閃爍1次程序
    本例是一個很簡單的程序,即用單片機實現一隻LED彩燈發光閃爍。其控制要求為:彩燈在1s內點亮0.5s,熄滅0.5s。(1)LED每秒閃爍1次硬體電路(見圖3)。圖3 LED每秒閃爍1次接線原理圖(a)單片機電源電路原理圖; (b)LED閃爍單片機接線圖
  • 基於單片機的LED彩燈控制器
    led 彩燈由於其豐富的燈光色彩,低廉的造價以及控制簡單等特點而得到了廣泛的應用,用彩燈來裝飾已經成為一種時尚。但目前市場上各式樣的 LED 彩燈控制器大多數用全硬體電路實現,電路結構複雜、功能單一,這樣一旦製作成品只能按照固定的模式閃亮,不能根據不同場合、不同時間段的需要來調節亮燈時間、模式、閃爍頻率等動態參數。
  • 單片機一個IO口如何控制兩顆發光二極體(LED)
    單片機一個IO口如何控制兩顆發光二極體LED單片機工程師在面試的過程中,經常會碰到一些相同的問題,筆者總結了十個提問率較高的問題,供大家參考。現在我們來分析單片機工程師常遇面試問題之一:一個單片機IO口如何控制兩顆LED?
  • 植物能發電並點亮LED燈泡?來看看這是什麼操作
    據報導,科學家開發出一種方法,利用活的植物發電從而點亮
  • 一起學Arduino:點亮第一盞LED燈
    本文內容:一、硬體的了解知識二、軟體的邊用邊學三、點亮第一盞LED正文:一、硬體的了解知識1、Arduino Uno開發板的認識我的Arduino Uno開發板是幾塊錢的拼貨,也不怕獻醜了,能用、(模擬埠也一樣)2、點亮一盞LED燈學習程序語言第一個例子就是打個招呼:「hello world!」那麼學習Arduino Uno第一個例子就是點亮一盞LED燈!當你買回來一塊Arduino Uno板子時,肯定是急不可待地插上USB線,速度地連上電腦(或DC5V電源,比如充電寶)。
  • 小梅哥和你一起深入學習FPGA之點亮LED燈(上)
    也算是為後續實驗做鋪墊吧,第一個實驗就安排成了點亮LED燈。從圖中可知,我們給對應的led負極上一個低電平,就會有對應的電流通過 電阻,流過led燈,於是LED燈就會被點亮;當給led負極一個高電平時,led兩端電壓相等,因此沒有電流流過,led則呈熄滅狀態。
  • 基於51單片機的TFT液晶顯示設計
    用51單片機驅動液晶模塊通常都使用1602和12864等極為簡單的液晶模塊, 這裡介紹用51單片機驅動QVGA解析度的TFT液晶模塊, 以實現彩色和更為複雜的內容顯示的方法。同時, 本文還將使用DS1302晶片和DS18B20晶片來實現在液晶屏上顯示實時時鐘和溫度。
  • 可以減輕主CPU負擔的大型LED顯示屏系統
    傳統的大型led顯示屏系統以單片機MCU、ARM 或PLD為核心控制晶片,以FPGA為核心的led顯示屏控制系統設計實現起來比較複雜,並且需要以高性能的FPGA晶片作為基礎,而以微處理器為核心的led顯示屏控制系統不夠靈活,在改變LED屏幕顯示尺寸時,需要大幅修改系統設計,PLD雖在處理速度上有較大提高且能很好地控制多模塊顯示
  • 單片機原理|定時器/計數器的工作原理及應用作業
    A、TCONB、TMODC、SCOND、IE我的答案:C 得分: 2.3分 19用8051單片機的定時器T1作定時方式,用模式1,則工作方式控制字為( )。
  • 基於單片機的大型LED顯示系統設計
    通常用單一單片機作為主控器件控制和協調大屏幕顯示。由多片單片機構成的多處理器系統,其中一片作為主CPU,其他作為子CPU共同控制大屏幕的顯示,該系統可以減輕主CPU 的負擔,提高了LED點陣的刷新頻率。
  • 藍橋杯單片機-鎖存器
    藍橋杯單片機需要使用用鎖存器來充分利用單片機接口資源。下面我來講解藍橋杯單片機如何打開相對應的鎖存器來控制對應功能。單片機應用鎖存器的功能有LED燈控制,繼電器控制,蜂鳴器控制,數碼管顯示控制。以LED燈控制為例根據上面原理圖得,當使能端Y4C為高電平時,Q端輸出隨D端輸入而改變;使能端Y4C為低電平(單片機中「0」為低電平,「1」為高電平)時,輸出進入高阻態,連接LED燈的電路相當於斷開。使能端Y4C的電平高低是由以Y4與WR為輸入端的或非門控制的。
  • 關於STC單片機的幾點建議
    51系列中,STC用的是最多的。但問題是:1、51的最大好處無非就是學習資料眾多,學習條件比較好,但51單片機性能偏弱且價格高,因此性價比其實並不好。3、另外一大領域是專用的工業用單片機,這種單片機往往突出某個方面的性能,比如AD,而簡化了其他性能,但好處是價格非常便宜。但這種單片機資料往往要少得多,燒寫器等都是專用的,比較貴,不適合學習者而更適合工業化大批量生產。比如三星、義隆、合泰的一些單片機都是這樣,他們比51更便宜,性能上在自己的強項上一點不比51弱。
  • 基於單片機的彩燈小製作
    LED彩燈由於其豐富的燈光色彩,便宜的造價以及控制簡單等特點而得到了廣泛的應用,用彩燈來裝飾街道和城市建築物已經成為一種時尚。但目前市場上各式樣的LED彩燈控制器大多數用全硬體電路實現,電路結構複雜、電路複雜、功率損耗大等缺點。此外從功能效果上看,亮燈模式少而且樣式單調,缺乏用戶可操作性。