版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)字系統(tǒng)設(shè)計(jì)報(bào)告交通燈控制器一 實(shí)驗(yàn)?zāi)康?.基本掌握自頂向下的模塊化的電子系統(tǒng)設(shè)計(jì)方法;2.學(xué)會(huì)使用pld和硬件描述語言設(shè)計(jì)數(shù)字電路,掌握 quartus ii開發(fā)工具的使用方法;3.培養(yǎng)學(xué)生自主學(xué)習(xí)、正確分析和解決問題的能力 。二 設(shè)計(jì)要求我在本課程中所選擇的課題是用verilog hdl實(shí)現(xiàn)交通燈控制器。該課題的具體內(nèi)容及要求如下:主干道與鄉(xiāng)村公路十字交叉路口在現(xiàn)代化的農(nóng)村星羅棋布,為確保車輛安全、迅速地通過,在交叉路口的每個(gè)入口處設(shè)置了紅、綠、黃三色信號(hào)燈。紅燈禁止通行;綠燈允許通行;黃燈亮則給行駛中的車輛有時(shí)間行駛到禁行線之外。主干道和鄉(xiāng)村公路都安裝了傳感器,檢測(cè)車輛通行情況,用于主干
2、道的優(yōu)先權(quán)控制。 (1)當(dāng)鄉(xiāng)村公路無車時(shí),始終保持鄉(xiāng)村公路紅燈亮,主干道綠燈亮。(2)當(dāng)鄉(xiāng)村公路有車時(shí),而主干道通車時(shí)間已經(jīng)超過它的最短通車時(shí)間時(shí),禁止主干道通行,讓鄉(xiāng)村公路通行。主干道最短通車時(shí)間為25s 。(3)當(dāng)鄉(xiāng)村公路和主干道都有車時(shí),按主干道通車25s,鄉(xiāng)村公路通車16s交替進(jìn)行。(4)不論主干道情況如何,鄉(xiāng)村公路通車最長(zhǎng)時(shí)間為16s。(5)在每次由綠燈亮變成紅燈亮的轉(zhuǎn)換過程中間,要亮5s時(shí)間的黃燈作為過渡。(6)用開關(guān)代替?zhèn)鞲衅髯鳛闄z測(cè)車輛是否到來的信號(hào)。用紅、綠、黃三種顏色的發(fā)光二極管作交通燈。要求顯示時(shí)間,倒計(jì)時(shí)。 交通燈控制器框圖如下:(c表示鄉(xiāng)村道路是否有車到來,1表示有,
3、0表示無;set用來控制系統(tǒng)的開始及停止;rst是復(fù)位信號(hào),高電平有效,當(dāng)rst=1時(shí),恢復(fù)到初始設(shè)置;clk是外加時(shí)鐘信號(hào);mr、my、mg分別表示主干道的紅燈、黃燈和綠燈;cr、cy、cg分別表示鄉(xiāng)村道路的紅燈、黃燈和綠燈,1表示亮,0表示滅)系統(tǒng)流程圖如下:(mgcr:主干道綠燈,鄉(xiāng)村道路紅燈;mycr:主干道黃燈,鄉(xiāng)村道路紅燈;mrcg:主干道紅燈,鄉(xiāng)村道路綠燈;mrcy:主干道紅燈,鄉(xiāng)村道路黃燈;t0=1表示主干道最短通車時(shí)間到,t1=1表示5秒黃燈時(shí)間到,t2=1表示鄉(xiāng)村道路最長(zhǎng)通車時(shí)間到。) 本交通燈控制系統(tǒng)設(shè)計(jì)利用verilog hdl語言進(jìn)行設(shè)計(jì)編程,利用cyclone ep
4、1c6q240c8芯片和一些外圍器件組成硬件電路,利用quartus ii軟件將編寫好的程序進(jìn)行編譯、仿真,并將調(diào)試完成的程序下載到cyclone ep1c6q240c8芯片上,觀測(cè)電路板上的紅綠信號(hào)燈以及數(shù)碼管顯示,看是否按設(shè)計(jì)要求正常工作。三、設(shè)計(jì)流程分頻模塊本系統(tǒng)采用自頂向下的設(shè)計(jì),設(shè)計(jì)一個(gè)頂層文件和三個(gè)底層文件。各模塊關(guān)系如下:系統(tǒng)工作模塊交通燈控制器八段譯碼模塊設(shè)計(jì)文件如下:1. 底層模塊(1)分頻模塊: 該模塊的功能是將實(shí)驗(yàn)箱提供的2mhz的時(shí)鐘信號(hào),經(jīng)過分頻得到1hz的時(shí)鐘信號(hào)作為系統(tǒng)工作模塊的時(shí)鐘。其中set信號(hào)控制系統(tǒng)的暫停和開始。源程序如下:module clk_div(c
5、lk,set,out);input clk,set; output out;reg out;reg23:0 count; /進(jìn)行計(jì)數(shù)parameter n=2000000;always (posedge clk)/clk=2mhzbeginif(!set)begincount = 0;out = 0;endelsebeginif(count n/2-1)begincount = count + 1;endelsebeginout = out;/得到1hz的方波count = 0;endendendendmodule為方便仿真把n的值改為2,仿真波形如下圖:(2)系統(tǒng)工作模塊:該模塊中ret信號(hào)
6、 為復(fù)位信號(hào)(ret=1時(shí)進(jìn)行復(fù)位),c表示有無車輛(c=1表示鄉(xiāng)村公路上有車輛),lampa控制主干道信號(hào)燈的亮滅,lampb控制鄉(xiāng)村公路信號(hào)燈的亮滅,acounth輸出主干道信號(hào)倒計(jì)時(shí)的十位數(shù),acountl輸出主干道信號(hào)倒計(jì)時(shí)的個(gè)位數(shù),bcounth輸出鄉(xiāng)村公路信號(hào)倒計(jì)時(shí)的十位數(shù),bcountl輸出主干道信號(hào)倒計(jì)時(shí)的個(gè)位數(shù)。當(dāng)鄉(xiāng)村道路上有車時(shí)信號(hào)燈有四個(gè)狀態(tài)進(jìn)行循環(huán),圖下表所示;主干道鄉(xiāng)村公路信號(hào)狀態(tài)信號(hào)時(shí)間lampa值信號(hào)狀態(tài)信號(hào)時(shí)間lampb值綠25s1紅30s4黃5s2紅4紅21s4綠16s1紅4黃5s2當(dāng)鄉(xiāng)村道路上無車時(shí),如果當(dāng)前主干道狀態(tài)為綠燈,倒計(jì)時(shí)結(jié)束之后顯示器顯示“”,表
7、示暢行無阻(若當(dāng)前狀態(tài)為“”,則鄉(xiāng)道上出現(xiàn)車時(shí),主干道黃燈5秒開始倒計(jì)時(shí));若當(dāng)前主干道狀態(tài)為上表中第三個(gè)狀態(tài)就直接跳轉(zhuǎn)到第四個(gè)狀態(tài),具體代碼如下:module traffic(clk,rst,c,lampa,lampb,acounth,acountl,bcounth,bcountl);output3:0acounth,acountl,bcounth,bcountl;output2:0lampa,lampb;input clk,rst,c;reg2:0lampa,lampb;reg7:0numa,numb;reg3:0acounth,acountl,bcounth,bcountl;always
8、(posedge clk or posedge rst)beginif(rst) /進(jìn)行復(fù)位beginlampa=1; /主干道始為綠燈lampb=4; /鄉(xiāng)村道路為紅燈numa=8b00100101; /主干道計(jì)時(shí)25秒numb=8b00110000; /鄉(xiāng)村道路計(jì)時(shí)為30秒endelsebegin/主干道始為綠燈 鄉(xiāng)村道路為紅燈if(lampa=1&lampb=4) begin/鄉(xiāng)道無車,主干道綠燈計(jì)時(shí)結(jié)束或正處于暢行無阻狀態(tài) if(numa=1&c=0)|(&numa)=1&c=0) beginnuma=8b11111111; /顯示” 主干道處于暢行無阻狀態(tài)numb=8b1111111
9、1; lampa=1;lampb=4; end else begin/鄉(xiāng)道有車,主干道綠燈計(jì)時(shí)結(jié)束或正處于暢行無阻狀態(tài)if(numa=1&c=1)|(&numa)=1&c=1) /begin numa=8b00000101;/黃燈設(shè)置為5秒 numb=8b00000101; lampa=2; lampb=4;end/其他情況倒計(jì)時(shí)else begin if(numa3:0=0&numa7:4) beginnuma3:0=4b1001;numa7:4=numa7:4-1; end else begin numa3:0=numa3:0-1; end if(numb3:0=0&numb7:4) be
10、ginnumb3:0=4b1001;numb7:4=numb7:4-1; end else begin numb3:0=numb3:0-1; end end end end /主干道黃燈,鄉(xiāng)村道路紅燈if(lampa=2&lampb=4) begin if(numa=1) beginnuma=8b00100001;/設(shè)置主干道紅燈21秒numb=8b00010110; /設(shè)置鄉(xiāng)道綠燈16秒lampa=4;lampb=1; end elsebeginnuma3:0=numa3:0-1;numb3:0=numb3:0-1;endend/主干道紅燈,鄉(xiāng)村道路綠燈 if(lampa=4&lampb=1
11、) beginif(c=0) /跳過鄉(xiāng)道綠燈時(shí)間beginnuma=8b00000101;numb=8b00000101;lampa=4;lampb=2;endelsebeginif(numb=1&c=1) beginnuma=8b00000101;numb=8b00000101;lampa=4;lampb=2;endelse beginif(numa3:0=0&numa7:4)beginnuma3:0=4b1001;numa7:4=numa7:4-1;endelsebegin numa3:0=numa3:0-1;end if(numb3:0=0&numb7:4)beginnumb3:0=4b
12、1001;numb7:4=numb7:4-1;endelsebeginnumb3:0=numb3:0-1;endendendend/主干道紅燈,鄉(xiāng)村道路黃燈if(lampa=4&lampb=2) beginif(numa=1)beginnuma=8b00100101;/numb=8b00110000;lampa=1;lampb=4;endelsebeginnuma3:0=numa3:0-1;numb3:0=numb3:0-1;endendendacounth=numa7:4;acountl=numa3:0;bcounth=numb7:4;bcountl=numb3:0;end endmodul
13、e仿真波形:鄉(xiāng)道一直有車時(shí):鄉(xiāng)道無車時(shí):(3)八段譯碼模塊:該模塊的功能是將輸入的四位信號(hào)進(jìn)行譯碼,輸出到八段共陽極數(shù)碼管顯示出來,用于顯示倒計(jì)時(shí)module decode4_7(decodeout,indec);output7:0 decodeout; input3:0 indec; reg7:0 decodeout;always (indec)begin case(indec) /進(jìn)行譯碼 4d0:decodeout=8b00000011; 4d1:decodeout=8b10011111;4d2:decodeout=8b00100101;4d3:decodeout=8b00001101;
14、4d4:decodeout=8b10011001;4d5:decodeout=8b01001001;4d6:decodeout=8b01000001;4d7:decodeout=8b00011111;4d8:decodeout=8b00000001;4d9:decodeout=8b00001001;4d15:decodeout=8b11111101;/顯示“”default: decodeout=8bx; endcaseendendmodule仿真波形:2. 頂層文件仿真圖形:分析亮燈情況及倒計(jì)時(shí)情況,與設(shè)計(jì)要求相符合,仿真結(jié)果正確。四、管腳綁定clk綁定到晶振時(shí)鐘信號(hào),設(shè)定管腳號(hào)為28;c,
15、rst,set分別綁定到三個(gè)乒乓開關(guān),這里設(shè)定管腳號(hào)分別為137,138,139;lampa2 ,lampa1 ,lampa0分別綁定到紅燈,黃燈,綠燈上,這里設(shè)定管腳號(hào)分別為233,204,221;lampb2 ,lampb1 ,lampb0分別綁定到另一組紅燈,黃燈,綠燈上,這里設(shè)定管腳號(hào)分別為228,202,220;acounth,acountl,bcounth,bcountl分別綁定到四個(gè)數(shù)碼管上。五、編譯下載把程序下載到芯片中測(cè)試實(shí)際結(jié)果是否正確。實(shí)驗(yàn)結(jié)果:1.ret復(fù)位之后主干道為綠燈(25),鄉(xiāng)村道路為紅燈(30)。2.主干道為綠燈,鄉(xiāng)村道路為紅燈:若此時(shí)鄉(xiāng)村道路無車,主干道綠燈
16、計(jì)時(shí)結(jié)束之后,倒計(jì)時(shí)顯示“”一直持續(xù)到鄉(xiāng)道上有車為止才變?yōu)橹鞲傻罏辄S燈,鄉(xiāng)村道路為紅燈;若鄉(xiāng)道有車主干道綠燈計(jì)時(shí)結(jié)束之后為主干道為黃燈(5),鄉(xiāng)村道路為紅燈(5)。3. 主干道為黃燈,鄉(xiāng)村道路為紅燈:計(jì)時(shí)結(jié)束后主干道為紅燈(21),鄉(xiāng)道為綠燈(16)。4. 主干道為紅燈,鄉(xiāng)村道路為綠燈:若此時(shí)鄉(xiāng)道上有車,鄉(xiāng)村道路計(jì)時(shí)結(jié)束后主干道為紅燈(5),鄉(xiāng)道為黃燈(5);若此時(shí)鄉(xiāng)道上無車,不等計(jì)時(shí)結(jié)束狀態(tài)轉(zhuǎn)為主干道為紅燈(5),鄉(xiāng)村道路為黃燈(5)。5. 主干道為紅燈,鄉(xiāng)村道路為黃燈:計(jì)時(shí)結(jié)束后主干道為綠燈(25),鄉(xiāng)村道路為紅燈(30)。分析實(shí)驗(yàn)結(jié)果可以看到該系統(tǒng)實(shí)現(xiàn)了所有設(shè)計(jì)要求,運(yùn)行結(jié)果正確。六、實(shí)驗(yàn)總結(jié)該設(shè)計(jì)用了3個(gè)底層模塊和一個(gè)頂層文件,總體思路比較清晰,實(shí)現(xiàn)了交通燈控制器的各種功能及主干道和鄉(xiāng)村道路的倒計(jì)時(shí)顯示。在編寫程序的過程中,我強(qiáng)烈的意識(shí)到模塊化設(shè)計(jì)該編程帶來很大的便利。首先你得理清思路,要是下哪些功能,把他們分模塊實(shí)現(xiàn),作為底層,最后再把這些底層
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021學(xué)年遼寧省沈陽市郊聯(lián)體高一下學(xué)期期末考試地理試題
- 小學(xué)四年級(jí)多位數(shù)乘除法400題
- 學(xué)校愛國(guó)衛(wèi)生建設(shè)工作計(jì)劃
- 兒童蛀牙傷害大
- 命題作文“釋放”寫作指導(dǎo)及佳作
- 《白血病的規(guī)范化療》課件
- 《加油站HSE管理》課件
- 《龍?bào)撮L(zhǎng)城模板》課件
- 汽車工程師的工作總結(jié)
- 化工行業(yè)銷售業(yè)績(jī)總結(jié)
- 泵站項(xiàng)目劃分
- 綠化養(yǎng)護(hù)工作檢查及整改記錄表
- 新能源發(fā)電技術(shù)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- GB/T 42752-2023區(qū)塊鏈和分布式記賬技術(shù)參考架構(gòu)
- Module 9 (教案)外研版(一起)英語四年級(jí)上冊(cè)
- 初中物理-初三物理模擬試卷講評(píng)課教學(xué)課件設(shè)計(jì)
- DG-TJ 08-2367-2021 既有建筑外立面整治設(shè)計(jì)標(biāo)準(zhǔn)
- 公文流轉(zhuǎn)單(標(biāo)準(zhǔn)模版)
- 深入淺出Oracle EBS之OAF學(xué)習(xí)筆記-Oracle EBS技術(shù)文檔
- XXX大中型公司報(bào)價(jià)管理辦法
- 四年級(jí)計(jì)算題大全(列豎式計(jì)算,可打印)
評(píng)論
0/150
提交評(píng)論