八位七段數(shù)碼管動態(tài)顯示電路設(shè)計說明_第1頁
八位七段數(shù)碼管動態(tài)顯示電路設(shè)計說明_第2頁
八位七段數(shù)碼管動態(tài)顯示電路設(shè)計說明_第3頁
八位七段數(shù)碼管動態(tài)顯示電路設(shè)計說明_第4頁
八位七段數(shù)碼管動態(tài)顯示電路設(shè)計說明_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 . 八位七段數(shù)碼管動態(tài)顯示電路的設(shè)計一 七段顯示器介紹七段顯示器,在許多產(chǎn)品或場合上經(jīng)常可見。其部結(jié)構(gòu)是由八個發(fā)光二極管所組成,為七個筆畫與一個小數(shù)點,依順時針方向為A、B、C、D、E、F、G與DP等八組發(fā)光二極管之排列,可用以顯示09數(shù)字與英文數(shù)A、b、C、d、E、F。目前常用的七段顯示器通常附有小數(shù)點,如此使其得以顯示阿拉伯?dāng)?shù)之小數(shù)點部份。七段顯示器的腳位和線路圖如下圖4.1所示( 其第一支接腳位于俯視圖之左上角 )。圖4.1、七段顯示器俯視圖由于發(fā)光二極管只有在順向偏壓的時候才會發(fā)光。因此,七段顯示器依其結(jié)構(gòu)不同的應(yīng)用需求,區(qū)分為低電位動作與高電位動作的兩種型態(tài)的組件,另一種常見的說法

2、則是共陽極( 低電位動作 )與共陰極( 高電位動作 )七段顯示器,如下圖4.2所示。 ( 共陽極 ) ( 共陰極 )圖4.2、共陽極(低電位動作)與共陰極(高電位動作)要如何使七段顯示器發(fā)光呢?對于共陰極規(guī)格的七段顯示器來說,必須使用“ Sink Current ”方式,亦即是共同接腳COM為VCC,并由Cyclone II FPGA使接腳成為高電位,進而使外部電源將流經(jīng)七段顯示器,再流入Cyclone II FPGA的一種方式本實驗平臺之七段顯示器模塊接線圖如下圖4.5所示。此平臺配置了八組共陽極之七段顯示器,亦即是每一組七段顯示器之COM接腳,均接連至VCC電源。而每一段發(fā)光二極管,其腳位

3、亦均與Cyclone II FPGA接連。四位一體的七段數(shù)碼管在單個靜態(tài)數(shù)碼管的基礎(chǔ)上加入了用于選擇哪一位數(shù)碼管的位選信號端口。八個數(shù)碼管的a、b、c、d、e、f、g、h、dp都連在了一起,8個數(shù)碼管分別由各自的位選信號來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。圖4.5、七段顯示器模塊接線圖七段顯示器之常見應(yīng)用如下Ø 可作為與數(shù)值顯示相關(guān)之設(shè)計。n 電子時鐘應(yīng)用顯示n 倒數(shù)定時器n 秒表n 計數(shù)器、定時器n 算數(shù)運算之?dāng)?shù)值顯示器二 七段顯示器顯示原理七段顯示器可用來顯示單一的十進制或十六進制的數(shù)字,它是由八個發(fā)光二極管所構(gòu)成的( 每一個二極管依位置不同而賦予不同的名稱,請參見圖4.1

4、 )。我們可以簡單的說,要產(chǎn)生數(shù)字,便是點亮特定數(shù)據(jù)的發(fā)光二極管。例如要產(chǎn)生數(shù)字0,須只點亮A、B、C、D、E、F等節(jié)段的發(fā)光二極管;要產(chǎn)生數(shù)字5,則須點亮A、C、D、F、G等節(jié)段發(fā)光二極管,以此類推,參見圖4.6。因此,以共陽極七段顯示器而言,要產(chǎn)生數(shù)字0,必須控制Cyclone II FPGA芯片接連至A、B、C、D、E、F 等接腳呈現(xiàn)“低電位”,使電路形成通路狀態(tài)。表4.1則為共陽極七段顯示器顯示之?dāng)?shù)字編碼。圖4.6、七段顯示器顯示阿拉伯?dāng)?shù)字表4.1、共陽極七段顯示器顯示數(shù)字編碼資料DPGFEDCBA16進制011000000C0111111001F9210100100A43101100

