版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p> 1 設(shè)計任務(wù)和要求2</p><p> 1.1 設(shè)計任務(wù)2</p><p> 1.2 交通燈控制器的基本要求2</p><p> 2 工作原理及方案設(shè)計3</p><p> 2.1 交通燈控制器的設(shè)計原理3&
2、lt;/p><p> 2.2交通燈控制器的基本方案3</p><p><b> 3 系統(tǒng)設(shè)計4</b></p><p> 3.1 計數(shù)器的設(shè)計4</p><p> 3.2 控制器的設(shè)計4</p><p> 3.3 分位器的設(shè)計5</p><p> 3.4
3、 交通燈控制器的頂層原理5</p><p><b> 4 參考程序6</b></p><p> 4.1 計數(shù)器的程序6</p><p> 4.2 控制器的程序7</p><p> 4.3 分位電路程序11</p><p> 4.4. 七段譯碼電路的程序12</p&g
4、t;<p> 5系統(tǒng)調(diào)試與性能分析13</p><p> 5.1 交通燈計數(shù)器波形圖13</p><p> 5.2控制器的波形圖13</p><p> 5.3 分位的波形圖14</p><p> 5.4 七段譯碼電路的波形圖14</p><p> 1 設(shè)計任務(wù)和要求</p&g
5、t;<p><b> 1.1 設(shè)計任務(wù)</b></p><p> 用FPGA實現(xiàn)一個智能交通燈系統(tǒng),根據(jù)設(shè)計要求分析智能交通燈系統(tǒng)的基本原理,設(shè)計系統(tǒng)框圖,設(shè)計完成后給出FPGA占用資源分析。</p><p> 1.2 交通燈控制器的基本要求</p><p> (1)道路足夠?qū)?,有雙向六通道。車輛直行不允許車輛左拐,允許右
6、拐。須另設(shè)左拐時間。針對上述通行規(guī)則,車輛控制燈有直行(↑)、左拐(←)和右拐(→)三個綠色指示燈、黃燈以及一個紅色指示燈。紅色指示燈亮,代表禁止車輛通行、一個方向燈亮的順序為綠燈、黃燈、左拐燈、紅燈,前三種燈亮?xí)r間等于另一側(cè)的紅燈亮?xí)r間。</p><p> ?。?)車輛正常通行時間為40秒,黃燈為5秒,左拐為10秒,由各方向設(shè)置的倒計時顯示器顯示時間,向司機(jī)提剩余時間。當(dāng)一個方向車流量加大時,自動調(diào)節(jié)。<
7、/p><p> (3)行人過馬路需提出申請,且只在車輛直行時才能響應(yīng)行人的請求,行人在申請得到響應(yīng)后方可穿越,穿越時間為60秒。</p><p> ?。?)交通警察有權(quán)隨時指定系統(tǒng)停在某個狀態(tài),確保某個方向的車輛流通。</p><p> 2 工作原理及方案設(shè)計</p><p> 2.1 交通燈控制器的設(shè)計原理</p><
8、;p> 交通燈控制器的核心范圍是一個計數(shù)范圍為0~59共(60秒)的計數(shù)器和一個根據(jù)計數(shù)值做出規(guī)定反映的控制器。另外,還需要輸入CLK時鐘信號。最后,要驅(qū)動七段數(shù)碼管,顯然還需要一個譯碼電路。 </p><p> 圖2.1交通燈控制器原理圖</p><p> 2.2 交通燈控制器的基本方案</p><p> 交通燈控制器的核心范圍是一個計數(shù)范圍為0~
9、59共(60秒)的計數(shù)器和一個根據(jù)計數(shù)值做出規(guī)定反映的控制器。另外,作者所用的實驗儀配備的晶振為50MHZ,因此還需要一個分頻電路。最后,要驅(qū)動七段數(shù)碼管,顯然還需要一個譯碼電路。 </p><p> 圖2.2 交通燈控制器系統(tǒng)框圖</p><p><b> 3 系統(tǒng)設(shè)計</b></p><p> 3.1 計數(shù)器的設(shè)計</p&
10、gt;<p> 這里需要的計數(shù)器的計數(shù)范圍為0~59。計到59后,下一個時鐘沿恢復(fù)到0,開始下一輪計數(shù)。此外,當(dāng)檢測到特殊情況(hold=1)發(fā)生時,計數(shù)器暫停計數(shù),而系統(tǒng)恢復(fù)信號則使計數(shù)器異步清0。</p><p> 3.2 控制器的設(shè)計</p><p> 控制器的作用是根據(jù)計數(shù)器控制發(fā)光二極管的亮、滅,以及輸出倒計時數(shù)值給七段數(shù)譯管的分位譯碼電路。此外,當(dāng)檢測到特殊
11、情況時,無條件點亮紅色的發(fā)光二極管。</p><p> 由于控制器要對于數(shù)值進(jìn)行判斷,很容易想到用IF語句來實現(xiàn)。本設(shè)計采用利用時鐘沿的下降沿讀取前級計數(shù)器的計數(shù)植,然后做出反應(yīng)。</p><p> 圖3.2控制器符號框圖</p><p> 3.3 分位器的設(shè)計</p><p> 因為控制器輸出的倒計時數(shù)值可能是1位或2位十進(jìn)制數(shù),所
12、以在七段數(shù)碼管的譯碼電路前要加上分位電路(即將其分為2個1位的十進(jìn)制數(shù)。(如25分為2和 5,7分為0和7)</p><p> 與控制器一樣,分位電路同樣可以由時鐘驅(qū)動,也可以設(shè)計成純組合邏輯電路??刂破髦校肓思拇嫫?。為了讓讀者開拓眼界,分位電路就用組合邏輯電路實現(xiàn)。</p><p> 3.4 交通燈控制器的頂層原理</p><p> 交通燈控制
13、器的核心范圍是一個計數(shù)范圍為0~59共(60秒)的計數(shù)器和一個根據(jù)計數(shù)值做出規(guī)定反映的控制器。另外,還需要輸入CLK時鐘信號。最后,要驅(qū)動七段數(shù)碼管,顯然還需要一個譯碼電路來完成交通燈控制器的設(shè)計。</p><p> 圖3.4交通燈控制器的頂層原理圖</p><p><b> 4 參考程序</b></p><p> 4.1 計數(shù)器的程序
14、</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cnt120 is</p><p> port(clk,rst,hol
15、d :in std_logic;</p><p> cq :out std_logic_vector(6 downto 0));</p><p> end cnt120;</p><p> architecture behav of cnt120 is</p><p><b> begin</b></p&g
16、t;<p> process(clk,rst,hold)</p><p> variable cqi:std_logic_vector(6 downto 0);</p><p><b> begin</b></p><p> if rst='1' then cqi:=(others=>'0
17、39;);</p><p> elsif clk'event and clk='1' then</p><p> if hold='1' then</p><p> cqi:=cqi+0; ——當(dāng)出現(xiàn)緊急情況時,計數(shù)器暫停計數(shù)</p><p><b> else</b>&l
18、t;/p><p> if cqi<119 then cqi:=cqi+1;</p><p> else cqi:=(others=>'0');</p><p><b> end if;</b></p><p><b> end if;</b></p>&
19、lt;p><b> end if;</b></p><p><b> cq<=cqi;</b></p><p> end process;</p><p> end behav; </p><p> 4.2 控制器的程序</p><p> li
20、brary ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity controller is</p><p><b> port</b></p><p> (clock:in std_logic;</p><p> cou
21、ntnum:in integer range 0 to 119;</p><p> numa,numb:out integer range 0 to 59;</p><p> reda,greena,yellowa,lefta,reda1,greena1,yellowa1,lefta1:out std_logic;</p><p> redb,greenb,y
22、ellowb,leftb,redb1,greenb1,yellowb1,leftb1:out std_logic);</p><p><b> end;</b></p><p> architecture behavior of controller is</p><p><b> begin</b></p&g
23、t;<p> process(clock)</p><p><b> begin</b></p><p> if falling_edge (clock) then</p><p> if countnum<=39 then</p><p> numa<=40-countnum;<
24、;/p><p> reda<='0';</p><p> greena<='1';</p><p> yellowa<='0';</p><p> lefta<='0';</p><p> reda1<='0
25、39;;</p><p> greena1<='1';</p><p> yellowa1<='0';</p><p> lefta1<='0';</p><p> elsif (countnum<=44) then</p><p> n
26、uma<=45-countnum;</p><p> reda<='0';</p><p> greena<='0';</p><p> yellowa<='1';</p><p> lefta<='0';</p><p&
27、gt; reda1<='0';</p><p> greena1<='0';</p><p> yellowa1<='1';</p><p> lefta1<='0';</p><p> elsif (countnum<=59) then&
28、lt;/p><p> numa<=59-countnum;</p><p> reda<='0';</p><p> greena<='0';</p><p> yellowa<='0';</p><p> lefta<='1&
29、#39;; </p><p> reda1<='0';</p><p> greena1<='0';</p><p> yellowa1<='0';</p><p> lefta1<='1'; </p><p><
30、;b> else</b></p><p> numa<=119-countnum;</p><p> reda<='1';</p><p> greena<='0';</p><p> yellowa<='0';</p><
31、p> lefta<='0';</p><p> reda1<='1';</p><p> greena1<='0';</p><p> yellowa1<='0';</p><p> lefta1<='0';</
32、p><p><b> end if;</b></p><p> if countnum<=59 then</p><p> numb<=59-countnum;</p><p> redb<='1';</p><p> greenb<='0
33、39;;</p><p> yellowb<='0';</p><p> leftb<='0';</p><p> redb1<='1';</p><p> greenb1<='0';</p><p> yellowb1&
34、lt;='0';</p><p> leftb1<='0';</p><p> elsif countnum<=99 then</p><p> numb<=100-countnum;</p><p> redb<='0';</p><p>
35、; greenb<='1';</p><p> yellowb<='0';</p><p> leftb<='0';</p><p> redb1<='0';</p><p> greenb1<='1';</p>
36、<p> yellowb1<='0';</p><p> leftb1<='0';</p><p> elsif countnum<=104 then</p><p> numb<=105-countnum;</p><p> redb<='0
37、9;;</p><p> greenb<='0';</p><p> yellowb<='1';</p><p> leftb<='0';</p><p> redb1<='0';</p><p> greenb1<
38、='0';</p><p> yellowb1<='1';</p><p> leftb1<='0';</p><p><b> else</b></p><p> numb<=119-countnum;</p><p>
39、 redb<='0';</p><p> greenb<='0';</p><p> yellowb<='0';</p><p> leftb<='1'; </p><p> redb1<='0';</p>&
40、lt;p> greenb1<='0';</p><p> yellowb1<='0';</p><p> leftb1<='1';</p><p><b> end if;</b></p><p><b> end if;<
41、/b></p><p> end process;</p><p><b> end;</b></p><p> 4.3 分位電路程序</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p>&
42、lt;p> entity fenwei is</p><p> port(numin:in integer range 0 to 60;</p><p> numa:out integer range 0 to 9;</p><p> numb:out integer range 0 to 9);</p><p><b&g
43、t; end;</b></p><p> architecture behavior of fenwei is</p><p><b> begin</b></p><p> process(numin)</p><p><b> begin</b></p>&l
44、t;p> if numin>=50 then</p><p><b> numa<=5;</b></p><p> numb<=numin-50;</p><p> elsif numin>=40 then</p><p><b> numa<=4;</b&g
45、t;</p><p> numb<=numin-40;</p><p> elsif numin>=30 then</p><p><b> numa<=3;</b></p><p> numb<=numin-30;</p><p> elsif numin>
46、;=20 then</p><p><b> numa<=2;</b></p><p> numb<=numin-20;</p><p> elsif numin>=10 then</p><p><b> numa<=1;</b></p><p&
47、gt; numb<=numin-10;</p><p><b> else</b></p><p><b> numa<=0;</b></p><p> numb<=numin;</p><p><b> end if;</b></p>
48、<p> end process;</p><p><b> end;</b></p><p> 4.4 七段譯碼電路的程序</p><p> library ieee; </p><p> use ieee.std_logic_1164.all; </p><p> e
49、ntity ymq is </p><p> port(ain:in std_logic_vector(3 downto 0); </p><p> yout: out std_logic_vector(6 downto 0)); </p><p><b> end; </b></p><p> archit
50、ecture one of ymq is </p><p><b> begin </b></p><p> process(ain) </p><p><b> begin </b></p><p> case ain is </p><p> when &q
51、uot;0000"=> yout<="0111111"; </p><p> when "0001"=> yout<="0000110"; </p><p> when "0010"=> yout<="1011011"; </p>
52、<p> when "0011"=> yout<="1001111"; </p><p> when "0100"=> yout<="1101101"; </p><p> when "0101"=> yout<="11111
53、01"; </p><p> when "0110"=> yout<="0000111"; </p><p> when "0111"=> yout<="1111111"; </p><p> when "1000"=>
54、yout<="1101111"; </p><p> when others => yout<="0000000"; </p><p> end case; </p><p> end process; </p><p><b> end;</b><
55、/p><p> 5 系統(tǒng)調(diào)試與性能分析</p><p> 5.1 交通燈計數(shù)器波形圖</p><p> Clk為輸入頻率,上升沿有效。cq為輸出的計數(shù)值,最大為120。當(dāng)hold為低電平時,cq數(shù)值保持不變,當(dāng)rst為低電平時cq數(shù)值復(fù)位。</p><p> 5.2 控制器的波形圖</p><p> Clock
56、為輸入頻率,當(dāng)下降沿來時有效。Greena到leftb1為東西南北的控制燈亮暗情況。Numa,numb分別為東西,南北的控制燈的倒計時。</p><p> 5.3 分位的波形圖</p><p> Numin的輸入數(shù)值拆成個位numa和百位numb</p><p> 5.4 七段譯碼電路的波形圖</p><p> 譯碼器顧名思義,把qi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda交通燈課程設(shè)計
- eda交通燈課程設(shè)計
- eda交通燈課程設(shè)計報告(eda)
- eda交通燈課程設(shè)計論文
- eda交通燈課程設(shè)計論文
- eda課程設(shè)計--交通燈控制
- eda交通燈課程設(shè)計---交通燈控制系統(tǒng)
- eda交通燈課程設(shè)計---交通燈控制系統(tǒng)的設(shè)計
- eda交通燈課程設(shè)計--cpld實現(xiàn)交通燈控制系統(tǒng)
- 基于sopc交通燈的eda課程設(shè)計
- eda課程設(shè)計--交通燈控制器
- eda課程設(shè)計(交通燈控制器)
- eda課程設(shè)計---交通燈控制器
- eda技術(shù)及應(yīng)用課程設(shè)計---交通燈
- eda課程設(shè)計交通燈控制器
- eda課程設(shè)計交通燈控制器
- eda課程設(shè)計--交通燈控制器設(shè)計
- eda課程設(shè)計--交通燈控制系統(tǒng)設(shè)計
- eda課程設(shè)計報告-- 交通燈控制器
- eda課程設(shè)計---交通燈信號控制器
評論
0/150
提交評論