版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 嵌入式課程設(shè)計(jì)報(bào)告</b></p><p> 設(shè)計(jì)題目:交通信號(hào)燈的設(shè)計(jì)</p><p><b> 指導(dǎo)老師:</b></p><p><b> 班級(jí):09電子A</b></p><p> 姓名:*** 學(xué)號(hào):***</p>
2、<p> 目 錄</p><p> 1 課程設(shè)計(jì)任務(wù)、內(nèi)容與要求 …………………………………3頁</p><p> 1.1 設(shè)計(jì)任務(wù)…………………………………………………3頁</p><p> 1.2 設(shè)計(jì)內(nèi)容…………………………………………………3頁</p><p> 1.3 具體要求…………………………
3、………………………3頁</p><p> 2 系統(tǒng)設(shè)計(jì)方案 …………………………………………………4頁</p><p> 2.1 設(shè)計(jì)思路…………………………………………………4頁</p><p> 2.2 系統(tǒng)原理…………………………………………………4頁</p><p> 3 功能模塊及仿真………………………………………………5頁
4、</p><p> 3.1分頻模塊…………………………………………………5頁</p><p> 3.2 交通信號(hào)控制模塊………………………………………5頁</p><p> 3.3 顯示控制模塊……………………………………………8頁</p><p> 4 總體設(shè)計(jì)電路圖 ………………………………………………13頁</p>
5、<p> 5硬件驗(yàn)證………………………………………………………14頁</p><p> 6總結(jié) …………………………………………………………14頁</p><p> 7 參考書目 ……………………………………………………15頁</p><p><b> 一、任務(wù)與要求</b></p><p>
6、 基于嵌入式技術(shù)利用VHDL 等硬件描述交通信號(hào)燈的系統(tǒng)組成。</p><p><b> ?。?)基本要求:</b></p><p> a. 設(shè)計(jì)一個(gè)南北方向?yàn)橹鞲傻?,東西方向?yàn)橹Ц傻赖模?lt;/p><p> b. 選擇一個(gè)標(biāo)準(zhǔn)時(shí)鐘發(fā)生電路,為電路提供一個(gè)標(biāo)準(zhǔn)1HZ 信號(hào);</p><p> c.(1)交通燈從綠變紅
7、時(shí),有5 秒黃燈亮的間隔時(shí)間;</p><p> ?。?)交通燈從紅變綠時(shí),有6 秒間隔時(shí)間;</p><p> ?。?)主干道上的綠燈時(shí)間為60 秒,支干道的綠燈時(shí)間為35 秒;</p><p> d.在DE2 開發(fā)板上演示其狀態(tài)變化過程。</p><p><b> ?。?)發(fā)揮部分:</b></p>
8、<p> a.在Signal Tap 中顯示指示燈變化的輸出結(jié)果仿真波形圖。</p><p> b. 在任意時(shí)間顯示每個(gè)狀態(tài)到該狀態(tài)結(jié)束所需的時(shí)間。</p><p><b> 交通燈控制系統(tǒng)框圖</b></p><p><b> 二、設(shè)計(jì)方案</b></p><p> 用VHDL
9、編寫程序?qū)崿F(xiàn)交通信號(hào)控制器的端口控制信號(hào)。其中, clk為標(biāo)準(zhǔn)的1HZ的時(shí)鐘信號(hào);R為復(fù)位信號(hào);SPC為緊急情況信號(hào),負(fù)責(zé)緊急情況的處理,當(dāng)緊急情況發(fā)生時(shí),南北主干道和東西支干道均顯示紅燈。</p><p> 該程序定義了4個(gè)狀態(tài)S0,S1,S2,S3。當(dāng)狀態(tài)為S0時(shí),南北方向亮綠燈,東西方向亮紅燈60s;當(dāng)為狀態(tài)為S1時(shí),南北方向亮黃燈,東西方向亮紅5s ;當(dāng)狀態(tài)為S2時(shí),南北方向亮紅燈,東西方向綠燈35s;
10、當(dāng)狀態(tài)為S3時(shí),南北方向亮滅燈,東西方向滅燈6s;程序還設(shè)計(jì)了一個(gè)緊急信號(hào)情況,當(dāng)遭遇緊急情況時(shí),主干道和支干道都亮紅燈。</p><p> 狀態(tài)一:主道綠燈次道綠燈持續(xù)時(shí)間小于65s時(shí),狀態(tài)保持不變,若持續(xù)時(shí)間等于65s時(shí),轉(zhuǎn)換到下一狀態(tài)黃燈。</p><p> 狀態(tài)二:主道黃燈持續(xù)時(shí)間小于5s時(shí),狀態(tài)保持不變,若持續(xù)時(shí)間等于5s時(shí),轉(zhuǎn)換到下一狀態(tài)紅燈。</p><
11、;p> 狀態(tài)三:主道黃燈次道紅燈持續(xù)時(shí)間小于35s時(shí),狀態(tài)保持不變,若持續(xù)時(shí)間等于35s時(shí),轉(zhuǎn)換到下一狀態(tài)滅燈。</p><p> 狀態(tài)四:主道滅燈持續(xù)時(shí)間小于46s時(shí),狀態(tài)保持不變,若持續(xù)時(shí)間等于6s時(shí),轉(zhuǎn)換到下一狀態(tài)綠燈。</p><p> 狀態(tài)五:緊急情況都亮紅燈。 </p><p><b> 三、功能模塊</b></
12、p><p><b> 模塊一 :分頻器</b></p><p> 分頻器實(shí)現(xiàn)的是將高頻時(shí)鐘信號(hào)轉(zhuǎn)換成低頻時(shí)鐘信號(hào),clk信號(hào)經(jīng)分頻器將50MHz經(jīng)過PLL分頻為25MHz在經(jīng)過計(jì)數(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> 時(shí)序仿真圖:</b
18、></p><p><b> 模塊二: 控制器</b></p><p> 控制器的作用是根據(jù)計(jì)數(shù)器計(jì)數(shù)的值確定狀態(tài)轉(zhuǎn)換。本控制器的設(shè)計(jì)方法是利用時(shí)鐘沿的上升沿讀取前級(jí)計(jì)數(shù)器的計(jì)數(shù)值,然后做出反應(yīng)。主要控制紅、綠、黃燈的亮、滅。</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; --時(shí)鐘、復(fù)位、特殊情況</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; --復(fù)位</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時(shí),南北方向亮綠燈,東西方向亮紅燈,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時(shí),南北方向亮黃燈,東西方
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時(shí),南北方向亮紅燈,東西方向綠燈,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> --南北方向同時(shí)滅燈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> 時(shí)序仿真圖:</b></p&g
32、t;<p> 模塊三: 顯示控制電路</p><p> 譯碼首先是將二進(jìn)制無符號(hào)數(shù)轉(zhuǎn)化為BCD碼,在把BCD碼經(jīng)過譯碼電路轉(zhuǎn)換數(shù)碼管顯示:</p><p><b> VHDL源程序:</b></p><p><b> 二進(jìn)制轉(zhuǎn)化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); --時(shí)鐘、復(fù)位、特殊情況</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); --時(shí)鐘、復(fù)位、特殊情況</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> 四、總體設(shè)計(jì)電路圖</b></p&g
75、t;<p> 交通燈控制系統(tǒng)總體電路圖</p><p><b> 部分管腳分配圖</b></p><p><b> 五、硬件驗(yàn)證:</b></p><p> 輸入CLK接50MHZ的晶振,輸出G1、Y1、R1、G2、Y2、R2分別接到6個(gè)發(fā)光二極管上,從而可以顯示主道以及次道之間的紅綠燈亮滅的狀態(tài)。數(shù)
76、碼管依次顯示倒計(jì)時(shí)時(shí)間;結(jié)果正確,滿足要求。</p><p><b> 六、總結(jié)</b></p><p> 通過這次實(shí)訓(xùn),我們?cè)诔绦虻墓δ埽闯绦蛐薷囊约白詈蟮挠布{(diào)試波形仿真中取得了更深一步的成就,通過理論結(jié)合實(shí)際進(jìn)行不斷地修改、討論。填補(bǔ)了我們?cè)谶@一方面的不足,當(dāng)最后結(jié)果出來的時(shí)候,我們心比蜜甜,通過這次實(shí)訓(xùn),我們?cè)趯?shí)踐中學(xué)會(huì)了很多在平時(shí)的實(shí)驗(yàn)中無法學(xué)到得東西
77、。將使我們?cè)谝院蟮墓ぷ髦惺芤娣藴\。</p><p><b> 七、參考書目:</b></p><p> 1、PLD與數(shù)字系統(tǒng)設(shè)計(jì) 李輝編著 西安電子科技大學(xué)出版社,2005</p><p> 2、《數(shù)字電子技術(shù)基礎(chǔ)》(第四版),閻石主編,高教出版社</p><p> 3、候伯亨、顧新《VHDL硬件描述語言與數(shù)字邏
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈課程設(shè)計(jì)--簡易交通信號(hào)燈
- 交通燈課程設(shè)計(jì)--交通信號(hào)燈的設(shè)計(jì)
- 交通燈課程設(shè)計(jì)---交通信號(hào)燈的設(shè)計(jì)
- 交通燈課程設(shè)計(jì)-- 交通信號(hào)燈系統(tǒng)設(shè)計(jì)
- 交通燈課程設(shè)計(jì)--- 交通信號(hào)燈控制的設(shè)計(jì)
- 微機(jī)原理交通燈課程設(shè)計(jì)---交通信號(hào)燈的設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)---交通信號(hào)燈系統(tǒng)設(shè)計(jì)
- 交通燈課程設(shè)計(jì)--交通信號(hào)燈控制器的設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)--交通信號(hào)燈控制電路
- 交通信號(hào)燈課程設(shè)計(jì)--基于單片機(jī)的交通燈設(shè)計(jì)
- plc交通燈課程設(shè)計(jì)--交通信號(hào)燈控制系統(tǒng)的設(shè)計(jì)
- 數(shù)電交通燈課程設(shè)計(jì)---交通信號(hào)燈控制器設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)--交通信號(hào)燈控制電路的設(shè)計(jì)
- 課程設(shè)計(jì)交通信號(hào)燈
- 交通信號(hào)燈課程設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)
- 數(shù)電交通燈課程設(shè)計(jì)--交通信號(hào)燈控制器的設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)7
評(píng)論
0/150
提交評(píng)論