【正文】
when 1111=hang=0000000000000000。 when 0111=hang=0010000000000000。 when 1111=hang=0000000000000000。 end behave。 when 1101=hang=0110000000000000。 when 0101=hang=0010100000001100。 when 1101=hang=0000100000000011。 when 0101=hang=0000000000000010。 when 1110=hang=0001000000000010。 when 0110=hang=1001000001010000。 lie=cdount。 end if。 滅 end case。 2 when 3=dis=01001111。 滅 when 101=display=10。 end if。 s_n_gewei=num_nanbei mod 10。 else 南北和東西方向倒計(jì)時(shí)20s num_nanbei=45count_nanbei。 end if。 south_north_led_green=39。 east_west_led_yellow=39。 東西綠燈亮 else if(count_nanbei=25) then south_north_led_red=39。 south_north_led_green=39。 東西方向紅燈亮 east_west_led_green=39。) then 緊急情況到來(lái) south_north_led_red=39。 東西方向停止計(jì)數(shù) else if(count_dongxi=46) then count_dongxi=0。 end if。139。event and clk=39。139。 signal display : integer range 0 to 10。 signal count_dongxi : integer range 0 to 45。 東西方向黃燈 east_west_led_green : out std_logic。use 。時(shí)鐘是一個(gè)系統(tǒng)正常工作的重要保證,沒(méi)有時(shí)鐘,再優(yōu)越的條件,系統(tǒng)都不能正常工作由于FPGA控制器外設(shè)中不含有晶振,即時(shí)鐘模塊,只有一個(gè)時(shí)鐘輸入,但是該時(shí)鐘頻率對(duì)于完成本設(shè)計(jì)是不夠的,數(shù)碼管以及點(diǎn)陣的動(dòng)態(tài)顯示都要用到時(shí)鐘,而且兩個(gè)的掃描的時(shí)鐘頻率不一樣,這樣,就要求對(duì)原有的時(shí)鐘頻率進(jìn)行分頻,得到所需要的時(shí)鐘頻率。同時(shí)也可以按照這個(gè)原理來(lái)顯示其它的漢字下圖114是一個(gè)漢字顯示所需要的時(shí)序圖: 圖134 顯示時(shí)序圖在上圖中,在系統(tǒng)時(shí)鐘的作用下,首先選取其中的一列,將數(shù)據(jù)輸入讓這列的LED顯示其數(shù)據(jù)(當(dāng)為高電平時(shí)LED發(fā)光,否則不發(fā)光)。也就是LED點(diǎn)陣對(duì)應(yīng)的這個(gè)點(diǎn)被點(diǎn)亮。 紅黃綠燈控制模塊由于南、北方向計(jì)時(shí)以及燈的控制都相同,設(shè)計(jì)中在此方向只用了三個(gè)燈,即紅、黃、綠燈和兩個(gè)數(shù)碼管。在實(shí)驗(yàn)系統(tǒng)中使用的是兩個(gè)四位一體、共陰極型七段數(shù)碼管。而74LS138的使能端已經(jīng)接了有效電平,設(shè)計(jì)中不用再管使能端的電平。由于引腳個(gè)數(shù)較其他芯片多,因此,外部硬件資源比較多,而且性能很好,穩(wěn)定,易于控制。本設(shè)計(jì)采用FPGA技術(shù),完成了一個(gè)簡(jiǎn)單實(shí)用的十字路口交通燈的控制系統(tǒng)。所以,如何采用合適的方法,最大限度的利用好交通燈的控制,緩解城市道路交通堵塞問(wèn)題,降低交通事故發(fā)生率,成為人們共同關(guān)注的話(huà)題。2 詳細(xì)電路設(shè)計(jì) 主控制器的設(shè)計(jì) 系統(tǒng)采用altera公司的cyconeIII系列芯片,封裝為FBGA貼片式封裝,速度等級(jí)3,引腳個(gè)數(shù)780個(gè)。譯碼器與主控制器的連接圖如下圖所示: 圖22 38譯碼器與控制器的接口圖74LS138為一個(gè)38線(xiàn)譯碼器,低電平輸出,其工作原理見(jiàn)下表格:表21 74LS138譯碼表輸入輸出ABCY0Y1Y2Y3Y4Y5Y6Y7LLLLHHHHHHHLLHHLHHHHHHLHLHHLHHHHHLHHHHHLHHHHHLLHHHHLHHHHLHHHHHHLHHHHLHHHHHHLHHHHHHHHHHHL 從表中可以看出:每輸入一種組合,輸出端只有一端響應(yīng),這樣可以通過(guò)輸入端的組合,選中想要選中的數(shù)碼管,讓其工作??梢燥@示數(shù)字09,東西方向用的是第一、二個(gè)數(shù)碼管,計(jì)時(shí)時(shí)間為紅燈15s,黃燈5s,綠燈15s。 南北方向模塊 南北方向包含紅黃綠燈控制模塊和計(jì)時(shí)模塊。單個(gè)的LED的電路如下圖131所示: 圖131 單個(gè)LED電路圖由上圖可知,對(duì)于單個(gè)LED的電路圖當(dāng)Rn輸入一個(gè)高電平,同時(shí)Cn輸入一個(gè)低電平時(shí),電路形成一個(gè)回路,LED發(fā)光。然后根據(jù)人眼的視覺(jué)原理,將每一列顯示的點(diǎn)的間隔時(shí)間設(shè)為一定的值,那么我們就會(huì)感覺(jué)顯示一個(gè)完整的不閃爍的漢字。緊急情況過(guò)后蜂鳴器停止報(bào)警,系統(tǒng)恢復(fù)正常。 庫(kù)文件use 。 東西方向紅燈 east_west_led_yellow : out std_logic。 architecture behave of traffic is signal count_nanbei : integer range 0 to 45。 signal dis : std_logic_vector(7 downto 0)。event and clk=39。 process(clk) begin if(clk39。event and clk1Hz=39。 end if。) then 緊急情況到來(lái) count_dongxi=count_dongxi。039。139。039。139。039。039。039。 num_dongxi=25count_dongxi。 else if(num_nanbei=10)then s_n_shiwei=num_nanbei/10。 e_w_gewei=num_dongxi mod 10。 滅 when 100=display=10。 1 when 2=dis=01011011。 9 whe