機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
FPGA入門LED的FPGA控制
FPGA入門LED的FPGA控制
 更新時(shí)間:2008-7-27 16:56:48  點(diǎn)擊數(shù):3
【字體: 字體顏色

LED顯示

讓你的FPGA板發(fā)光!

項(xiàng)目簡(jiǎn)介

該項(xiàng)目包括6個(gè)部分:

  • 第一部分: LED閃爍
  • 第二部分: LED是怎樣工作的(發(fā)光二極管的工作原理)
  • 第三部分: 改變發(fā)光二極管的亮度
  • 第四部分: 7段數(shù)碼管顯示
  • 第五部分: LED復(fù)用
  • 第六部分: LED點(diǎn)陣顯示

鏈接

LED閃爍

你有一個(gè)帶LED的FPGA板嗎?
試試下面這個(gè)簡(jiǎn)單的設(shè)計(jì)

==========================================================

module LEDglow(clk, LED);input clk;output LED;reg [23:0] cnt;always @(posedge clk) cnt<=cnt+1;wire [3:0] PWM_input = cnt[23] ? cnt[22:19] : ~cnt[22:19];reg [4:0] PWM;always @(posedge clk) PWM <= PWM[3:0]+PWM_input;assign LED = PWM[4];endmodule==========================================================

注意:"clk" 時(shí)鐘信號(hào)的頻率大約在 20MHz.
否則的話,LED閃爍得可能會(huì)太快或太慢。

 

LED是怎樣工作的

用FPGA控制LED
理想的發(fā)光二極管控制器是一個(gè)電流源。
FPGA的輸出引腳是電壓源,簡(jiǎn)單的解決辦法是添加一個(gè)串聯(lián)電阻到LED,通
常電阻的大小取100到1K歐姆。
LED基礎(chǔ)
LED (發(fā)光二極管) 是一個(gè)當(dāng)有點(diǎn)流流經(jīng)它時(shí)會(huì)發(fā)光的半導(dǎo)體器件。
其符號(hào)看起來(lái)像二極管,有一個(gè)陰極和一個(gè)陽(yáng)極。

  • LED允許電流從一個(gè)方向?qū),另一個(gè)方向截至,這點(diǎn)跟二極管是一樣的
  • 跟所有二極管一樣,LED也有一個(gè)導(dǎo)通電壓,大約在2.0V左右。
    • 低于 2.0V 時(shí), 不發(fā)光(沒(méi)有電流流過(guò)LED).
    • 高于 2.0V 時(shí), LED導(dǎo)通,發(fā)光強(qiáng)度隨著流經(jīng)LED電流的大小而變化。
  • LED有兩個(gè)極限參數(shù):
    • 最大正向電流(最大發(fā)光強(qiáng)度).通常在10 mA量級(jí).
    • 最大反向電壓(盡管LED被反向偏置時(shí)沒(méi)有電流流過(guò)它,但是也不要
      加太大的反向電壓).通常反向電壓限制在5V,比通常的二極管低得多!

改變發(fā)光二極管的亮度

點(diǎn)亮或熄滅LED

下面是如何讓LED閃爍的代碼(開/關(guān)).

====================================================

module LEDblink(clk, LED);input clk;     // clock typically from 10MHz to 50MHzoutput LED;// create a binary counterreg [32:0] cnt;always @(posedge clk) cnt<=cnt+1;assign LED = cnt[22];   // blink the LED at a few Hz (change
// the bit index to change the blinking rate)endmodule====================================================
使LED半亮
一種辦法是增大串聯(lián)在LED的電阻的阻值一倍。
另一種辦法是通過(guò)FPGA驅(qū)動(dòng)LED一半的時(shí)間。如果切換的速度足夠快的話,LED看
起來(lái)就是半亮的。

====================================================

module LEDhalflit(clk, LED);input clk;     // clk should be at least 200Hz. Anything above 
//is fine (most FPGA boards have adequate clocks,
// running at a few 10's of MHz)output LED;reg toggle;always @(posedge clk) toggle<=~toggle; // toggles at half
//the clk frequency
// (at least 100Hz)assign LED = toggle;endmodule====================================================
平滑的改變LED的亮度

對(duì)于LED亮度控制。PWM信號(hào)是一個(gè)理想的解決辦法。
下面是使用4位數(shù)字來(lái)控制LED產(chǎn)生16個(gè)亮度等級(jí)的例子。

====================================================

module LED_PWM(clk, PWM_input, LED);input clk;input [3:0] PWM_input;     // 16 intensity levelsoutput LED;reg [4:0] PWM;always @(posedge clk) PWM <= PWM[3:0]+PWM_input;assign LED = PWM[4];endmodule====================================================
LED呼吸閃爍

通過(guò)連續(xù)的改變LED的亮度,使得LED看起來(lái)像是在呼吸。

====================================================

module LEDglow(clk, LED);input clk;output LED;reg [23:0] cnt;always @(posedge clk) cnt<=cnt+1;wire [3:0] PWM_input = cnt[23] ? cnt[22:19] : ~cnt[22:19]; 
// ramp the PWM input up and downreg [4:0] PWM;always @(posedge clk) PWM <= PWM[3:0]+PWM_input;assign LED = PWM[4];endmodule====================================================

這跟我們?cè)诘谝还?jié)展示的例子的HDL代碼是一樣的.

  • 上一篇: 一個(gè)工程師有關(guān)FPGA項(xiàng)目的感言
  • 下一篇: 多進(jìn)制數(shù)字頻率調(diào)制(MFSK)系統(tǒng)VHDL程序
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1