回覆列表
  • 1 # 影片好笑

    不好意思啊,好久沒用VHDL了,有點忘了,不過原理應該挺簡單的啊,定義2個輸出端,分別表示2個數碼管的資料,每來一個時鐘加1,一直加到99之後清零,只不過要將時鐘設為10Hz,即時鐘週期0.1秒,這樣每0.1秒加1,相當於從0記到9.9秒。你要是需要的話我把以前寫的秒錶程式發給你,你參考一下。

  • 2 # 使用者1042898638258

    給你講下思路吧,,對於數碼管顯示,用動態掃描法,對應的二極體亮法對應著一個數字,這個網上隨便搜就有了!!在程式中你可以用CASE WHEN語句來實現,而對於外部輸入的三個控制訊號,也就相當於是一個計數器的控制訊號,,你可以這樣

    entity shuma is

    port(clk,reset:in std_logic;

    start,cs:in std_logic;

    disp1,disp2:out std_logic_vector(7 downto 0);

    led:out std_logic);

    end entity;

    architecture art of shuma is

    signal count1:integer range 0 to ......;自已算

    signal count2,count3:integer range 0 to 99;

    signal clk_div,led_flag:std_logic;

    begin

    process(clk,reset,count1)----首先進行時鐘分頻,分成1hz的;

    begin

    if reset="1" then

    count1

    elsif clk"event and clk="1" then

    if count1=?? then ---這個倍數根據你的FPGA板的時鐘頻率和1hz進行計算

    count1

    else count

    end if;

    end if;

    end process;

    process(clk_div,reset,count2) ---數碼管計數程序;

    begin

    if reset="1" then

    count2

    elsif clk_div"event and clk_div="1" then

    if count2=99 then

    led_flag

    count2

    else count2

    end if;

    end if;

    end process;

    process(count)--將計數的數值顯示在數碼管上,,用動態掃描法,對應關係

    begin 自已查;

    case count is

    when 0=>disp1,disp2...

    end case;

    同樣的LED和測試程式 就是一個計數器,和上面類似,,,我要去上課啦,,希望以上那些可以幫助你!!!

  • 中秋節和大豐收的關聯?
  • 給你兩個願望:一個是長生不老,一個是十億美金,你選擇哪個?