<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • 用至簡設計法進行PWM流水燈設計

    發布時間:2017-7-6 10:55    發布者:chunfen26341612
    關鍵詞: FPGA , FPGA流水燈 , 明德揚 , 至簡設計法 , 嵌入式
    脈沖寬度調制(pulse width modelation)簡稱PWM,利用微處理器的數字輸出來對微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中。
    在本章的應用中可以認為PWM就是一種方波。如圖2-7所示。
    圖2-7 PWM波形圖
    一個周期為10ms,高電平為6ms,低電平時間為4ms的PWM,其占空比(高電平時間占整個周期的比例)為60%。
    明德揚FPGA開發板共有8個LED燈。產生8個管腳的PWM圖,如圖2-8所示。每個管腳對應的占空比分別為:80%、70%、60%、50%、40%、30%、20%和10%。系統工作時鐘100MHz。
    圖2-8 各個LED等對應的PWM波形
    FPGA通過8個管腳來分別控制8個LED燈,管腳值為0,對應的LED燈亮,管腳值為1,對應的LED燈滅(低亮高滅)。如果管腳不停地變化,則LED燈會閃爍;如果這種高低變化非?,由于人的視覺暫留現象,LED就會出現不同的亮度。
    基于這個原則,我們也可以通過產生PWM波形,來控制LED燈的亮度。
    1. 明確功能
    首先確定模塊信號列表,如表2.2。
    表2.2信號列表

    信號名

    I/O

    位寬


    說明


    clk


    I


    1


    系統工作時鐘100MHz。


    rst_n


    I


    1


    系統復位信號,低電平有效。


    led


    O


    8


    LED輸出信號

    產生8個脈沖,每個脈沖周期為10s對應的占空比分別為:80%、70%、60%、50%、40%、30%、20%和10%。
    2. 功能波形
    led所有信號的變化都是相似的,這里以led[0]為例。見圖2-9。
    圖2-9 led[0]信號變化圖
    3. 計數結構
    因為每個脈沖的高低電平持續時間都是以1s為單位的,所以引入兩個計數器,計數器cnt_1s計數1s,計數器cnt_10s計數每個脈沖高低電平分別持續的時間。具體計數情況如圖2-10所示:

    圖2-10 計數結構圖
    4. 加一結束條件
    cnt_1s的加1條件:計數器一直在計數,即:assign add_cnt_1s=1;
    cnt_1s的結束條件:加一條件下計數到100_000_000-1;
    cnt_10s的加1條件:cnt_1s的結束時刻;
    cnt_10s的結束條件:加一條件下計數到10-1;
    5. 定義特殊點
    圖2-11有幾個特殊點,需要我們記住。
    圖2-11 特殊定義點圖
    cnt1s的結束條件:cnt_1s==100_000_000-1,定為end_cnt_1s。
    cnt10s的結束條件:cnt_10s==10-1,定為end_cnt_10s。
    led所有位的新號變化都是相似的,所以我們以led[0]為例定義特殊點,
    led[0]變高的條件:cnt_10s==1-1,定為led0_off。
    led[0]變低的條件:cnt_10s==10-1,定為led_on。

    6. 完整性檢查


    (1)計數器cnt_1s
    cnt_1s的初值:0;
    cnt_1s的加1條件:assign add_cnt_1s=1;
    cnt_1s的結束條件:
    assign end_cnt_1s=add_cnt1s&&cnt_1s ==100_000_000- 1
    (6)led[3]
    led[3]由0變1:led3_off
    led[3]由1變0:led_on
    (2)計數器cnt_10s
    cnt_10s初值:0;
    cnt_10s的加1條件: assign add_cnt_10s=end_cnt1s;
    cnt_10s的結束條件:
    assign end_cnt_10s=add_cnt10s && cnt_10s==10 - 1
    (7)led[4]
    led[4]由0變1:led4_off
    led[4]由1變0:led_on
    (3)led[0]
    led[0]由0變1:led0_off
    led[0]由1變0:led_on
    (8)led[5]
    led[5]由0變1:led5_off
    led[5]由1變0:led_on
    (4)led[1]
    led[1]由0變1:led1_off
    led[1]由1變0:led_on
    (9)led[6]
    led[6]由0變1:led6_off
    led[6]由1變0:led_on
    (5)led[2]
    led[2]由0變1:led2_off
    led[2]由1變0:led_on
    (10)led[7]
    led[7]由0變1:led7_off
    led[7]由1變0:led_on
    7. 計數器代碼
    8. 完整代碼

    本文地址:http://www.portaltwn.com/thread-453111-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
    • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
    • Dev Tool Bits——使用DVRT協議查看項目中的數據
    • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