<noframes id="bzvpl">

<address id="bzvpl"><menuitem id="bzvpl"><meter id="bzvpl"></meter></menuitem></address>

      <noframes id="bzvpl"><address id="bzvpl"><listing id="bzvpl"></listing></address>

      1. 歡迎光臨富優迪科技!
      2. 設為首頁 設為首頁 收藏 收藏本站
      3. 首頁
      4. 業界聚焦
      5. 互聯網絡
      6. 熱點專題
      7. 科技前沿
      8. 風云人物
      9. 媒體動態
      10. 產業經濟
      11. 移動通信
      12. 數碼電子
      13. 科技創新網_互聯網科技資訊門戶|電子|通信|數碼|信息安全
        科技創新網 > 數碼電子 >
      14. 芯創電子手把手教你學習FPGA—數碼管篇

      15. 發布時間:2020-10-17 04:59
      16. 4.09K
      17.   2013 芯創電子 FPGA 開發板配套教程 手把手教你學習 FPGA—數碼管篇 或許您可能聽說過 FPGA, 但不是很了解; 或許您已經知道 FPGA 的 存在,但沒有掌握這門技術;或許您打算在不久的將來對 FPGA 進 行初步嘗試;不管怎樣,只要您對 FPGA 感興趣,那么就讓我們一 起踏出通往 FPGA 世界的第一步,芯創電子手把手教你學習 FPGA。 芯創電子工作室 51FPGA 2013/3/3 芯創電子 FPGA 開發板配套教程 2013 目錄 1 實驗簡介............................................................................................................................. 3 2.背景知識............................................................................................................................. 3 2.1.數碼管基礎知識 ...................................................................................................... 3 2.2.數碼管簡易測試方法 .............................................................................................. 6 2.3.DIY 開發板數碼管電路圖 ....................................................................................... 8 3.實驗環境............................................................................................................................. 8 4.實驗一(數碼管靜態顯示) ............................................................................................. 8 4.1.實驗目的.................................................................................................................. 8 4.2.試驗任務.................................................................................................................. 9 4.3.原理分析.................................................................................................................. 9 4.4.代碼實現.................................................................................................................. 9 4.5.實驗步驟................................................................................................................ 10 4.6.實驗現象................................................................................................................ 11 4.7.日積月累................................................................................................................ 11 4.8.總結和作業............................................................................................................ 13 5.實驗二(數碼管動態顯示) ........................................................................................... 13 5.1.實驗目的................................................................................................................ 13 5.2.試驗任務................................................................................................................ 13 5.3.原理分析................................................................................................................ 13 5.4.代碼實現................................................................................................................ 14 5.5.實驗步驟................................................................................................................ 16 5.6.實驗現象................................................................................................................ 17 5.7.日積月累................................................................................................................ 17 5.8.總結和作業............................................................................................................ 17 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 1 實驗簡介 本教程以實驗為主,力求以詳細的步驟和講解讓大家以最快的方式了解 FPGA 的開發的基本流程以及 Quartus II 軟件的使用方法。數碼管篇的實驗 相對簡單,為基礎實驗,希望通過對數碼管篇的學習,大家能夠掌握以下 知識要點: ? 熟悉和掌握 FPGA 開發的基本流程和 Quartus II 軟件的基本使用方法。 ? 掌握數碼管的基本原理。 ? 掌握數碼管靜態顯示的基本原理和實現方法。 ? 掌握數碼管動態顯示的基本原理和實現方法。 2.背景知識 2.1.數碼管基礎知識 ? 數碼管分類: 數碼管是一種半導體發光器件,也稱半導體數碼管,它是將若干發光二 極管按一定圖形排列并封裝在一起的最常用的數碼顯示器件之一。LED 數碼管具有發光顯示清晰、響應速度快、耗電省、體積小、壽命長、耐 沖擊、易與各種驅動電路連接等優點,在各種數顯儀器儀表、數字控制 設備中得到廣泛應用。 數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼 管多一個發光二極管單元 (多一個小數點顯示) 按能顯示多少個 ; “8” 可分為 1 位、2 位、3 位、4 位等等數碼管,如下圖 1 所示; 按發光 二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管 是指將所有發光二極管的陽極接到一起形成公共陽極(COM)的數碼管, 共陽數碼管在應用時應將公共極 COM 接到+5V,當某一字段發光二極 管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平 時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到 一起形成公共陰極(COM)的數碼管,共陰數碼管在應用時應將公共極 COM 接到地線 GND 上,當某一字段發光二極管的陽極為高電平時, 相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。 圖 1 LED 數碼管實物外形圖 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 ? 數碼管結構及特點: 目前,常用的小型 LED 數碼管多為“8”字形數碼管,它內部由 8 個發光二 極管組成,其中 7 個發光二極管(a~g)作為 7 段筆畫組成“8”字結構 (故也稱 7 段 LED 數碼管) ,剩下的 1 個發光二極管(h 或 dp)組成小 數點, 如圖 2 (a) 所示。 各發光二極管按照共陰極或共陽極的方法連接, 即把所有發光二極管的負極(陰極)或正極(陽極)連接在一起,作為 公共引腳; 而每個發光二極管對應的正極或者負極分別作為獨立引腳 (稱 “筆段電極”,其引腳名稱分別與圖 2(a)中的發光二極管相對應,即 ) a、b、c、d、e、f、g 腳及 h 腳(小數點) ,如圖 2(b)所示。若按規定 使某些筆段上的發光二極管發光, 就能夠顯示出圖 2 (c) 所示的“0~9”10 個數字和“A~F”6 個字母,還能夠顯示小數點,可用于 2 進制、10 進制 以及 16 進制數字的顯示,使用非常廣泛。 圖 2(a)結構圖 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 圖 2(b)電路圖 圖 2(c)顯示符 常用小型 LED 數碼管是以印制電路板為基板焊固發光二極管, 并裝入帶有顯示窗 口的塑料外殼, 最后在底部引腳面用環氧樹脂封裝而成。 由于 LED 數碼管的筆段 是由發光二極管組成的, 所以其特性與發光二極管相同。 數碼管的主要特點: LED 能在低電壓、小電流條件下驅動發光,并能與 CMOS、TTL 電路兼容;它不僅發 光響應時間極短(<0.1μs) 、高頻特性好、單色性好、亮度高,而且體積小、重 量輕、抗沖擊性能好、使用壽命長(一般在 10 萬小時以上,最高可達 100 萬小 時) 、成本低。 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 2.2.數碼管簡易測試方法 一個質量保證的 LED 數碼管,其外觀應該是做工精細、發光顏色均勻、 無局部變色及無漏光等。對于不清楚性能好壞、產品型號及管腳排列的數碼 管,可采用下面介紹的簡便方法進行檢測。 ? 干電池檢測法。 如圖 3 (a) 所示, 取兩節普通 1.5V 干電池串聯 (3V) 起來, 并串聯一個 100Ω、 1/8W 的限流電阻器,以防止過電流燒壞被測 LED 數碼管。將 3V 干電池的負 極引線(兩根引線均可接上小號鱷魚夾)接在被測數碼管的公共陰極上,正 極引線依次移動接觸各筆段電極(a~h 腳) 。當正極引線接觸到某一筆段電 極時, 對應筆段就發光顯示。 用這種方法可以快速測出數碼管是否有斷筆 (某 一筆段不能顯示)或連筆(某些筆段連在一起) ,并且可相對比較出不同的 筆段發光強弱是否一致。若檢測共陽極數碼管,只需將電池的正、負極引線 對調一下,方法同上。 如果將圖 3(a)中被測數碼管的各筆段電極(a~h 腳)全部短接起來,再 接通測試用干電池,則可使被測數碼管實現全筆段發光。對于質量保證的數 碼管,其發光顏色應該均勻,并且無筆段殘缺及局部變色等。 如果不清楚被測數碼管的結構類型(是共陽極還是共陰極)和引腳排序,可 從被測數碼管的左邊第 1 腳開始,逆時針方向依次逐腳測試各引腳,使各筆 段分別發光,即可測繪出該數碼管的引腳排列和內部接線。測試時注意,只 要某一筆段發光,就說明被測的兩個引腳中有一個是公共腳,假定某一腳是 公共腳不動,變動另一測試腳,如果另一個筆段發光,說明假定正確。這樣 根據公共腳所接電源的極性,可判斷出被測數碼管是共陽極還是共陰極。顯 然,公共腳如果接電池正極,則被測數碼管為共陽極;公共腳如果接電池負 極,則被測數碼管應為共陰極。接下來測試剩余各引腳,即可很快確定出所 對應的筆段來。 圖 3(a)干電池檢測法 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 ? 萬用表檢測法。 這里以 MF50 型指針式萬用表為例, 說明具體檢測方法: 首先, 按照圖 3 (b) 所示,將指針式萬用表撥至“R×10k”電阻擋。由于 LED 數碼管內部的發光二 極管正向導通電壓一般≥1.8V,所以萬用表的電阻檔應置于內部電池電壓是 15V(或 9V)的“R×10k”擋,而不應置于內部電池電壓是 1.5V 的 “R×100”或 “R×1k”擋, 否則無法正常測量發光二極管的正、 反向電阻。 然后, 進行檢測。 在測圖 3(b)所示的共陰極數碼管時,萬用表紅表筆(注意:紅表筆接表內 電池負極、黑表筆接表內電池正極)應接數碼管的“-”公共端,黑表筆則分別 去接各筆段電極(a~h 腳) ;對于共陽極的數碼管,黑表筆應接數碼管的“+” 公共端,紅表筆則分別去接 a~h 腳。正常情況下,萬用表的指針應該偏轉 (一般示數在 100kΩ 以內) ,說明對應筆段的發光二極管導通,同時對應筆 段會發光。 若測到某個管腳時, 萬用表指針不偏轉, 所對應的筆段也不發光, 則說明被測筆段的發光二極管已經開路損壞。與干電池檢測法一樣,采用萬 用表檢測法也可對不清楚結構類型和引腳排序的數碼管進行快速檢測。 2013 圖 3(b)萬用表檢測法 以上所述為 1 位 LED 數碼管的檢測方法,至于多位 LED 數碼管的檢測,方法 大同小異,不再贅述。 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 2.3.DIY 開發板數碼管電路圖 通過原理圖可以看出, 與FPGA引腳相連的位選DIG0-DIG7, 如果分別輸出低電平, 則相應的三極管導通,與數碼管的位選端口將呈現高電平,而此時只要數碼管的 A-G設置低電平,則相應位的相應段被點亮。 3.實驗環境 ? 硬件實驗環境為 EEPW FPGA 開發板 DIY 活動套件 ? 軟件實驗環境為 Quartus II9.0 開發軟件 4.實驗一(數碼管靜態顯示) 4.1.實驗目的 ? 掌握數碼管靜態顯示的基本原理和實現方法。 ? 掌握采用 Verilog HDL 語言編程實現 7 段數碼管顯示譯碼器的方法。 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 4.2.試驗任務 本試驗的任務是實現開發板上的數碼管靜態循環顯示 0~F。 4.3.原理分析 數碼管 LED 顯示是工程項目中使用較廣的一種輸出顯示器。 常見的數碼 管有共陰和共陽兩種。DIY 開發板上采用的是共陽極數碼管,共陽數碼 管就是 8 個發光二極管的陽極連接在一起作為公共端。公共端常稱為位 碼,而將其他八位稱為段碼。本實驗先將板載 50M 時鐘源進行分頻,輸 出 1HZ 頻率的脈沖信號, 然后將分頻后的頻率作為四位計數器的使能信 號,使其計數以 1S 間隔循環輸出 0~F,最后經 Verilog HDL 編寫的譯碼 模塊譯碼后顯示于數碼管上。 4.4.代碼實現 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 4.5.實驗步驟 (1)建立新工程項目: 打開 Quartus II 軟件,進入集成開發環境,點擊 File→New project wizard 建立一個工程項目。 (2)建立文本編輯文件: 點擊 File→New..在該項目下新建 Verilog HDL 源程序文件, 輸入試驗程 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 按鈕啟動編譯,若在編譯 序中的源程序代碼保存后選擇工具欄中的 中發現錯誤,則找出并更正錯誤,直到編譯成功為止。 (3)選擇器件型號及引腳的其他設置: 選擇所用的 FPGA 器件----EP2C5Q208C8, 以及進行一些配置。 選擇配置 器件 EPCS4,設置不需要使用的 IO 功能為 As inputs,tri-stated。點擊兩 次 ok,回到主界面。 (4)配置 FPGA 引腳: 在 Quartus II 軟件主頁面下,選擇 Assignments→Pins 或選擇工具欄上 按鈕,配置相關引腳。 (5)編譯工程項目: 在 Quartus II 主頁面下,選擇 Processing→Start Compilation 或點擊工具 欄上的 OK 即可。 (6)下載設計程序.sof 文件到目標 FPGA,下載采用 JTAG 方式(由于配置芯片 擦寫次數有限,實驗均采用 JTAG 下載方式) 。 按鈕啟動編譯,直到出現“Full Compilation Report”對線.實驗現象 DIY 開發板上的 8 個數碼管循環顯示 0~F,由于數碼管靜態顯示占用較 多的 IO 口,且功耗較大,因此在大多數場合通常不采用靜態顯示,而采 用動態掃描的方法來控制數碼管顯示,即數碼管動態顯示。下次試驗將 介紹實現數碼管動態顯示的方法。 4.7.日積月累 阻塞和非阻塞語句作為 verilog HDL 語言的最大難點之一,一直困擾著 FPGA 設計者,即使是一個頗富經驗的設計工程師,也很容易在這個點上 犯下一些不必要的錯誤。阻塞和非阻塞可以說是血脈相連,但是又有著 本質的差別。理解不清或運用不當,都往往會導致設計工程達不到預期 的效果,而其中的錯誤又很隱晦。下面我給大家談談阻塞和非阻塞語句 的本質區別和在 FPGA 設計中的不同運用。 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 ? 阻塞語句 顧名思義, 即本條語句具有影響下一條語句的作用, 在同一個進程 always 中, 一條阻塞賦值語句的執行是立刻影響著下條語句的執行情況和結果。 如果該條語句沒有執行完, 那么下條語句不可能進入執行狀態的, 因此, 從字面層上理解,該條語句阻塞了下面語句的執行。阻塞語句最能體現 verilog HDL 和 C 語言之間的血緣關系,比如,在時鐘沿觸發的 always 進 程里, 若先執行 b=c, 再執行 a=b, 那么本質上, 在一個時鐘沿觸發里面, a=c 成立, 即是說, 不要 b 變量, 直接在進程里賦值 a=c, 結果是一樣的。 這和 c 語言中 b=c,a=b 性質相同。 ? 非阻塞語句 非阻塞語句應該來說,更能體現硬件電路的特點。這正是非阻塞語句廣 泛應用于時序邏輯電路的原因。接上面的例子,如果在一個時鐘沿觸發 的 always 進程里面,b=c,a=b 那么就不可能直接在進程里面賦值 a=c. 因為 c 的值要經過兩個時鐘延遲才傳到 a 里面, c 若從 0 變為 1, 即 那么 要經過兩個 clk 上升沿才傳到 a,a 的值才從 0 變為 1。兩次賦值正是體 現了兩個時鐘延遲的特點。這種特點即是非阻塞語句非阻塞的的原因導 致的,就是說,a=b,不會因為 b=c 沒有執行完畢而不執行,只要時鐘 觸發進程,那么 a=b,b=c 同時執行。所以,如果 c 為 1,b 為 0,a 為 1 的話,那么在在非阻塞語句的進程里面,一個時鐘沿到來,由于他們 之間是同時執行的,所以把 c 的 1 賦給了 b,把 b 的 0 賦給了 a,但是在 阻塞語句里面,c 的 1 先給了 b,然后 b 把新賦值的 1 又給了 a,那么 a 在一個時鐘之后即變成了 1。(在一次觸發進程里,無論是阻塞和非阻塞 語句,每條語句只能執行一次)。 所以從上面的介紹里面,可以看出,阻塞語句是順序執行的,而非 阻塞語句是同時執行的,那么,如何在設計里面運用好阻塞語句和非阻 塞語句呢,總體上來講,遵循大體原則:阻塞語句運用在組合邏輯電路 設計里面,非阻塞語句運用在時序邏輯電路設計里面。但是一般來講, 一個設計往往包含著組合邏輯和時序邏輯。 推薦可綜合編碼風格的 verilog HDL 阻塞賦值和非阻塞賦值的編程 的八個原則: ? 當為時序邏輯建模,使用“非阻塞賦值”。 ? 當為鎖存器(latch)建模,使用“非阻塞賦值”。 ? 當用 always 塊為組合邏輯建模,使用“阻塞賦值” ? 當在同一個 always 塊里面既為組合邏輯又為時序邏輯建模, “非 使用 阻塞賦值”。 ? 不要在同一個 always 塊里面混合使用 “阻塞賦值”“非阻塞賦值” 和 。 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 ? 不要在兩個或兩個以上 always 塊里面對同一個變量進行賦值。 ? 使用$strobe 以顯示已被“非阻塞賦值”的值。 ? 不要使用#0 延遲的賦值。 2013 4.8.總結和作業 總結:通過本實驗我們應掌握數碼管靜態顯示的基本原理及實現方法。 課后作業:利用撥碼開關控制數碼管進行八進制數字顯示。即撥動 SW1,數碼管 顯示 1,以此類推,撥動 SW8,數碼管顯示 8。 5.實驗二(數碼管動態顯示) 5.1.實驗目的 ? 掌握數碼管動態顯示的基本原理和實現方法。 ? 掌握采用 Verilog HDL 語言編程實現 7 段數碼管顯示譯碼器以及數碼管 動態掃描顯示的方法。 5.2.試驗任務 實現 DIY 開發板上 8 個數碼管動態顯示 0~7。 5.3.原理分析 由于LED靜態顯示需要占用較多的I/O口,且功耗較大,因此在大多數場合通 常不采用靜態顯示,而采用動態掃描的方法來控制LED數碼管的顯示。動態 顯示的特點是將所有位數碼管的段選線并聯在一起, 由位選線控制是哪一位 數碼管有效。點亮數碼管采用動態掃描顯示。所謂動態掃描顯示即輪流向各 位數碼管送出字形碼和相應的位選,只要掃描顯示速度夠快,利用發光管的 余輝和人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。動態 顯示的亮度比靜態顯示要差一些, 所以在選擇限流電阻時應略小于靜態顯示 電路中的。 動態掃描顯示時刷新頻率最好大于50HZ,即每顯示一輪的時間不 超過20ms,每個數碼管顯示時間不能太長也不能太短,時間太長會影響刷新 率,導致總體顯示呈現閃爍的現象,時間太短發光二極管的電流導通時間也 就短,會影響總體的顯示亮度。一般控制在1ms左右最佳。 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 5.4.代碼實現 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 2013 5.5.實驗步驟 (1)建立新工程項目: 打開 Quartus II 軟件,進入集成開發環境,點擊 File→New project wizard 建立一個工程項目。 (2)建立文本編輯文件: 點擊 File→New..在該項目下新建 Verilog HDL 源程序文件, 輸入試驗程 序中的源程序代碼保存后選擇工具欄中的 按鈕啟動編譯,若在編譯 中發現錯誤,則找出并更正錯誤,直到編譯成功為止。 (3)選擇器件型號及引腳的其他設置: 選擇所用的 FPGA 器件----EP2C5Q208C8, 以及進行一些配置。 選擇配置 器件 EPCS4,設置不需要使用的 IO 功能為 As inputs,tri-stated。點擊兩 次 ok,回到主界面。 (4)配置 FPGA 引腳: 淘 寶 店 鋪 : 芯創電子 FPGA 開發板配套教程 在 Quartus II 軟件主頁面下,選擇 Assignments→Pins 或選擇工具欄上 按鈕,配置相關引腳。 (5)編譯工程項目: 在 Quartus II 主頁面下,選擇 Processing→Start Compilation 或點擊工具 欄上的 OK 即可。 (6)下載設計程序.sof 文件到目標 FPGA,下載采用 JTAG 方式(由于配置芯片 擦寫次數有限,實驗均采用 JTAG 下載方式) 。 按鈕啟動編譯,直到出現“Full Compilation Report”對線.實驗現象 DIY 開發板 8 個數碼管動態顯示 0~7。 5.7.日積月累 建立硬件意識,要明白的是軟件設計和邏輯設計的不同,并理解什么是 硬件意識。軟件代碼的執行是一個順序的過程,編繹以后的機器碼放在 存儲器里,等著 CPU 一條一條的取指并執行;因此軟件設計中經常會帶 有順序處理的思維。而邏輯設計則不同,我們設計的是數字電路,它是 由很多很多的與非門及 D 觸發器構成的,上電之后所有與非門和 D 觸發 器都同時工作, 不會因為 A 觸發器的代碼描述在 B 觸發器之前 A 觸發器 就是先工作,事實上,RTL 級代碼的代碼先后順序在綜合成網表文件后 這種順序就消失了,取代的是基本邏輯電路之間的互聯關系描述;因此 邏輯設計需要的是一種并發的思維,我們也需要用并發的思維去考慮電 路的設計。當然,我們設計的電路功能一般都有先后順序的關系,如果 這種順序不能通過代碼的先后順序來實現,那么要怎么完成這一功能呢? 在邏輯設計中,我們所說的先后順序都是基于時間軸來實現:它的承載 體就是時序邏輯,也就是那些觸發器。 5.8.總結和作業 ? 總結: 回想一下我們通過這個實驗學會了什么?采用 Verilog HDL 語 言編程實現 7 段數碼管顯示譯碼器以及數碼管動態掃描顯示的方法 你應該學會了吧! ? 課后作業:設計一個模為 60 的計數器,計數結果動態顯示在兩個數 碼管上。 淘 寶 店 鋪 :

        上一篇:編程在4個七段LED數碼管上顯示1234
        下一篇:數碼管百科_電子發燒友網
      18. 圖說天下
        首頁 | 免責聲明 | 業界聚焦 | 互聯網絡 | 熱點專題 | 科技前沿 | 風云人物 | 媒體動態 | 產業經濟 | 移動通信 | 數碼電子 |
      19. Copyright©2008-2018 富優迪科技(www.zsj-hotel.com)版權所有 All rights reserved
        本站部分文章、圖片源自網絡或網友自主發布,不代表本站觀點,如有版權問題請及時聯系我們刪除。
      20. 在线观看片免费人成视频 - 视频 - 在线观看 - 影视资讯 - 心月网