基于sopc交通燈的eda課程設計_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  EDA課程設計報告書</p><p>  題目: 十字路口交通燈的設計 </p><p>  專 業(yè): 電子信息科學與技術 </p><p>  2012年 5月12日 </p><p>  信息工程學院課程設計任務書</p><p>  2012年 5月12日</p>

2、;<p><b>  摘要</b></p><p>  隨著社會經(jīng)濟的發(fā)展,城市交通問題越來越引起人們的關注。人、車、路三者的協(xié)調(diào),已成為交通管理部門需要解決的重要問題之一,城市的交通控制系統(tǒng)是用于城市交通數(shù)據(jù)監(jiān)測、交通信號控制與交通疏導的計算機綜合管理系統(tǒng),它是現(xiàn)代城市交通監(jiān)控指揮系統(tǒng)的重要組成部分。同時,生活水平的提高,汽車的普及化,給交通帶來了更大的挑戰(zhàn),道路的負載加重,

3、帶來的是交通事故越來越多。所以,如何采用合適的方法,最大限度的利用好交通燈的控制,緩解城市道路交通堵塞問題,降低交通事故發(fā)生率,成為人們共同關注的話題。本設計采用FPGA技術,完成了一個簡單實用的十字路口交通燈的控制系統(tǒng)。</p><p>  關鍵字: 控制 管理 緩解 </p><p><b>  目錄</b></p>&

4、lt;p>  1 主要技術指標和方案闡述6</p><p>  1.1主要技術指標6</p><p>  1.2 方案闡述6</p><p><b>  1.3工作原理6</b></p><p>  2 詳細電路設計7</p><p>  2.1 主控制器的設計7</p&g

5、t;<p>  2.2 緊急情況電路設計7</p><p>  2.3 譯碼電路7</p><p>  2.4 蜂鳴器模塊8</p><p>  2.5 東西方向模塊8</p><p>  2.5.1 紅黃綠燈控制模塊9</p><p>  2.5.2 計時模塊9</p>

6、<p>  2.6 南北方向模塊9</p><p>  2.6.1 紅黃綠燈控制模塊10</p><p>  2.6.2 計時模塊10</p><p>  2.7 點陣模塊10</p><p>  2.8蜂鳴器模塊12</p><p>  2.9時鐘模塊12</p><p

7、>  3 引腳分配13</p><p><b>  總結15</b></p><p><b>  參考文獻15</b></p><p>  附錄:源程序清單16</p><p>  1 主要技術指標和方案闡述</p><p><b>  1.1主要技

8、術指標</b></p><p>  1.東西方向紅燈亮時,南北方向綠燈亮</p><p>  2.東西方向紅黃亮時,南北方向綠黃亮</p><p>  3.東西方向紅綠亮時,南北方向紅燈亮</p><p>  4.東西方向和南北方向的紅燈亮的時間均為15s</p><p>  5.東西方向和南北方向的黃燈亮

9、5s,且在最后3s時,兩個方向的黃燈每隔1s亮滅閃爍</p><p>  6.當緊急情況到來時,東西和南北方向的紅燈全亮,數(shù)碼管停止計時,緊急情況過后,系統(tǒng)恢復正常</p><p>  7.點陣上循環(huán)顯示“交通燈”三個字,且每個字的顯示時間為0.5s</p><p><b>  1.2 方案闡述</b></p><p>

10、  系統(tǒng)采用現(xiàn)場可編程邏輯器件作為主控制器,外加按鍵模塊、數(shù)碼管顯示模塊、譯碼器模塊、點陣顯示模塊和蜂鳴模塊構成。計時數(shù)據(jù)在數(shù)碼管上顯示出來,點陣上循環(huán)顯示“交通燈”三個字。蜂鳴器作為緊急情況使用。系統(tǒng)的基本框圖如下:</p><p>  圖1-1 系統(tǒng)原理框圖</p><p><b>  1.3工作原理</b></p><p>  系統(tǒng)開始時

11、,南北方向和東西方向正常工作,兩個方向的紅、黃、綠三燈交替亮滅,當緊急情況到來,即按鍵S1按下時,兩個方向的數(shù)碼管停止計時,而且兩個方向的紅燈全部點亮,蜂鳴器響起,表明此時南北和東西方向行人和普通車輛嚴禁通行。當緊急情況過后,系統(tǒng)恢復正常,按照緊急情況到來之前繼續(xù)工作。兩個方向的時間顯示用兩位數(shù)碼管顯示。</p><p><b>  2 詳細電路設計</b></p><p