5、00B0410011001995100100109261000001082711111000F881000000080本實驗要求完成的任務(wù)是在時鐘信號的作用下,通過輸入的鍵值在數(shù)碼管上顯示相應(yīng)的鍵值。在實驗中時,數(shù)字時鐘選擇1KHZ作為掃描時鐘,用四個撥動開關(guān)做為輸入,當(dāng)四個撥動開關(guān)置為一個二進制數(shù)時,在數(shù)碼管上顯示其十六進制的值。實驗箱中的撥動開關(guān)與FPGA的接口電路,以與撥動開關(guān)FPGA的管腳連接在實驗一中都做了詳細說明,這里不在贅述。數(shù)碼管顯示模塊的電路原理如圖4-2所示, 圖4-2 數(shù)字時鐘信號模塊電路原理三 實驗步驟(本實驗用VHDL文本語言實現(xiàn)八位七段數(shù)碼管動態(tài)顯示,當(dāng)然也可用Qu

6、artus的圖形輸入法實現(xiàn)八位七段數(shù)碼管動態(tài)顯示)1. 下面我們建立一個八位七段數(shù)碼管動態(tài)顯示的VHDL工程1)選擇 開始 > 程序 > Altera > QuartusII5.1,運行QUARTUSII軟件?;蛘唠p擊桌面上的QUARTUSII的圖標(biāo)運行QUARTUSII軟件,出現(xiàn)如圖1-3所示。圖1-3 QUARTUSII軟件運行界面2)選擇軟件中的菜單File > New Project Wizard,新建一個工程。如圖1-4所示。圖1-4 新建工程對話框3)點擊圖1-4中的NEXT進入工作目錄,工程名的設(shè)定對話框如圖1-5所示。第一個輸入框為工程目錄輸入框,用戶可

7、以輸入如e:/eda等工作路徑來設(shè)定工程的目錄,設(shè)定好后,所有的生成文件將放入這個工作目錄。第二個輸入框為工程名稱輸入框,第三個輸入框為頂層實體名稱輸入框。用戶可以設(shè)定如EXP1,一般情況下工程名稱與實體名稱一樣。使用者也可以根據(jù)自已的實際情況來設(shè)定工程名和頂層文件名。注:本處的頂層文件名必須和程序的實體名一致,否則編譯會出錯。圖1-5 指定工程名稱與工作目錄4)點擊NEXT,進入下一個設(shè)定對話框,按默認選項直接點擊NEXT進行器件選擇對話框。如圖1-6所示。這里我們以選用CycloneII系列芯片EP2C35F672C8為例進行介紹。用戶可以根據(jù)使用的不同芯片來進行設(shè)定。圖1-6 器件選擇界

8、面首先在對話框的左上方的Family下拉菜單中選取CycloneII,在中間右邊的Speed grade下拉菜單中選取8,在左下方的Available devices框中選取EP2C35F672C8,點擊NEXT完成器件的選取,進入EDA TOOL設(shè)定界面如圖1-7所示。圖1-7 EDA TOOL對話框5)按默認選項,點擊Next出現(xiàn)新建工程以前所有的設(shè)定信息,如圖1-8所示,點擊Finish完成新建工程的建立。圖1-8 新建工程信息2、建立VHDL設(shè)計文件1)在創(chuàng)建好設(shè)計工程后,選擇File > NEW菜單,出現(xiàn)圖1-9所示的新建設(shè)計文件類型選擇窗口。這里我們以建立VHDL設(shè)計文件為例

9、進行說明。圖1-9 新建設(shè)計文件選擇窗口2)在New對話框(圖1-9)中選擇Device Design Files頁下的VHDL File,點擊OK按鈕,打開圖形編輯器對話框,如圖1-10所示。圖中標(biāo)明了常用的每個按鈕的功能3) 在文本編輯器中輸入如下VHDL程序:-下面是引用庫 -library ieee; -庫函數(shù)use ieee.std_logic_1164.all;-定義了std_logic數(shù)據(jù)類型與相應(yīng)運算use ieee.std_logic_arith.all;-定義了signed和unsigned數(shù)據(jù)類型、相應(yīng)運算和相關(guān)類型轉(zhuǎn)換函數(shù)use ieee.std_logic_unsig

