呼吸燈主要是利用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
+關注
關注
1646文章
22059瀏覽量
619211 -
led燈
+關注
關注
22文章
1596瀏覽量
109846 -
PWM
+關注
關注
116文章
5581瀏覽量
219661 -
計數器
+關注
關注
32文章
2291瀏覽量
96487 -
呼吸燈
+關注
關注
10文章
112瀏覽量
43316
發布評論請先 登錄





基于CPLD/FPGA的呼吸燈效果實現(附全部verilog源碼)(by 大飛)
xilinx ISE 中異步FIFO ip的使用、仿真及各信號的討論(圖文教程)
霧盈FPGA筆記之(一):基于FPGA的呼吸燈簡單實驗程序(Verilog)
基于CPLD/FPGA的呼吸燈效果實現_呼吸燈源碼_明德揚資料
基于FPGA的呼吸燈設計(附源工程)

紫光同創FPGA教程:呼吸燈——盤古系列PGX-Nano開發板實驗例程

評論