12、>  2.1 主控制器的設計</p><p>  系統(tǒng)采用altera公司的cyconeIII系列芯片,封裝為FBGA貼片式封裝,速度等級3,引腳個數(shù)780個。由于引腳個數(shù)較其他芯片多,因此,外部硬件資源比較多,而且性能很好,穩(wěn)定,易于控制。</p><p>  2.2 緊急情況電路設計</p><p>  本設計的緊急情況用按鍵來模擬,當按鍵按下時,緊急情況

13、到來,按鍵釋放后,緊急情況消失。按鍵與主控制器連接圖如下圖所示:</p><p>  圖2-1 按鍵與主控器連接圖</p><p>  按鍵只有邏輯電平“0”和“1”兩種狀態(tài),當按下時,為邏輯電平0,當未按下時,為邏輯電平1。本設計中只用到了其中的一個按鍵S1,當S1按下時,緊急情況到來,當S1未按下時,沒有緊急情況發(fā)生。</p><p><b>  2.

14、3 譯碼電路</b></p><p>  譯碼電路為3-8譯碼器,它經(jīng)常用在數(shù)碼管的動態(tài)掃描中,輸出端接數(shù)碼管的8個位選,每次可以選中一個數(shù)碼管,而輸入端為000-111的8種組合,每一種組合對應一個輸出,Y0-Y7對應輸入的8種輸出,即當輸入為000時,Y0選通,依次類推。由于8位一體的數(shù)碼管不能夠在同一時間全部顯示,因此,要通過譯碼電路對8位數(shù)碼管進行譯碼,一次只讓一個數(shù)碼管亮,通過人眼的視覺暫

15、態(tài)效應,當掃描時間在人眼視覺效應之內(nèi)時,看起來就像是幾個數(shù)碼管同時被點亮。這樣既能夠節(jié)約端口資源,又能達到很好的效果。</p><p>  譯碼器與主控制器的連接圖如下圖所示:</p><p>  圖2-2 3-8譯碼器與控制器的接口圖</p><p>  74LS138為一個3-8線譯碼器,低電平輸出,其工作原理見下表格:</p><p>

16、  表2-1 74LS138譯碼表</p><p>  從表中可以看出:每輸入一種組合,輸出端只有一端響應,這樣可以通過輸入端的組合,選中想要選中的數(shù)碼管,讓其工作。而74LS138的使能端已經(jīng)接了有效電平,設計中不用再管使能端的電平。</p><p><b>  2.4 蜂鳴器模塊</b></p><p>  當輸入信號的電平為高電平1時,蜂

17、鳴器響起,當輸入電平為低電平0時,蜂鳴器不響。因此,當緊急情況到來時,讓蜂鳴器的輸入端的電平為高電平,那么蜂鳴器就會響起;緊急情況過后,讓蜂鳴器的輸入端電平為低電平時,蜂鳴器就不響。</p><p>  2.5 東西方向模塊</p><p>  東西方向包含紅黃綠燈控制模塊和計時模塊。</p><p>  2.5.1 紅黃綠燈控制模塊</p><

18、;p>  由于東西方向計時與燈的控制相同,設計中在此方向只用了三個燈,即紅、黃、綠燈。</p><p>  用到的是實驗系統(tǒng)中第一、二、三個燈,即LED1、LED2、LED3,分別表示紅、黃、綠三種顏色的燈。LED燈與控制器的連接圖如下圖所示:</p><p>  圖2-3 LED與控制器的連接圖</p><p>  2.5.2 計時模塊</p>

19、;<p>  設計中采用8段數(shù)碼管顯示,七段數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設備??梢燥@示數(shù)字0-9,東西方向用的是第一、二個數(shù)碼管,計時時間為紅燈15s,黃燈5s,綠燈15s。在實驗系統(tǒng)中使用的是兩個四位一體、共陰極型七段數(shù)碼管。其單個靜態(tài)數(shù)碼管如下圖4-1所示。</p><p>  圖4-1 靜態(tài)七段數(shù)碼管</p><p>  由于七段數(shù)碼管公共端連接到GND(共陰

20、極型),當數(shù)碼管的中的那一個段被輸入高電平,則相應的這一段被點亮。反之則不亮。四位一體的七段數(shù)碼管在單個靜態(tài)數(shù)碼管的基礎上加入了用于選擇哪一位數(shù)碼管的位選信號端口。工作原理都相同,八個數(shù)碼管的a、b、c、d、e、f、g、h、dp都連在了一起,共8根段選引腳,8個數(shù)碼管分別由各自的位選信號來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關閉,共8根位選引腳,總共16根引腳。共陰極數(shù)碼管顯示0-9字符數(shù)據(jù)如下表:</p><p>

