用至簡(jiǎn)設計法進(jìn)行PWM流水燈設計

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

信號名

I/O

位寬


說(shuō)明


clk


I


1


系統工作時(shí)鐘100MHz。


rst_n


I


1


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


led


O


8


LED輸出信號

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

圖2-10 計數結構圖
4. 加一結束條件
cnt_1s的加1條件:計數器一直在計數,即:assign add_cnt_1s=1;
cnt_1s的結束條件:加一條件下計數到100_000_000-1;
cnt_10s的加1條件:cnt_1s的結束時(shí)刻;
cnt_10s的結束條件:加一條件下計數到10-1;
5. 定義特殊點(diǎn)
圖2-11有幾個(gè)特殊點(diǎn),需要我們記住。
圖2-11 特殊定義點(diǎn)圖
cnt1s的結束條件:cnt_1s==100_000_000-1,定為end_cnt_1s。
cnt10s的結束條件:cnt_10s==10-1,定為end_cnt_10s。
led所有位的新號變化都是相似的,所以我們以led[0]為例定義特殊點(diǎn),
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://selenalain.com/thread-453111-1-1.html     【打印本頁(yè)】

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

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页