大家好,我是小小的電子之路,這是我的第9篇原創文章,很高興與大家一起分享~
原文出自微信公眾號【小小的電子之路】
呼吸燈主要是利用PWM的方式,在固定的頻率下,通過調整占空比的方式來控制LED燈的亮度的變化,從而實現由暗漸亮再由亮漸暗的過程。
呼吸燈的整個FPGA實現流程主要由四個模塊組成,分別是計數器模塊,調節值產生模塊,計數方向模塊以及占空比調節模塊組成。
1、計數器模塊:計數器設置為五進制計數器,其輸出記為counter;
2、調節值產生模塊:為五進制加減計數器,用以產生占空比調節的比較值,其輸出記為compare;
3、計數方向模塊:通過高低電平控制調節值產生模塊的計數方向,其輸出記為flag;
4、占空比調節模塊:通過比較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。
從最終的實現結果可以看出,輸出信號的占空比在不斷變化,實現了設計要求。需要注意的是,為了使呼吸燈的實驗現象便于觀察,需要適當延長計數器的計數周期。
以上就是本次分享的全部內容,謝謝大家!