21、;  表2-2 數(shù)碼管字符顯示表</p><p>  從表可以看出,當選中第1、2個數(shù)碼管時,只要按照表中的輸入組合送入段選,那么數(shù)碼管就會顯示相應的數(shù)字,從而達到結果。</p><p>  2.6 南北方向模塊</p><p>  南北方向包含紅黃綠燈控制模塊和計時模塊。</p><p>  2.6.1 紅黃綠燈控制模塊</p&g

22、t;<p>  由于南、北方向計時以及燈的控制都相同,設計中在此方向只用了三個燈,即紅、黃、綠燈和兩個數(shù)碼管。用到的是實驗系統(tǒng)中第一、二、三個燈,即LED10、LED11、LED12,分別表示紅、黃、綠三種顏色的燈。LED燈與控制器的連接圖如圖2-3所示。</p><p>  2.6.2 計時模塊</p><p>  計時模塊與東西方向相同,只是南北方向的計時用到的是實驗系

23、統(tǒng)中的第7、8個數(shù)碼管,工作原理與東西方向的完全相同。當選中第7、8個數(shù)碼管時,送入表2-2中的段選,可以顯示相應的數(shù)字。</p><p><b>  2.7 點陣模塊</b></p><p>  本設計主要是完成漢字在LED上的顯示,16*16掃描LED點陣的工作原理與8位掃描數(shù)碼管類似,也是用到了人眼的視覺暫態(tài)效應,只是顯示的方式與結果不一樣。16*16點陣由2

24、56個LED通過排列組合而形成16行*16列的一個矩陣式的LED陣列,俗稱16*16點陣。單個的LED的電路如下圖13-1所示:</p><p>  圖13-1 單個LED電路圖</p><p>  由上圖可知,對于單個LED的電路圖當Rn輸入一個高電平,同時Cn輸入一個低電平時,電路形成一個回路,LED發(fā)光。也就是LED點陣對應的這個點被點亮。16*16點陣也就是由16行和16列的L

25、ED組成,其中每一行的所有16個LED的Rn端并聯(lián)在一起,每一列的所有16個LED的Cn端并聯(lián)在一起。通過給Rn輸入一個高電平,也就相當于給這一列所有LED輸入了一個高電平,這時只要某個LED的Cn端輸入一個低電平時,對應的LED就會被點亮。具體的電路如下圖13-2所示:</p><p>  圖13-2 16*16點陣電路原理圖</p><p>  因此,在點陣上顯示一個字,就是要讓這

26、個字在點陣上所覆蓋區(qū)域的LED燈點亮,而其他區(qū)域的LED燈被熄滅,例如,在點陣上顯示中文“漢”字的顯示圖如下圖13-3所示:</p><p>  圖13-3 字符在點陣上的顯示</p><p>  在上圖中,只要將被“漢”字所覆蓋的區(qū)域的點點亮,則在點陣中就會顯示一個“漢”字。根據(jù)前面我們所介紹的點陣顯示的原理。當我們選中第一列后,根據(jù)要顯示漢字的第一列中所需要被點亮的點對應的Rn置為高

27、電平,則在第一列中需要被點亮的點就會被點亮。依此類推,顯示第二列、第三列……第N列中需要被點亮的點。然后根據(jù)人眼的視覺原理,將每一列顯示的點的間隔時間設為一定的值,那么我們就會感覺顯示一個完整的不閃爍的漢字。同時也可以按照這個原理來顯示其它的漢字下圖11-4是一個漢字顯示所需要的時序圖:</p><p>  圖13-4 顯示時序圖</p><p>  在上圖中,在系統(tǒng)時鐘的作用下,首先選

