呼吸燈主要是利用PWM的方式,在固定的頻率下,通過調整占空比的方式來控制LED燈的亮度的變化,從而實現由暗漸亮再由亮漸暗的過程。
呼吸燈的整個FPGA實現流程主要由四個模塊組成,分別是計數器模塊,調節值產生模塊,計數方向模塊以及占空比調節模塊組成。
計數器模塊:計數器設置為五進制計數器,其輸出記為counter;
調節值產生模塊:為五進制加減計數器,用以產生占空比調節的比較值,其輸出記為compare;
計數方向模塊:通過高低電平控制調節值產生模塊的計數方向,其輸出記為flag;
占空比調節模塊:通過比較counter和compare的值來輸出不同電平控制LED燈。
counter通過與compare相比較來產生不同的電平,為實現占空比不斷變化,即高電平持續時間不斷變化,compare需不斷變化,但是在一個周期內,compare需固定不變,因此,每當計數器模塊溢出一次,compare需隨之改變(加1或減1),其方向由flag控制。
(1)若flag=0,counter=4,compare!=3,則加計數;
(2)若flag=0,counter=4,compare=3,則flag置1;
(3)若flag=1,counter=4,compare!=1,則減計數;
(4)若flag=1,counter=4,compare=1,則flag置0.
從最終的實現結果可以看出,輸出信號的占空比在不斷變化,實現了設計要求。需要注意的是,為了使呼吸燈的實驗現象便于觀察,需要適當延長計數器的計數周期。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
602995 -
led燈
+關注
關注
22文章
1592瀏覽量
107950 -
PWM
+關注
關注
114文章
5181瀏覽量
213799 -
計數器
+關注
關注
32文章
2256瀏覽量
94477 -
呼吸燈
+關注
關注
10文章
110瀏覽量
42722
發布評論請先 登錄
相關推薦
評論