版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda交通燈課程設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)報(bào)告(eda)
- eda交通燈課程設(shè)計(jì)論文
- eda交通燈課程設(shè)計(jì)論文
- eda課程設(shè)計(jì)--交通燈控制
- eda交通燈課程設(shè)計(jì)---交通燈控制系統(tǒng)
- eda交通燈課程設(shè)計(jì)---交通燈控制系統(tǒng)的設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)--cpld實(shí)現(xiàn)交通燈控制系統(tǒng)
- eda課程設(shè)計(jì)報(bào)告---基于quartus ii的交通燈設(shè)計(jì)
- eda課程設(shè)計(jì)--交通燈控制器
- eda課程設(shè)計(jì)(交通燈控制器)
- eda課程設(shè)計(jì)---交通燈控制器
- 交通燈課程設(shè)計(jì)--基于fpga的交通燈設(shè)計(jì)
- eda課程設(shè)計(jì)交通燈帶左拐
- eda技術(shù)及應(yīng)用課程設(shè)計(jì)---交通燈
- eda課程設(shè)計(jì)交通燈控制器
- eda課程設(shè)計(jì)交通燈控制器
- eda交通燈控制系統(tǒng)的課程設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告-- 交通燈的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論