28、取其中的一列,將數(shù)據(jù)輸入讓這列的LED顯示其數(shù)據(jù)(當為高電平時LED發(fā)光,否則不發(fā)光)。然后選取下一列來顯示下一列的數(shù)據(jù)。當完成一個16*16點陣的數(shù)據(jù)輸入時,即列選擇計數(shù)到最后一列后,再從第一列開始輸入相同的數(shù)據(jù)。這樣只要第一次顯示第一列的數(shù)據(jù)和第二次顯示第一列的數(shù)據(jù)的時間足夠短,那么人的眼睛就會看到第一列的數(shù)據(jù)總是顯示的,而沒有停頓現(xiàn)象。同樣的道理其它列也是這樣,直到顯示下一個漢字。在實際的運用當中,一個漢字是由多個八位的數(shù)據(jù)來構成

29、的,那么要顯示多個漢字的時候, 這些數(shù)據(jù)可以根據(jù)一定的規(guī)則存放到存儲器中,當要顯示這個漢字的時候只要將存儲器中對應的數(shù)據(jù)取出顯示即可。字庫數(shù)據(jù)的格式如下圖:</p><p>  圖13-5 字庫格式</p><p>  該模塊與控制器的連接圖如下圖所示:</p><p>  圖13-6 16*16點陣電路圖</p><p><b

30、>  2.8蜂鳴器模塊</b></p><p>  本設計中采用蜂鳴器是為了在緊急情況下報警。緊急情況過后蜂鳴器停止報警,系統(tǒng)恢復正常。</p><p><b>  2.9時鐘模塊</b></p><p>  時鐘是一個系統(tǒng)正常工作的重要保證,沒有時鐘,再優(yōu)越的條件,系統(tǒng)都不能正常工作由于FPGA控制器外設中不含有晶振,即時鐘

31、模塊,只有一個時鐘輸入,但是該時鐘頻率對于完成本設計是不夠的,數(shù)碼管以及點陣的動態(tài)顯示都要用到時鐘,而且兩個的掃描的時鐘頻率不一樣,這樣,就要求對原有的時鐘頻率進行分頻,得到所需要的時鐘頻率。時鐘與控制器的連接圖如下圖所示:</p><p>  圖3-2 數(shù)字時鐘信號模塊電</p><p><b>  3 引腳分配</b></p><p>

32、  本模塊用到的模塊與實驗箱的引腳連接如下表所示:</p><p><b>  總結</b></p><p>  通過本次設計,初步了解了quartusII軟件的基本操作。熟悉了數(shù)碼管、點陣的動態(tài)掃描方法和原理,了解了VHDL語言的結構特點及編程思想,能夠編寫簡單的程序。在設計過程中,遇到了許多的問題,通過與同學和老師的交流,以及自己在圖書館查找資料,最終完成了本設計

33、。設計能夠按照預期的要求正常工作,但是,設計還存在一些不足,東西方向和南北方向的紅綠燈計時時間相同,不能夠達到兩個方向的時間不同步顯示;點陣只能夠現(xiàn)實普通的數(shù)字和漢字,還不能夠現(xiàn)實人形,在紅燈亮時,人形不動,當綠燈亮時,人形行走,此功能還不能實現(xiàn)。在接下來的時間里,會在這方面有所突破,完善本設計。</p><p><b>  參考文獻</b></p><p>  1.

34、趙明富,李立軍. EDA技術基礎[M]. 北京:北京大學出版社,2007.6</p><p>  2.孟慶海,張洲.VHDL基礎及經(jīng)典實例開發(fā)[M].西安:西安交通大學出版社,2008.4</p><p>  3.楊承恩,譚克俊,顏得文.VHDL編程實例(第四版)[M]. 北京:電子工業(yè)出版社,2009.6</p><p>  4.詹仙寧.VHDL開發(fā)精解與實例剖析

35、[M]. 北京:電子工業(yè)出版社,2009.9</p><p><b>  附錄:源程序清單</b></p><p>  ----------------------------------------------------------------------------------------------------------------------</p&

36、gt;<p>  --十字路口交通燈的設計--</p><p>  --學號030940910--</p><p>  --姓名-- --楊波--</p><p>  ---------------------------------------------------------------------------------------------

37、-------------------------</p><p>  library ieee; --庫文件</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p&

