版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 嵌入式課程設計報告</b></p><p> 設計題目:交通信號燈的設計</p><p><b> 指導老師:</b></p><p><b> 班級:09電子A</b></p><p> 姓名:*** 學號:***</p>
2、<p> 目 錄</p><p> 1 課程設計任務、內容與要求 …………………………………3頁</p><p> 1.1 設計任務…………………………………………………3頁</p><p> 1.2 設計內容…………………………………………………3頁</p><p> 1.3 具體要求…………………………
3、………………………3頁</p><p> 2 系統(tǒng)設計方案 …………………………………………………4頁</p><p> 2.1 設計思路…………………………………………………4頁</p><p> 2.2 系統(tǒng)原理…………………………………………………4頁</p><p> 3 功能模塊及仿真………………………………………………5頁
4、</p><p> 3.1分頻模塊…………………………………………………5頁</p><p> 3.2 交通信號控制模塊………………………………………5頁</p><p> 3.3 顯示控制模塊……………………………………………8頁</p><p> 4 總體設計電路圖 ………………………………………………13頁</p>
5、<p> 5硬件驗證………………………………………………………14頁</p><p> 6總結 …………………………………………………………14頁</p><p> 7 參考書目 ……………………………………………………15頁</p><p><b> 一、任務與要求</b></p><p>
6、 基于嵌入式技術利用VHDL 等硬件描述交通信號燈的系統(tǒng)組成。</p><p><b> (1)基本要求:</b></p><p> a. 設計一個南北方向為主干道,東西方向為支干道的;</p><p> b. 選擇一個標準時鐘發(fā)生電路,為電路提供一個標準1HZ 信號;</p><p> c.(1)交通燈從綠變紅
7、時,有5 秒黃燈亮的間隔時間;</p><p> ?。?)交通燈從紅變綠時,有6 秒間隔時間;</p><p> (3)主干道上的綠燈時間為60 秒,支干道的綠燈時間為35 秒;</p><p> d.在DE2 開發(fā)板上演示其狀態(tài)變化過程。</p><p><b> ?。?)發(fā)揮部分:</b></p>
8、<p> a.在Signal Tap 中顯示指示燈變化的輸出結果仿真波形圖。</p><p> b. 在任意時間顯示每個狀態(tài)到該狀態(tài)結束所需的時間。</p><p><b> 交通燈控制系統(tǒng)框圖</b></p><p><b> 二、設計方案</b></p><p> 用VHDL
9、編寫程序實現(xiàn)交通信號控制器的端口控制信號。其中, clk為標準的1HZ的時鐘信號;R為復位信號;SPC為緊急情況信號,負責緊急情況的處理,當緊急情況發(fā)生時,南北主干道和東西支干道均顯示紅燈。</p><p> 該程序定義了4個狀態(tài)S0,S1,S2,S3。當狀態(tài)為S0時,南北方向亮綠燈,東西方向亮紅燈60s;當為狀態(tài)為S1時,南北方向亮黃燈,東西方向亮紅5s ;當狀態(tài)為S2時,南北方向亮紅燈,東西方向綠燈35s;
10、當狀態(tài)為S3時,南北方向亮滅燈,東西方向滅燈6s;程序還設計了一個緊急信號情況,當遭遇緊急情況時,主干道和支干道都亮紅燈。</p><p> 狀態(tài)一:主道綠燈次道綠燈持續(xù)時間小于65s時,狀態(tài)保持不變,若持續(xù)時間等于65s時,轉換到下一狀態(tài)黃燈。</p><p> 狀態(tài)二:主道黃燈持續(xù)時間小于5s時,狀態(tài)保持不變,若持續(xù)時間等于5s時,轉換到下一狀態(tài)紅燈。</p><
11、;p> 狀態(tài)三:主道黃燈次道紅燈持續(xù)時間小于35s時,狀態(tài)保持不變,若持續(xù)時間等于35s時,轉換到下一狀態(tài)滅燈。</p><p> 狀態(tài)四:主道滅燈持續(xù)時間小于46s時,狀態(tài)保持不變,若持續(xù)時間等于6s時,轉換到下一狀態(tài)綠燈。</p><p> 狀態(tài)五:緊急情況都亮紅燈。 </p><p><b> 三、功能模塊</b></
12、p><p><b> 模塊一 :分頻器</b></p><p> 分頻器實現(xiàn)的是將高頻時鐘信號轉換成低頻時鐘信號,clk信號經(jīng)分頻器將50MHz經(jīng)過PLL分頻為25MHz在經(jīng)過計數(shù)器分為1HZ. </p><p> 分頻器模塊(div)</p><p><b> VHDL源程序:</b><
13、/p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity div is</p><p> port(clk3:IN std_logic;
14、</p><p> clkout1:OUT std_logic);</p><p><b> end div;</b></p><p> architecture one of div is</p><p><b> begin</b></p><p> proce
15、ss(clk3)</p><p> variable cnt:integer range 0 to 1250;</p><p> variable tmp:std_logic;</p><p><b> begin</b></p><p> if(clk3'event and clk3='1
16、9;)then</p><p> if cnt>=1249 then</p><p><b> cnt:=0;</b></p><p> tmp:=not tmp;</p><p> else cnt:=cnt+1;</p><p><b> end if;</b&
17、gt;</p><p><b> end if;</b></p><p> clkout1<=tmp;</p><p> end process;</p><p><b> end one;</b></p><p><b> 時序仿真圖:</b
18、></p><p><b> 模塊二: 控制器</b></p><p> 控制器的作用是根據(jù)計數(shù)器計數(shù)的值確定狀態(tài)轉換。本控制器的設計方法是利用時鐘沿的上升沿讀取前級計數(shù)器的計數(shù)值,然后做出反應。主要控制紅、綠、黃燈的亮、滅。</p><p><b> VHDL源程序:</b></p><p
19、> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH;</p><p> ENTITY jiaotongd1 IS<
20、/p><p> PORT (CLK,R,SPC: IN STD_LOGIC; --時鐘、復位、特殊情況</p><p> LIGHT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0); --light:G1,R1,Y1,G2,R2,Y2;</p><p> Q1,Q2 : OUT INTEGER RANGE 0 TO 65);&
21、lt;/p><p> END jiaotongd1 ;</p><p> ARCHITECTURE behav OF jiaotongd1 IS</p><p> TYPE STATES IS (S0,S1,S2,S3); --定義枚舉</p><p> SIGNAL STATE : STATES ;</p><
22、p> SIGNAL T1,T2: INTEGER RANGE 0 TO 65;</p><p><b> BEGIN </b></p><p> P1: PROCESS (CLK,STATE)</p><p><b> BEGIN</b></p><p> IF R='1&
23、#39;THEN STATE<=S0;T1<=60;T2<=65; --復位</p><p> ELSIF SPC='1' THEN LIGHT<="010010"; --特殊情況亮紅燈</p><p> ELSIF CLK'EVENT AND CLK='1' THEN
24、 </p><p> CASE STATE IS</p><p> --states為s0時,南北方向亮綠燈,東西方向亮紅燈,60s</p><p> WHEN S0=> LIGHT<="100010"; </p><p> T1<=T1-1;T2<=T2-1; </p&g
25、t;<p> Q1<=T1;Q2<=T2;</p><p> IF T1=0 THEN</p><p> STATE<=S1;T1<=4;T2<=4;</p><p><b> END IF;</b></p><p> --states為s1時,南北方向亮黃燈,東西方
26、向亮紅,5s </p><p> WHEN S1=> LIGHT<="001010"; </p><p> T1<=T1-1;T2<=T2-1; </p><p> Q1<=T1;Q2<=T2;</p><p> IF T1=0 THEN</p><p>
27、; STATE<=S2;T1<=35;T2<=35;</p><p><b> END IF; </b></p><p> --states為s2時,南北方向亮紅燈,東西方向綠燈,35s </p><p> WHEN S2=> LIGHT<="010100";
28、 </p><p> T1<=T1-1;T2<=T2-1; </p><p> Q1<=T1;Q2<=T2;</p><p> IF T2=0 THEN</p><p> STATE<=S3;T1<=6;T2<=6;</p><p> END IF; &
29、lt;/p><p> --南北方向同時滅燈6s </p><p> WHEN S3=> LIGHT<="000000"; </p><p> T1<=T1-1;T2<=T2-1; </p><p> Q1<=T1;Q2<=T2;&
30、lt;/p><p> IF T1=0 THEN</p><p> STATE<=S0;T1<=60;T2<=65;</p><p><b> END IF;</b></p><p> WHEN OTHERS=>STATE<=S0;T1<=60;T2<=65;--主干道<
31、/p><p><b> END CASE;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END behav;</p><p><b> 時序仿真圖:</b></p&g
32、t;<p> 模塊三: 顯示控制電路</p><p> 譯碼首先是將二進制無符號數(shù)轉化為BCD碼,在把BCD碼經(jīng)過譯碼電路轉換數(shù)碼管顯示:</p><p><b> VHDL源程序:</b></p><p><b> 二進制轉化BCD:</b></p><p> LIBRA
33、RY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.all;</p><p> ENTITY yima2 IS</p><
34、p> PORT (datain: IN STD_LOGIC_VECTOR(6 DOWNTO 0); --時鐘、復位、特殊情況</p><p> --light:G1,R1,Y1,G2,R2,Y2;</p><p> daout: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p> END yima2 ;<
35、;/p><p> ARCHITECTURE behav OF yima2 IS</p><p><b> begin</b></p><p> PROCESS(datain)</p><p><b> BEGIN</b></p><p> case datain is&
36、lt;/p><p> when "0000000"=>daout<="00000000";</p><p> when "0000001"=>daout<="00000001";</p><p> when "0000010"=>dao
37、ut<="00000010";</p><p> when "0000011"=>daout<="00000011";</p><p> when "0000100"=>daout<="00000100";</p><p> whe
38、n "0000101"=>daout<="00000101";</p><p> when "0000110"=>daout<="00000110";</p><p> when "0000111"=>daout<="00000111&quo
39、t;;</p><p> when "0001000"=>daout<="00001000";</p><p> when "0001001"=>daout<="00001001";--9</p><p> when "0001010"=
40、>daout<="00010000";</p><p> when "0001011"=>daout<="00010001";</p><p> when "0001100"=>daout<="00010010";</p><p&g
41、t; when "0001101"=>daout<="00010011";</p><p> when "0001110"=>daout<="00010100";</p><p> when "0001111"=>daout<="00010
42、101";</p><p> when "0010000"=>daout<="00010110";</p><p> when "0010001"=>daout<="00010111";</p><p> when "0010010&qu
43、ot;=>daout<="00011000";</p><p> when "0010011"=>daout<="00011001";--19</p><p> when "0010100"=>daout<="00100000";</p>
44、<p> when "0010101"=>daout<="00100001";</p><p> when "0010110"=>daout<="00100010";</p><p> when "0010111"=>daout<=&qu
45、ot;00100011";</p><p> when "0011000"=>daout<="00100100";</p><p> when "0011001"=>daout<="00100101";</p><p> when "00
46、11010"=>daout<="00100110";</p><p> when "0011011"=>daout<="00100111";</p><p> when "0011100"=>daout<="00101000";</p&
47、gt;<p> when "0011101"=>daout<="00101001";--29</p><p> when "0011110"=>daout<="00110000";--30</p><p> when "0011111"=>d
48、aout<="00110001";</p><p> when "0100000"=>daout<="00110010";</p><p> when "0100001"=>daout<="00110011";</p><p> w
49、hen "0100010"=>daout<="00110100";</p><p> when "0100011"=>daout<="00110101";</p><p> when "0100100"=>daout<="00110110&q
50、uot;;</p><p> when "0100101"=>daout<="00110111";</p><p> when "0100110"=>daout<="00111000";</p><p> when "0100111"=&
51、gt;daout<="00111001";--39</p><p> when "0101000"=>daout<="01000000";</p><p> when "0101001"=>daout<="01000001";</p><
52、p> when "0101010"=>daout<="01000010";</p><p> when "0101011"=>daout<="01000011";</p><p> when "0101100"=>daout<="01
53、000100";</p><p> when "0101101"=>daout<="01000101";</p><p> when "0101110"=>daout<="01000110";</p><p> when "0101111
54、"=>daout<="01000111";</p><p> when "0110000"=>daout<="01001000";</p><p> when "0110001"=>daout<="01001001";--49</p&g
55、t;<p> when "0110010"=>daout<="01010000";</p><p> when "0110011"=>daout<="01010001";</p><p> when "0110100"=>daout<=
56、"01010010";</p><p> when "0110101"=>daout<="01010011";</p><p> when "0110110"=>daout<="01010100";</p><p> when "
57、;0110111"=>daout<="01010101";</p><p> when "0111000"=>daout<="01010110";</p><p> when "0111001"=>daout<="01010111";<
58、/p><p> when "0111010"=>daout<="01011000";</p><p> when "0111011"=>daout<="01011001";--59</p><p> when "0111100"=>da
59、out<="01100000";--60</p><p> when "0111101"=>daout<="01100001";</p><p> when "0111110"=>daout<="01100010";</p><p>
60、 when "0111111"=>daout<="01100011";</p><p> when "1000000"=>daout<="01100100";</p><p> when "1000001"=>daout<="0110010
61、1";--65</p><p> when others=>daout<="11111111";</p><p><b> END CASE;</b></p><p> END PROCESS;</p><p> END behav;</p><p&g
62、t;<b> BCD譯碼顯示:</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH
63、.all;</p><p> ENTITY yima IS</p><p> PORT (datain: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --時鐘、復位、特殊情況</p><p> --datain2: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> dao
64、ut1: OUT STD_LOGIC_VECTOR( 6 DOWNTO 0); --light:G1,R1,Y1,G2,R2,Y2;</p><p> daout2: OUT STD_LOGIC_VECTOR( 6 DOWNTO 0));</p><p> END yima ;</p><p> ARCHITECTURE behav OF yima I
65、S</p><p><b> begin</b></p><p> PROCESS(datain)</p><p><b> BEGIN</b></p><p> case datain(7 downto 4) is</p><p> when "0000
66、"=>daout1<="1000000";</p><p> when "0001"=>daout1<="1111001";</p><p> when "0010"=>daout1<="0100100";</p><p&
67、gt; when "0011"=>daout1<="0110000";</p><p> when "0100"=>daout1<="0011001";</p><p> when "0101"=>daout1<="0010010"
68、;;</p><p> when "0110"=>daout1<="0000010";</p><p> when "0111"=>daout1<="1111000";</p><p> when "1000"=>daout1<
69、;="0000000";</p><p> when "1001"=>daout1<="0010000";</p><p> when others=>daout1<="0000000";</p><p><b> END CASE;</b&
70、gt;</p><p> case datain(3 downto 0) is</p><p> when "0000"=>daout2<="1000000";</p><p> when "0001"=>daout2<="1111001";</p&g
71、t;<p> when "0010"=>daout2<="0100100";</p><p> when "0011"=>daout2<="0110000";</p><p> when "0100"=>daout2<="00
72、11001";</p><p> when "0101"=>daout2<="0010010";</p><p> when "0110"=>daout2<="0000010";</p><p> when "0111"=>
73、;daout2<="1111000";</p><p> when "1000"=>daout2<="0000000";</p><p> when "1001"=>daout2<="0010000";</p><p> when
74、others=>daout2<="0000000";</p><p><b> END CASE;</b></p><p> END PROCESS;</p><p> END behav;</p><p><b> 四、總體設計電路圖</b></p&g
75、t;<p> 交通燈控制系統(tǒng)總體電路圖</p><p><b> 部分管腳分配圖</b></p><p><b> 五、硬件驗證:</b></p><p> 輸入CLK接50MHZ的晶振,輸出G1、Y1、R1、G2、Y2、R2分別接到6個發(fā)光二極管上,從而可以顯示主道以及次道之間的紅綠燈亮滅的狀態(tài)。數(shù)
76、碼管依次顯示倒計時時間;結果正確,滿足要求。</p><p><b> 六、總結</b></p><p> 通過這次實訓,我們在程序的功能,源程序修改以及最后的硬件調試波形仿真中取得了更深一步的成就,通過理論結合實際進行不斷地修改、討論。填補了我們在這一方面的不足,當最后結果出來的時候,我們心比蜜甜,通過這次實訓,我們在實踐中學會了很多在平時的實驗中無法學到得東西
77、。將使我們在以后的工作中受益匪淺。</p><p><b> 七、參考書目:</b></p><p> 1、PLD與數(shù)字系統(tǒng)設計 李輝編著 西安電子科技大學出版社,2005</p><p> 2、《數(shù)字電子技術基礎》(第四版),閻石主編,高教出版社</p><p> 3、候伯亨、顧新《VHDL硬件描述語言與數(shù)字邏
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈課程設計--簡易交通信號燈
- 交通燈課程設計--交通信號燈的設計
- 交通燈課程設計---交通信號燈的設計
- 交通燈課程設計-- 交通信號燈系統(tǒng)設計
- 交通燈課程設計--- 交通信號燈控制的設計
- 微機原理交通燈課程設計---交通信號燈的設計
- 交通信號燈課程設計---交通信號燈系統(tǒng)設計
- 交通燈課程設計--交通信號燈控制器的設計
- eda交通燈課程設計--交通信號燈控制電路
- plc交通燈課程設計--交通信號燈控制系統(tǒng)的設計
- 交通信號燈課程設計--基于單片機的交通燈設計
- 交通信號燈課程設計--交通信號燈控制電路的設計
- 數(shù)電交通燈課程設計---交通信號燈控制器設計
- 課程設計交通信號燈
- 交通信號燈課程設計
- 數(shù)電交通燈課程設計--交通信號燈控制器的設計
- 交通信號燈課程設計
- 交通信號燈課程設計
- 交通信號燈課程設計
- 交通信號燈課程設計7
評論
0/150
提交評論