呼吸燈的寫法

2021-08-22 05:00:11 字數 1769 閱讀 7506

晶元週期20ns,當計數50次為1us,在計數1000次則1ms,在計數1000次為1s,因此設定3個計數器分別為cnt_s,cnt_ms,cnt_us. 為了實現呼吸燈從亮到暗,在由暗到亮需要設定乙個標誌位flag

呼吸燈的畫出分析

這裡寫**片

module huxi(

input wire clk,

input wire rst_n,

output reg[3:0] led

);reg[9:0] cnt_2s ;

reg[9:0] cnt_2ms ;

reg[6:0] cnt_2us ;

parameter cnt_max = 999;

reg flag ;

//cnt_2us

always@(posedge clk or negedge rst_n)

if(rst_n==0)

cnt_2us <= 0;

else

if(cnt_2us==99)

cnt_2us <= 0;

else

cnt_2us <= cnt_2us + 1;

//cnt_2ms

always@(posedge clk or negedge rst_n)

if(rst_n==0)

cnt_2ms <= 0;

else

if(cnt_2ms==999&&cnt_2us==99)

cnt_2ms <= 0;

else

if(cnt_2us==99)

cnt_2ms <= cnt_2ms + 1;

//cnt_2s

always@(posedge clk or negedge rst_n)

if(rst_n==0)

cnt_2s <= 0;

else

if(cnt_2s==cnt_max&&cnt_2ms==999&&cnt_2us==99)

cnt_2s <= 0;

else

if(cnt_2ms==999&&cnt_2us==99)

cnt_2s <= cnt_2s + 1;

//flag

always@(posedge clk or negedge rst_n)

if(rst_n==0)

flag <= 0;

else

if(cnt_2s==999&&cnt_2ms==999&&cnt_2us==99)

flag <= ~flag;

//led

always@(posedge clk or negedge rst_n)

if(rst_n==0)

led <= 0 ;

else

if(cnt_2ms<=cnt_2s&&flag==0)

led <= 4'b1111;

else

if(cnt_2ms>cnt_2s&&flag==0)

led <= 0;

else

if(cnt_2ms>=cnt_2s&&flag==1)

led <= 4'b1111;

else

if(cnt_2ms1)

led <= 0;

endmodule

Mixly 呼吸燈及可調燈

熟悉函式應用及中斷用法。1.使用函式方法實現呼吸燈功能。2.使用中斷或其他方式實現可調燈功能。硬體 arduino led燈 按鈕 軟體 mixly ide 核心 截圖 呼吸燈 實驗一 呼吸燈 可調燈 實驗二 可調燈 實驗一 呼吸燈 通過編寫 迴圈實現led燈緩緩變亮再到緩緩變暗的效果,成功。實驗二...

呼吸燈按鈕的實現

前幾天瀏覽網頁是時候,發現乙個特效,感覺很不錯,博主仿照它的樣子寫了一下,下面直接見 吧。在頁面中新增乙個提交按鈕 class submit style type submit class submit value 登入 div body 下面進行樣式設計。大小高寬就不說了,直奔重點 border ...

verilog PWM實現呼吸燈

使用pwm技術實現呼吸燈。利用占空比每1ms遞增1us的占空比來點亮led。沒隔1s實現燈由逐漸變亮到逐漸變暗,或者逐漸變暗到逐漸變數的轉換。使用的語言是verilog。module led breath parameter led width 4 input clk,global clock in...