38、gt;<p>  use ieee.std_logic_arith.all;</p><p>  entity traffic is</p><p>  port(clk : in std_logic; --時鐘信號</p><p>  del : buffer std_logic_vecto

39、r(2 downto 0); --3-8譯碼器輸入</p><p>  seg : out std_logic_vector(7 downto 0); --數(shù)碼管段選</p><p>  key : in std_logic; --按鍵S1,緊急情況</p><p>  east_w

40、est_led_red : out std_logic; --東西方向紅燈</p><p>  east_west_led_yellow : out std_logic; --東西方向黃燈</p><p>  east_west_led_green : out std_logic; --東西方向綠燈</p

41、><p>  south_north_led_red : out std_logic; --南北方向紅燈</p><p>  south_north_led_yellow : out std_logic; --南北方向黃燈</p><p>  south_north_led_green : out std_logic;

42、 --南北方向綠燈</p><p>  hang : out std_logic_vector(15 downto 0); --點陣的行</p><p>  lie : out std_logic_vector(3 downto 0) --4-16轉換輸入</p><p><b>  );</b

43、></p><p>  end traffic;</p><p>  architecture behave of traffic is</p><p>  signal count_nanbei : integer range 0 to 45;</p><p>  signal count_dongxi : integer r

44、ange 0 to 45;</p><p>  signal num_nanbei : integer range 0 to 25;</p><p>  signal num_dongxi : integer range 0 to 25;</p><p>  signal e_w_shiwei : integer range 0 to 9;&

45、lt;/p><p>  signal e_w_gewei : integer range 0 to 9;</p><p>  signal s_n_shiwei : integer range 0 to 9;</p><p>  signal s_n_gewei : integer range 0 to 9;</p><p

46、>  signal dis : std_logic_vector(7 downto 0);</p><p>  signal display : integer range 0 to 10;</p><p>  signal clk_count : std_logic_vector(13 downto 0);</p><

47、;p>  signal clk1HZ : std_logic;</p><p>  signal cdount : std_logic_vector(3 downto 0);</p><p>  signal dount : std_logic_vector(8 downto 0);</p><p>  signa

48、l s : std_logic_vector(2 downto 0);</p><p>  begin </p><p>  process(clk) --分頻</p><p><b>  begin </b></p><p>  if (clk'event and clk=

49、'1') then</p><p>  if(clk_count<10000) then</p><p>  clk_count<=clk_count+1;</p><p><b>  else</b></p><p>  clk_count<="00000000000001&

