• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

多路彩燈控制器led流水燈VHDL速度可調(diào)

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1-231009230324564.doc

共1個(gè)文件

名稱(chēng):多路彩燈控制器led流水燈VHDL速度可調(diào)(代碼在文末付費(fèi)下載)

軟件:Quartus

語(yǔ)言:VHDL

代碼功能:

使用VHDL設(shè)計(jì)彩燈控制器,共24個(gè)led燈,分為5種不同的花樣,可以通過(guò)按鍵切換花樣的變化速度。

演示視頻:

部分代碼展示

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
--彩燈控制模塊
ENTITY?caideng_ctrl?IS
???PORT?(
??????clk_div??:?IN?STD_LOGIC;--控制時(shí)鐘
??????reset_p??:?IN?STD_LOGIC;--高電平復(fù)位
??????led??????:?OUT?STD_LOGIC_VECTOR(23?DOWNTO?0)--輸出燈
???);
END?caideng_ctrl;
ARCHITECTURE?ctrl?OF?caideng_ctrl?IS
???--中間信號(hào)
???SIGNAL?led_buf?????:?STD_LOGIC_VECTOR(23?DOWNTO?0)?:=?"000000000000000000000000";
???SIGNAL?state_count?:?STD_LOGIC_VECTOR(7?DOWNTO?0)?:=?"00000000";--狀態(tài)計(jì)數(shù)器
BEGIN
???PROCESS?(clk_div,?reset_p)
???BEGIN
??????IF?(reset_p?=?'1')?THEN--復(fù)位清零
?????????state_count?<=?"00000000";
??????ELSIF?(clk_div'EVENT?AND?clk_div?=?'1')?THEN
?????????IF?(state_count?=?"01010001")?THEN
????????????state_count?<=?"00000000";--運(yùn)行結(jié)束后循環(huán)
?????????ELSE
????????????state_count?<=?state_count?+?"00000001";--計(jì)數(shù)
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???led<=led_buf;
???PROCESS?(clk_div,?reset_p)
???BEGIN
??????IF?(reset_p?=?'1')?THEN--復(fù)位清零
?????????led_buf?<=?"000000000000000000000000";
??????ELSIF?(clk_div'EVENT?AND?clk_div?=?'1')?THEN
?????????CASE?state_count?IS
????--模式1
????????????WHEN?"00000000"?=>
???????????????led_buf?<=?"000000000000000000000000";
????????????WHEN?"00000001"?=>
???????????????led_buf?<=?"110011100011100011000110";
????????????WHEN?"00000010"?=>
???????????????led_buf?<=?"001100111000111000111001";
????????????WHEN?"00000011"?=>
???????????????led_buf?<=?"101110001110001110011100";
????????????WHEN?"00000100"?=>
???????????????led_buf?<=?"000111000111000111001110";
????????????WHEN?"00000101"?=>
???????????????led_buf?<=?"001100011100011100011100";
????????????--模式2
WHEN?"00000110"?=>
???????????????led_buf?<=?"100000000000000000000000";
????????????WHEN?"00000111"?=>
???????????????led_buf?<=?"101000000000000000000000";
????????????WHEN?"00001000"?=>

設(shè)計(jì)文檔(文檔點(diǎn)擊可下載):

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 仿真文件

Testbench

6. 仿真圖

  • 1-231009230324564.doc
    下載

相關(guān)推薦