10、ned.all;-定義了一些函數(shù),可以使std_logic_vector類 -型被當(dāng)作符號數(shù)或無符號數(shù)一樣進行運算-下面是構(gòu)造實體entity exp4 is -exp4為實體名 port( clk : in std_logic; -定義動態(tài)掃描時鐘信號 key : in std_logic_vector(3 downto 0); -定義四位輸入信號 ledag : out std_logic_vector(6 downto 0); -定義七位輸出信號 del : out std_logic_vector(2 downto 0) -定義八位數(shù)碼管位置顯示信號 ); end exp4; -結(jié)束實

11、體-architecture whbkrc of exp4 is -whbkrc為結(jié)構(gòu)體名 begin -以begin為標(biāo)志開始結(jié)構(gòu)體的描述 process(clk) -進程,clk變化時啟動進程 variable dount : std_logic_vector(2 downto 0); -變量,計數(shù) begin if clk'event and clk='1' then-檢測時鐘上升沿 dount:=dount+1;-計數(shù)器dount累加 end if; del<=dount; -片選信號 end process;-結(jié)束進程 process(key) -進程,

12、key變化時啟動進程 begin case key is when "0000" => ledag <="0111111"-七段數(shù)碼管顯示 0 when "0001" => ledag <="0000110"-1 when "0010" => ledag <="1011011"-2 when "0011" => ledag <="1001111"-3 when "0100&quo

13、t; => ledag <="1100110"-4 when "0101" => ledag <="1101101"-5 when "0110" => ledag <="1111101"-6 when "0111" => ledag <="0000111"-7 when "1000" => ledag <="1111111"-8 when "100

14、1" => ledag <="1101111"-9 when "1010" => ledag <="1110111"- R when "1011" => ledag <="1111100"-b when "1100" => ledag <="0111001"-C when "1101" => ledag <="1011110"-d when &qu

15、ot;1110" => ledag <="1111001"-E when "1111" => ledag <="1110001"-F when others => null; end case; end process; -結(jié)束進程 end whbkrc; -結(jié)束結(jié)構(gòu)體關(guān)于VHDL,我們以上面八位七段數(shù)碼管顯示程序為例來解釋VHDL的語法構(gòu)成,以使大家對VHDL有個整體的把握。一個VHDL程序有三部分構(gòu)成,其為 : 1.庫和包 library(設(shè)計資源);2. 實體 entity(外部端口)3.

16、 結(jié)構(gòu)體 architecture(部結(jié)構(gòu))庫和包 library(設(shè)計資源)的介紹1.1 use ieee.std_logic_1164.all;-定義了std_logic數(shù)據(jù)類型與相應(yīng)運算1.2 use ieee.std_logic_arith.all;-定義了signed和unsigned數(shù)據(jù)類型、相應(yīng)運算-和相關(guān)類型轉(zhuǎn)換函數(shù)1.3 use ieee.std_logic_unsigned.all;-定義了一些函數(shù),可以使std_logic_vector-類型被當(dāng)作符號數(shù)或無符號數(shù)一樣進行運算本程序中用到3個庫函數(shù)包:如下 : 補充:當(dāng)使用庫時,需要說明使用的庫名稱,同時需要說明庫中包集合

17、的名稱與圍;每個實體都應(yīng)獨立進行庫的說明;庫的說明應(yīng)該在實體之前;經(jīng)過說明后,實體和結(jié)構(gòu)體就可以自動調(diào)用庫中的資源; 實體 entity(外部端口)entity exp4 is -exp4為實體名 port( clk : in std_logic; -定義動態(tài)掃描時鐘信號 key : in std_logic_vector(3 downto 0); -定義四位輸入信號 ledag : out std_logic_vector(6 downto 0); -定義七位輸出信號 del : out std_logic_vector(2 downto 0) -定義八位數(shù)碼管位置顯示信 ); end ex

18、p4; -結(jié)束實體實體說明主要描述對象的外貌,即對象的輸入和輸出(I/O)的端口信息,它并不描述器件的具體功能。在電路原理圖上實體相當(dāng)于元件符號。CLKdel(20)Key(3.0)ledag(70) 圖4-9實體exp4中描述如上圖4-9輸入和輸出(I/O)的端口信息 結(jié)構(gòu)體 architecture(部結(jié)構(gòu))結(jié)構(gòu)體具體指明了該設(shè)計實體的行為,定義了該設(shè)計實體的功能,規(guī)定了該設(shè)計實體的數(shù)據(jù)流程,指派了實體中部元件的連接關(guān)系。architecture whbkrc of exp4 is -whbkrc為結(jié)構(gòu)體名 begin -以begin為標(biāo)志開始結(jié)構(gòu)體的描述 process(clk) -進程