50、quot;; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  clk1HZ<=clk_count(13);</p><p>  end process;</p><p>  process(c

51、lk)</p><p><b>  begin</b></p><p>  if(clk'event and clk='1') then</p><p>  del<=del+1;</p><p><b>  seg<=dis;</b></p>&l

52、t;p><b>  end if;</b></p><p>  end process;</p><p>  process(clk1Hz) --</p><p><b>  begin</b></p><p>  if(clk1

53、Hz'event and clk1Hz='1') then</p><p>  if(key='0') then --緊急情況到來</p><p>  count_nanbei<=count_nanbei; --南北方向停止計數(shù)</p><p>  else if(count_nanbei=46) then&

54、lt;/p><p>  count_nanbei<=0;</p><p><b>  else </b></p><p>  count_nanbei<=count_nanbei+1; </p><p><b>  end if;</b></p><p><b

55、>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(clk1Hz)</p><p><b>  begin</b></p><p>  if(cl

56、k1Hz'event and clk1Hz='1') then</p><p>  if(key='0') then --緊急情況到來</p><p>  count_dongxi<=count_dongxi; --東西方向停止計數(shù)</p><p>  else if(count_dongxi=4

57、6) then</p><p>  count_dongxi<=0;</p><p><b>  else</b></p><p>  count_dongxi<=count_dongxi+1;</p><p><b>  end if;</b></p><p>

58、<b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(clk1Hz,count_nanbei)</p><p><b>  begin</b></p>

59、<p>  if(key='0') then --緊急情況到來</p><p>  south_north_led_red<='1'; --南北方向紅燈亮</p><p>  south_north_led_green<='0';</p><p>  south_nor

60、th_led_yellow<='0';</p><p>  east_west_led_red<='1'; -東西方向紅燈亮</p><p>  east_west_led_green<='0';</p><p>  east_west_led_yellow<='0'

61、;</p><p>  else if(count_nanbei<=20) then </p><p>  south_north_led_red<='1'; --南北紅燈亮</p><p>  south_north_led_yellow<='0';</p>&l

62、t;p>  south_north_led_green<='0';</p><p>  east_west_led_red<='0'; </p><p>  east_west_led_yellow<='0';</p><p>  east_west_led_green<='1

63、'; --東西綠燈亮 </p><p>  else if(count_nanbei<=25) then </p><p>  south_north_led_red<='0';</p><p>  south_north_led_yellow<='1'; --南北黃燈亮

64、 </p><p>  south_north_led_green<='0';</p><p>  east_west_led_red<='0';</p><p>  east_west_led_yellow<='1'; --東西黃燈亮 </p>

65、<p>  east_west_led_green<='0';</p><p>  else </p><p>  south_north_led_red<='0';</p><p>  south_north_led_yellow<='0';

66、 </p><p>  south_north_led_green<='1'; --南北綠燈亮</p><p>  east_west_led_red<='1'; --東西紅燈亮</p><p>  east_west_led_yellow<='0';

67、 </p><p>  east_west_led_green<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if; </b>

68、;</p><p>  end process;</p><p>  process(count_nanbei,count_dongxi)</p><p><b>  begin</b></p><p>  if(count_nanbei<=20)then --南北和東西方向倒計時20s<

69、;/p><p>  num_nanbei<=20-count_nanbei;</p><p>  num_dongxi<=20-count_dongxi;</p><p>  else if(count_nanbei<=25)then --南北和東西方向倒計時5s</p><p>  num_nanbei<

70、=25-count_nanbei;</p><p>  num_dongxi<=25-count_dongxi;</p><p>  else --南北和東西方向倒計時20s</p><p>  num_nanbei<=45-count_nanbei;</p><p>  num_

71、dongxi<=45-count_dongxi;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process; </p><p>  process(num_nanbei)

72、 --南北時間顯示分位</p><p><b>  begin</b></p><p>  if(num_nanbei<10) then</p><p>  s_n_gewei<=num_nanbei;</p><p>  s_n_shiwei<=0;</p><p> 

73、 else if(num_nanbei>=10)then</p><p>  s_n_shiwei<=num_nanbei/10;</p><p>  s_n_gewei<=num_nanbei mod 10;</p><p><b>  end if;</b></p><p><b>  e

74、nd if;</b></p><p>  end process;</p><p>  process(num_dongxi) --東西時間顯示分位</p><p><b>  begin</b></p><p>  if(num_dongxi<10) then&l

75、t;/p><p>  e_w_gewei<=num_dongxi;</p><p>  e_w_shiwei<=0;</p><p>  else if(num_dongxi>=10) then</p><p>  e_w_shiwei<=num_dongxi/10;</p><p>  e_w_g

76、ewei<=num_dongxi mod 10;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process; </p><p>  process(del) </p>&l

77、t;p>  begin </p><p>  case del+1 is --位選掃描加1</p><p>  when "000"=>display<=e_w_shiwei; --第一個數(shù)碼管顯示東西十位</p><p>  when "001"=>display&l

78、t;=e_w_gewei; --第二個數(shù)碼管顯示東西個位</p><p>  when "010"=>display<=10; --滅</p><p>  when "011"=>display<=10; --滅</p><p>  when "100&quo

79、t;=>display<=10; --滅</p><p>  when "101"=>display<=10; --滅</p><p>  when "110"=>display<=s_n_shiwei; --第七個數(shù)碼管顯示南北十位</p><p>  w

80、hen "111"=>display<=s_n_gewei; --第八個數(shù)碼管顯示南北個位</p><p><b>  end case;</b></p><p>  end process; </p><p>  process(display)</p><p><b>

81、;  begin</b></p><p>  case display is </p><p>  when 0=>dis<="00111111"; --0</p><p>  when 1=>dis<="00000110"; --1</p><p>  w

82、hen 2=>dis<="01011011"; --2</p><p>  when 3=>dis<="01001111"; --3</p><p>  when 4=>dis<="01100110"; --4</p><p>  when 5=>dis<

83、;="01101101"; --5</p><p>  when 6=>dis<="01111101"; --6</p><p>  when 7=>dis<="00000111"; --7</p><p>  when 8=>dis<="01111111

84、"; --8</p><p>  when 9=>dis<="01101111"; --9 </p><p>  when others=>dis<="00000000"; --滅</p><p><b>  end case;</b></p>

85、<p>  end process;</p><p>  process(clk) --分頻</p><p><b>  begin</b></p><p>  if(clk'event and clk='1')then</p><p>  dount<=dount+

86、1;</p><p>  if(dount=255)then</p><p>  if(s=7)then</p><p><b>  s<="000";</b></p><p><b>  else</b></p><p><b>  s&

87、lt;=s+1;</b></p><p><b>  end if;</b></p><p><b>  s<=s+1;</b></p><p><b>  else</b></p><p><b>  s<=s;</b></

88、p><p><b>  end if; </b></p><p>  if(cdount<15)then</p><p>  cdount<=cdount+1;</p><p><b>  else</b></p><p>  cdount<="00

89、00";</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  lie<=cdount;</p><p>  end process;</p><p>  process(cdount

90、,s) --交</p><p><b>  begin</b></p><p>  if s="00" then</p><p>  case cdount is</p><p>  when "0000"=>hang<="00

91、01000000000001";</p><p>  when "0001"=>hang<="0001000010000001";</p><p>  when "0010"=>hang<="0001000100000010";</p><p>  wh

92、en "0011"=>hang<="0001001000000010";</p><p>  when "0100"=>hang<="0001110100000100";</p><p>  when "0101"=>hang<="0001000

93、010001000";</p><p>  when "0110"=>hang<="1001000001010000";</p><p>  when "0111"=>hang<="0111000000100000";</p><p>  when &q

94、uot;1000"=>hang<="0001000001010000";</p><p>  when "1001"=>hang<="0001000010001000";</p><p>  when "1010"=>hang<="000110010000

95、0100";</p><p>  when "1011"=>hang<="0001010000000100";</p><p>  when "1100"=>hang<="0001001000000010";</p><p>  when "1

96、101"=>hang<="0011001100000011";</p><p>  when "1110"=>hang<="0001000000000010";</p><p>  when "1111"=>hang<="0000000000000000&

97、quot;;</p><p><b>  end case;</b></p><p>  else if s="01" then --通</p><p>  case cdount is </p><p>  when "0000"=>hang&

98、lt;="0000001000000000";</p><p>  when "0001"=>hang<="0100001010000010";</p><p>  when "0010"=>hang<="0010001000000100";</p>&

99、lt;p>  when "0011"=>hang<="0011001111111000";</p><p>  when "0100"=>hang<="0000000000000100";</p><p>  when "0101"=>hang<=&

100、quot;0000000000000010";</p><p>  when "0110"=>hang<="1000111111111101";</p><p>  when "0111"=>hang<="1000100100100001";</p><p&

101、gt;  when "1000"=>hang<="1010100100100001";</p><p>  when "1001"=>hang<="1001111111111101";</p><p>  when "1010"=>hang<="

102、1010100100101001";</p><p>  when "1011"=>hang<="1100100100100101";</p><p>  when "1100"=>hang<="1001111111110001";</p><p>  

103、when "1101"=>hang<="0000100000000011";</p><p>  when "1110"=>hang<="0000000000000010";</p><p>  when "1111"=>hang<="00000

104、00000000000";</p><p><b>  end case;</b></p><p>  else if s>1 then --燈</p><p>  case cdount is</p><p>  when "0000"=>hang<=&qu

105、ot;0000000100000010";</p><p>  when "0001"=>hang<="0000111000000100";</p><p>  when "0010"=>hang<="0000000000011000";</p><p>

106、;  when "0011"=>hang<="1111111111100000";</p><p>  when "0100"=>hang<="0000010000010000";</p><p>  when "0101"=>hang<="00

107、10100000001100";</p><p>  when "0110"=>hang<="0010000000000000";</p><p>  when "0111"=>hang<="0010000000000000";</p><p>  wh

108、en "1000"=>hang<="0010000000000010";</p><p>  when "1001"=>hang<="0010000000000001";</p><p>  when "1010"=>hang<="0011111

109、111111110";</p><p>  when "1011"=>hang<="0010000000000000";</p><p>  when "1100"=>hang<="0010000000000000";</p><p>  when &q

110、uot;1101"=>hang<="0110000000000000";</p><p>  when "1110"=>hang<="0010000000000000";</p><p>  when "1111"=>hang<="000000000000

111、0000"; </p><p>  end case; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  en

溫馨提示

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

評論

0/150

提交評論