Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 1 decade ago

VHDL dip switch 呈現七段顯示器

利用Dip0~5 輸入BCD碼 然後七段顯示顯示結果

EX:11111 =>31

00001 =>1

00010 = 2

.

.

11110 = 30

11111 = 31

這段程式碼要怎樣改加入呢

SEGMENT <= "00000" when "0000", --0

還要再用if DIP(4 downto 0) = "00000" then SEGMENT <= "00000" when "0000", --0

是這樣嗎

如果是的話 以下31種都是用這種方法嗎

那要加在哪邊呢 謝謝 對VHDL還是不太熟呀!

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    WITH DIP SELECT

    SEGMENT <="0000000" WHEN "00000"

    "SEGMENT <="xxxxxxx" WHEN "xxxx""總共要十行(0~9)

    照理說你需要兩個七段顯示器

    所以這樣等於查表功能,不需要三十一行

    然後你需要除法器將FPGA版除頻

    因為兩顆七段顯示器要輪流閃爍

    我忘記人類的視覺暫留是幾秒了,好像0.02吧

    反正到時候由除頻器調整就是了

    如果你不是要用兩個七段顯示器,只是需要數字的輸出

    那試試看吧:

    if BCD(0) = '1' then

    SEGMENT <= SEGMENT + '1'

    elsif BCD(1) = '1' then

    SEGMENT <= SEGMENT + '2'

    ...

    ...

    elsif BCD(4) = '1' then

    SEGMENT <= SEGMENT + '16'

    不知道你看不看的懂

    意思是檢查BCD每個位元是一或零

    例如第五個位元為"1",那表示起碼有"16"的成分被加在裡面

    晚點有時間的話我再自己寫出來試試看= =

    Source(s): 自己
Still have questions? Get your answers by asking now.