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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

5、t;<p>  2.2 緊急情況電路設(shè)計(jì)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 計(jì)時(shí)模塊9</p>

6、<p>  2.6 南北方向模塊9</p><p>  2.6.1 紅黃綠燈控制模塊10</p><p>  2.6.2 計(jì)時(shí)模塊10</p><p>  2.7 點(diǎn)陣模塊10</p><p>  2.8蜂鳴器模塊12</p><p>  2.9時(shí)鐘模塊12</p><p

7、>  3 引腳分配13</p><p><b>  總結(jié)15</b></p><p><b>  參考文獻(xiàn)15</b></p><p>  附錄:源程序清單16</p><p>  1 主要技術(shù)指標(biāo)和方案闡述</p><p><b>  1.1主要技

8、術(shù)指標(biāo)</b></p><p>  1.東西方向紅燈亮?xí)r,南北方向綠燈亮</p><p>  2.東西方向紅黃亮?xí)r,南北方向綠黃亮</p><p>  3.東西方向紅綠亮?xí)r,南北方向紅燈亮</p><p>  4.東西方向和南北方向的紅燈亮的時(shí)間均為15s</p><p>  5.東西方向和南北方向的黃燈亮

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

36、gt;<p>  --十字路口交通燈的設(shè)計(jì)--</p><p>  --學(xué)號(hào)030940910--</p><p>  --姓名-- --楊波--</p><p>  ---------------------------------------------------------------------------------------------

37、-------------------------</p><p>  library ieee; --庫(kù)文件</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; --時(shí)鐘信號(hào)</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); --點(diǎn)陣的行</p><p>  lie : out std_logic_vector(3 downto 0) --4-16轉(zhuǎn)換輸入</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 --緊急情況到來(lái)</p><p>  count_nanbei<=count_nanbei; --南北方向停止計(jì)數(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 --緊急情況到來(lái)</p><p>  count_dongxi<=count_dongxi; --東西方向停止計(jì)數(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 --緊急情況到來(lái)</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 --南北和東西方向倒計(jì)時(shí)20s<

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

70、=25-count_nanbei;</p><p>  num_dongxi<=25-count_dongxi;</p><p>  else --南北和東西方向倒計(jì)時(shí)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、 --南北時(shí)間顯示分位</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) --東西時(shí)間顯示分位</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; --第一個(gè)數(shù)碼管顯示東西十位</p><p>  when "001"=>display&l

78、t;=e_w_gewei; --第二個(gè)數(shù)碼管顯示東西個(gè)位</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; --第七個(gè)數(shù)碼管顯示南北十位</p><p>  w

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

評(píng)論

0/150

提交評(píng)論