19、,clk變化時啟動進程 variable dount : std_logic_vector(2 downto 0); -變量,計數(shù) begin if clk'event and clk='1' then-檢測時鐘上升沿 dount:=dount+1;-計數(shù)器dount累加 end if; del<=dount; -片選信號 end process;-結(jié)束進程 process(key) -進程,key變化時啟動進程 begin case key is when "0000" => ledag <="0111111"

20、-七段數(shù)碼管顯示 0 when "0001" => ledag <="0000110"-1 when "0010" => ledag <="1011011"-2 when "0011" => ledag <="1001111"-3 when "0100" => ledag <="1100110"-4 when "0101" => ledag <="

21、1101101"-5 when "0110" => ledag <="1111101"-6 when "0111" => ledag <="0000111"-7 when "1000" => ledag <="1111111"-8 when "1001" => ledag <="1101111"-9 when "1010" => ledag <=&

22、quot;1110111"- R when "1011" => ledag <="1111100"-b when "1100" => ledag <="0111001"-C when "1101" => ledag <="1011110"-d when "1110" => ledag <="1111001"-E when "1111" => ledag

23、<="1110001"-F when others => null; end case; end process; -結(jié)束進程 end whbkrc; -結(jié)束結(jié)構(gòu)體4)點擊保存按鈕,彈出如下選項,將其名命名為exp1,如下圖5)對設(shè)計文件進行編譯QUARTUSII編譯器窗口包含了對設(shè)計文件處理的全過程。在QUARTUSII軟件中選擇processin>start compilation菜單項,就會自動編譯,出現(xiàn)QUARTUSII的編譯器窗口,如下圖所示如果文件有錯,在軟件的下方則會提示錯誤的原因和位置,以便于使用者進行修改直到設(shè)計文件無錯。整個編譯完成,軟

24、件會提示編譯成功,3 管腳分配在前面選擇好一個合適的目標(biāo)器件(在這個實驗中選擇為EP2C35F672C8),完成設(shè)計的分析綜合過程,得到工程的數(shù)據(jù)文件以后,需要對設(shè)計中的輸入、輸出引腳指定到具體的器件管腳,指定管腳稱為管腳分配或管腳鎖定。這里介紹兩種方法進行管腳鎖定。1)點擊Assignments菜單下面的Assignment Editor,進入到引腳分配窗口。如圖1-15所示。圖1-15 進入引腳分配界面首先將要分配管腳的信號放置在To下方。雙擊To下方的New,如圖1-15所示則會出現(xiàn)如圖1-16所示界面。圖1-16 信號選擇對話框選擇Node Finder進入如圖1-17所示的Node

25、Finder對話框界面。按圖1-17中樣例設(shè)置參數(shù)。在Filter窗口選擇Pins:all,在Named窗口中輸入“*”,點擊List在Nodes Found窗口出現(xiàn)所有信號的名稱,點擊中間的 按鈕則Selected Nodes窗口下方出現(xiàn)被選擇的端口名稱。雙擊OK按鈕,完成設(shè)置。進入管腳分配窗口,如圖1-18所示。圖1-17 Node Finder對話框圖1-18 管腳分配在圖1-18中以鎖定端口key0的管腳為例,其它端口的管腳鎖定與其基本一致。選擇端口key0的對應(yīng)Assignment Name 待其變?yōu)樗{色,雙擊之,出現(xiàn)下拉菜單選取如圖1-18所示的Location(Accepts w

26、ildcards/groups)選項。選擇端口key0的對應(yīng)Value欄, 待其變?yōu)樗{色,依照表1-2所示的硬件與FPGA的管腳連接表(或附錄),輸入對應(yīng)的管腳名AC22,按回車鍵,軟件將自動將其改為PIN_ AC22,同時藍色選擇條會自動跳轉(zhuǎn)到Value欄的下一行,這表明軟件已經(jīng)將輸入端口key0分配到FPGA的AC22引腳上,如圖1-19所示。圖1-19 給key0端口進行管腳分配用同樣的方法,依照表4-2和所示的硬件與FPGA的管腳連接表(或附錄),對其它端口進行管腳分配,如圖1-20所示。圖1-20所有引腳全部分配結(jié)束后的軟件窗口端口名使用模塊信號對應(yīng)FPGA管腳說 明CLK數(shù)字信號源

27、N2時鐘為1KHZKEY0撥動開關(guān)K1AC22二進制數(shù)據(jù)輸入KEY1撥動開關(guān)K2AD23KEY2撥動開關(guān)K3AB8KEY3撥動開關(guān)K4AA9LEDAG0數(shù)碼管A段V17十六進制數(shù)據(jù)輸出顯示LEDAG1數(shù)碼管B段W16LEDAG2數(shù)碼管C段W15LEDAG3數(shù)碼管D段L10LEDAG4數(shù)碼管E段V14LEDAG5數(shù)碼管F段V13LEDAG6數(shù)碼管G段W12DEL0位選DEL0U12DEL1位選DEL1V20DEL2位選DEL2V21表4-2端口管腳分配表值得注意的是,當(dāng)管腳分配完之后一定要進行再進行一次全編譯,以使分配的管腳有效。4、對設(shè)計文件進行仿真1)創(chuàng)建一個仿真波形文件,選擇QUARTUS

