呼吸燈主要是利用PWM的方式,在固定的頻率下,通過(guò)調(diào)整占空比的方式來(lái)控制LED燈的亮度的變化,從而實(shí)現(xiàn)由暗漸亮再由亮漸暗的過(guò)程。
呼吸燈的整個(gè)FPGA實(shí)現(xiàn)流程主要由四個(gè)模塊組成,分別是計(jì)數(shù)器模塊,調(diào)節(jié)值產(chǎn)生模塊,計(jì)數(shù)方向模塊以及占空比調(diào)節(jié)模塊組成。
計(jì)數(shù)器模塊:計(jì)數(shù)器設(shè)置為五進(jìn)制計(jì)數(shù)器,其輸出記為counter;
調(diào)節(jié)值產(chǎn)生模塊:為五進(jìn)制加減計(jì)數(shù)器,用以產(chǎn)生占空比調(diào)節(jié)的比較值,其輸出記為compare;
計(jì)數(shù)方向模塊:通過(guò)高低電平控制調(diào)節(jié)值產(chǎn)生模塊的計(jì)數(shù)方向,其輸出記為flag;
占空比調(diào)節(jié)模塊:通過(guò)比較counter和compare的值來(lái)輸出不同電平控制LED燈。
counter通過(guò)與compare相比較來(lái)產(chǎn)生不同的電平,為實(shí)現(xiàn)占空比不斷變化,即高電平持續(xù)時(shí)間不斷變化,compare需不斷變化,但是在一個(gè)周期內(nèi),compare需固定不變,因此,每當(dāng)計(jì)數(shù)器模塊溢出一次,compare需隨之改變(加1或減1),其方向由flag控制。
(1)若flag=0,counter=4,compare!=3,則加計(jì)數(shù);
(2)若flag=0,counter=4,compare=3,則flag置1;
(3)若flag=1,counter=4,compare!=1,則減計(jì)數(shù);
(4)若flag=1,counter=4,compare=1,則flag置0.
從最終的實(shí)現(xiàn)結(jié)果可以看出,輸出信號(hào)的占空比在不斷變化,實(shí)現(xiàn)了設(shè)計(jì)要求。需要注意的是,為了使呼吸燈的實(shí)驗(yàn)現(xiàn)象便于觀察,需要適當(dāng)延長(zhǎng)計(jì)數(shù)器的計(jì)數(shù)周期。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21738瀏覽量
603461 -
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108007 -
PWM
+關(guān)注
關(guān)注
114文章
5186瀏覽量
213972 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94581 -
呼吸燈
+關(guān)注
關(guān)注
10文章
110瀏覽量
42736
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論