28、II軟件File>New,進行新建文件對話框。如圖1-24所示。選取對話框的Other File標(biāo)簽頁,從中選取Vector Waveform File,點擊OK按鈕,則打開了一個空的波形編輯器窗口,如圖1-25所示。圖1-24 新建文件對話框 圖1-25 波形編輯器2)設(shè)置仿真結(jié)束時間,波形編輯器默認的仿真結(jié)束時間為1µS,根據(jù)仿真需要,可以自由設(shè)置仿真的結(jié)束時間。選擇QUARTUSII軟件的Edit>End Time命令,彈出線路束時間對話框,在Time框辦輸入仿真結(jié)束時間,點擊OK按鈕完成設(shè)置。3)加入輸入、輸出端口,在波形編輯器窗口左邊的端口名列表區(qū)點擊鼠標(biāo)右鍵,

29、在彈出的右鍵菜單中選擇Insert Node or Bus命令,在彈出的Insert Node or Bus對話框如圖1-26所示界面中點擊Node Finder按鈕。圖1-26 Insert Node or Bus對話框在出現(xiàn)的Node Finder界面中,如圖1-27所示,在Filter列表中選擇Pins:all,在Named窗口中輸入“*”,點擊List在Nodes Found窗口出現(xiàn)所有信號的名稱,點擊中間的按鈕則Selected Nodes窗口下方出現(xiàn)被選擇的端口名稱。雙擊OK按鈕,完成設(shè)置,回到圖1-26所示的Insert Node or Bus對話框,雙擊OK按鈕,所有的輸入、輸

30、出端口將會在端口名列表區(qū)顯示出來,如圖1-28所示。圖1-27 Node Finder對話框圖1-28 在波形編輯器中加入端口4)編輯輸入端口波形,即指定輸入端口的邏輯電平變化,在如圖1-28所示的波形編輯窗口中,選擇要輸入波形的輸入端口如clk端口,在端口名顯示區(qū)左邊的波形編輯器工具欄中有要輸入的各種波形,其按鈕說明如圖1-29所示。根據(jù)仿真的需要輸入波形。以添加輸入端口波形clk為例來講解如何操作:在添加完輸入,輸出端口后,在每個端口的左邊會出現(xiàn)I 或者O字樣,分別代表輸入,輸出,我們只需要添加輸入端口波形,首先單擊Edit-àEdn Time 左邊第一行輸入10 ,第二行輸入u

31、s ,完畢后單擊OK,完成了整個仿真時間的設(shè)置。然后用波形編輯工具選中Clk的0到40ns后,然后單擊高電平,該段波形高電平1,用同樣的方法編輯其他時段的波形和其他輸入端口的波形,參照圖1-30 編輯輸入端口波形。注:輸入波形的時間不能過小,最好能達到每段波形最小間隔40ns,否則很可能由于延時造成結(jié)果的不如意。完成后如圖1-30所示。最后選擇軟件的File>Save進行保存。圖1-29 波形編輯器工具欄圖1-30 編輯輸入端口波形5)指定仿真器設(shè)置,在仿真過程中有時序仿真和功能仿真之分,在這里介紹功能仿真。在QUARTUSII軟件中選擇Tool>Simulator Tool命令,打開仿真器工具窗口,如圖1-31所示。圖1-31 仿真器工具窗口圖1-31按圖1-3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論