




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、2021級學生EDA課程設計 EDA課程設計報告書課題名稱 基于EDA的交通燈控制系統(tǒng)設計姓 名陳 勇學 號 0812201-08 院 系物理與電信工程系專 業(yè)電子信息工程指導教師田旺蘭 講師2011年 6月10日 一、設計任務及要求:設計任務: 設計一個具有四種信號燈的交通燈控制器。要 求: 1由一條主干道和一條支干道集合成十字路口,在每個入口處設置紅、綠、黃、左拐允許四盞信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮那么給行駛中的車輛有時間停在禁行線外,左拐燈亮允許車輛向左拐彎。2信號燈變換次序為:主支干道交替允許通行,主干道每次放行40秒,亮5秒紅燈讓行駛中的車輛有時間停到禁行線外,左拐
2、放行15秒,亮5秒紅燈;支干道放行30秒,亮5秒黃燈,左拐放行15秒,亮5秒紅燈。各計時電路為倒計時顯示。指導教師簽名: 2021 年 月 日 二、指導教師評語:指導教師簽名: 2021 年 月 日 三、成績驗收蓋章 2021 年 月 日 基于EDA的交通燈控制系統(tǒng)設計1 設計目的1掌握十字路口交通燈控制的設計原理,并能夠運用VHDL編程語言編寫出實驗程序,進一步對所學的EDA知識進行掌握與實際應用。2學會在quartusII軟件環(huán)境中仿真,熟悉軟件的根本操作和運行環(huán)境。3鍛煉自己獲取信息的能力,以及能夠獨立自主的思考和解決問題的能力。2設計的主要內(nèi)容和要求設計一個基于EDA的交通燈控制系統(tǒng),
3、所要設計的交通信號燈控制電路要能夠適用于由一條主干道和一條支干道的集合點形成的十字交叉路口。能夠做到主、支干道的紅綠燈閃亮的時間不完全相同,在綠燈跳變紅燈的過程中能夠用黃燈進行過渡,使得行駛過程中的車輛有足夠的時間停下來。還要求在主、支干道各設立一組計時顯示器,能夠顯示相應的紅、黃、綠倒計時??梢岳肰HDL語言合理設計系統(tǒng)功能,使紅黃綠燈的轉換有一個準確的時間間隔和轉換順序。3 整體設計方案根據(jù)設計要求和系統(tǒng)所具有功能,并參考相關的文獻資料,經(jīng)行方案設計,畫出如下所示的十字路口交通燈控制器系統(tǒng)框圖,及為設計的總體方案,框圖如圖3.1所示。并且可以得出系統(tǒng)的狀態(tài)圖如圖3.2所示,其中:S0:支
4、干道沒有車輛行駛,支干道綠燈,支干道紅燈S1:支干道有車輛行駛,支干道綠燈,支干道紅燈S2:主干道黃燈,支干道綠燈S3:主干道紅燈,支干道綠燈S4:主干道紅燈,支干道黃燈CLK時鐘分頻模塊交通燈控制及計時模塊掃描顯示模塊LED顯示數(shù)碼管位碼數(shù)碼管段碼圖3.1 整體設計方框圖 圖3.2 系統(tǒng)狀態(tài)圖4 硬件電路的設計4.1 頂層文件原理圖 根據(jù)以上設計思路,可以得到如下的頂層文件原理圖如4.1所示,具體實物模塊如圖4.2所示。 圖分頻器模塊4.2時鐘分頻器模塊設計分頻器實現(xiàn)的是將高頻時鐘信號轉換成低頻時鐘信號,用于觸發(fā)控制器、計數(shù)器和掃描顯示電路。系統(tǒng)的動態(tài)掃描需要1HZ的脈沖,而系統(tǒng)時鐘計時模塊
5、需要1HZ的脈沖。分頻模塊主要為系統(tǒng)提供所需的時鐘計時脈沖。該模塊將1kHZ的脈沖信號進行分頻,產(chǎn)生1S的方波,作為系統(tǒng)時鐘計時信號。具體實物模塊如圖4.3所示。4.3控制及計時模塊設計控制模塊根據(jù)外部輸入信號和計時模塊產(chǎn)生的輸出信號,產(chǎn)生系統(tǒng)的狀態(tài)機,控制其他局部協(xié)調(diào)工作。計時模塊用來設定主干道和支干道計時器的初值,并為掃描顯示譯碼模塊提供倒計時時間??刂萍坝嫊r模塊采用狀態(tài)機進行設計,可以定義出5種狀態(tài),分別為S0:主干道綠燈,支干道紅燈且沒有車輛行駛;S1:主干道綠燈,支干道紅燈或支干道有車輛駛入;S2:主干道黃燈,支干道紅燈;S3:主干道紅燈,支干道綠燈;S4:主干道紅燈,支干道黃燈。利
6、用CASE語句定義狀態(tài)的轉換方式及時間的變換方式,到達主干道綠燈亮45秒,支干道綠燈亮25秒,黃燈亮5秒的設計要求。具體實物模塊如圖4.4所示,其中:CAR為支干道車輛檢測開關在支干道有車的情況下,模塊可以進行減計時CLK1S為1S的時鐘脈沖TIME1H、TIME1L、TIME2H、TIME2L分別為主干道時鐘高位、主干道時鐘低位、支干道時鐘高位、支干道時鐘低位LED為LED燈發(fā)光情況,分別為主干道綠燈、主干道黃燈、主干道紅燈、支干道綠燈、主干道黃燈、主干道紅燈 Count的總的系統(tǒng)時間,用來改變系統(tǒng)的狀態(tài)4.4 譯碼顯示電路設計根據(jù)狀態(tài)控制器所控制的狀態(tài)和計數(shù)器的計時時間,選擇當前狀態(tài)下的根
7、據(jù)狀態(tài)控制器所控制的狀態(tài)和計數(shù)器的計時時間,選擇當前狀態(tài)下的采用動態(tài)掃描顯示。具體實物模塊如圖4.5所示。 譯碼顯示電路模塊4.5 頂層文件的編寫將以上各個單元模塊仿真成功后,再進行頂層文件的編寫。將各個單元模塊的變量賦值給頂層文件,從而將各個單元模塊連接起來,統(tǒng)一調(diào)配。得到頂層文件的實體模塊如圖4.2所示。其中:CLK為1KHZ系統(tǒng)時鐘脈沖CAR為支干道車輛行駛情況,高電平為有車行駛,低電平為無車行駛LED為交通燈發(fā)光情況SEL為數(shù)碼管位碼掃描SEG為數(shù)碼管段碼5 軟件設計5.1 時鐘分頻模塊:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE
8、.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISPORT(clk:IN STD_LOGIC; CLK1S:OUT STD_LOGIC);END fp;ARCHITECTURE one OF fp ISSIGNAL N: STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(clk)BEGIN IF clk'EVENT AND clk='1' THEN N<=N+1;END IF;END PROCESS;CLK1S<=N(9);END one;5.2 交通燈控制及計時模塊:LIBRARY IEEE;USE
9、IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY kz ISPORT(CLK1S,car:IN STD_LOGIC;-1S脈沖,支干道車輛檢測TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-支干道計時TIME2H,TIME2L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-支干道計時count:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -系統(tǒng)總計時led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -
10、交通燈顯示END KZ;ARCHITECTURE one OF kz ISTYPE states IS (s0,s1,s2,s3,s4,s5); -狀態(tài)初始化SIGNAL current_state,next_state :states;SIGNAL c:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINREG:PROCESS(CLK1S,car,current_state,c)BEGINIF car ='0'THEN current_state <= s0;c<="0000000"ELSEIF CLK1S'EVENT
11、AND CLK1S ='1' THEN -支干道有車開始計數(shù)c <=c+1;current_state <=next_state;END IF;END IF;CASE current_state IS -狀態(tài)轉換WHEN s0 => LED <="100001" -支干道無車不減計時TIME1H<="0100"TIME1L<="0101"TIME2H<="0101"TIME2L<="0000"IF car = '1'
12、 THEN next_state <= s1;ELSE next_state <= s0;END IF;WHEN s1 => LED <="100001" -主干道綠燈,支干道紅燈IF c="0101100" THEN next_state <= s2;ELSE next_state <= s1;END IF;WHEN s2 => LED <="010001" -主干道黃燈,支干道紅燈IF c="0110001" THEN next_state <= s3;EL
13、SE next_state <=s2;END IF;WHEN s3 => LED <="001100" -主干道紅燈,支干道綠燈IF c="1001010" THEN next_state <= s4;ELSE next_state <= s3;END IF;WHEN s4 => LED <="001010" -支干道黃燈,主干道紅燈IF c="0110001" THEN next_state <= s5;ELSE next_state <=s4;END IF;
14、WHEN OTHERS => LED <="100001" next_state <= s0;END CASE;IF c="0101101" THEN TIME1H<="0000"TIME1L<="0101" -系統(tǒng)時間為45,主干道黃燈計時5秒END IF;IFc="0110010" THENTIME1H<="0011"TIME1L<="0000"TIME2H<="0010"TIME2L
15、<="0101"-系統(tǒng)時間為50,主干道計時30秒,支干道計時25秒END IF;IF c="1001011" THEN TIME2H<="0000"TIME2L<="0101"-系統(tǒng)時間為75,支干道黃燈計時5秒END IF;IFc="1010000"THENTIME1H<="0100"TIME1L<="0000"TIME2H<="0101"TIME2L<="0101"-系
16、統(tǒng)時間為80,主干道計時45秒,支干道計時50秒END IF;IF c="1010000" THEN c<="0000000" -系統(tǒng)時間清零END IF;END PROCESS REG;count <=c;END one;5.3 掃描顯示譯碼器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY xs ISPORT(clk,CLK1S,car:IN STD_LOGIC; TIM
17、E1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -主干道置數(shù) TIME2H,TIME2L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -支干道置數(shù) count:IN STD_LOGIC_VECTOR(6 DOWNTO 0); -計數(shù)信號 sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -數(shù)碼管位碼 seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -數(shù)碼管段碼END xs;ARCHITECTURE one OF xs ISSIGNAL num:STD_LOGIC_VECTOR(3
18、 DOWNTO 0);SIGNAL numsel:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL numseg:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL Q1,Q2,Q3,Q4:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSM:PROCESS (clk,num,numsel) -掃描BEGINIF clk'EVENT AND clK='1' THEN numsel<=numsel+1;IF numsel="011" THEN numsel<="000&
19、quot;END IF;END IF;END PROCESS SM;WX:PROCESS (numsel,Q1,Q2,Q3,Q4) -位選BEGINCASE numsel ISWHEN"011" =>num<=Q4;WHEN"010" =>num<=Q3;WHEN"001" =>num<=Q2;WHEN"000" =>num<=Q1;WHEN OTHERS =>NULL;END CASE;END PROCESS WX;ZS:PROCESS(CLK1S,car,Q
20、1,Q2,Q3,Q4,num,TIME1H,TIME1L,TIME2H,TIME2L)-數(shù)碼管置數(shù)BEGINIF car ='1' THENIF CLK1S'EVENT AND CLK1S='1' THENIF Q2>"0000" THEN Q2<=Q2-1;ELSEIF Q1>"0000" THEN Q1<=Q1-1;Q2<="1001" -減計時END IF;END IF;IF Q4>"0000" THEN Q4<=Q4-1;EL
21、SEIF Q3>"0000" THEN Q3<=Q3-1;Q4<="1001"END IF;END IF;END IF;IF Q1="0000" AND Q2="0000" THEN Q1<=TIME1H;Q2<=TIME1L;END IF;IF Q3="0000" AND Q4="0000" THEN Q3<=TIME2H;Q4<=TIME2L;END IF;ELSE Q1<=TIME1H;Q2<=TIME1L; -支路
22、無車輛不減計時 Q3<=TIME2H;Q4<=TIME2L;END IF;END PROCESS ZS;YM:PROCESS (num,numseg)BEGINCASE num ISWHEN "0000"=>numseg<="1111110"WHEN "0001"=>numseg<="0110000"WHEN "0010"=>numseg<="1101101"WHEN "0011"=>numseg<
23、;="1111001"WHEN "0100"=>numseg<="0110011"WHEN "0101"=>numseg<="1011011"WHEN "0110"=>numseg<="1011111"WHEN "0111"=>numseg<="1110000"WHEN "1000"=>numseg<="1111111"
24、;WHEN "1001"=>numseg<="1111011"WHEN OTHERS=>NULL;END CASE;END PROCESS YM;sel<=numsel;seg<=numseg;END one;5.4 頂層文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY jtd ISPORT (clk:IN STD_LOGIC; -動態(tài)掃描時鐘 car:
25、IN STD_LOGIC; -支路車輛傳感信號 led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -交通燈信號 sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -數(shù)碼管位碼 seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -數(shù)碼管段碼END jtd;ARCHITECTURE one OF jtd ISCOMPONENT fPPORT(clK:IN STD_LOGIC; CLK1S:OUT STD_LOGIC);END COMPONENT;COMPONENT kzPORT(CLK1S,car:IN STD_LOGI
26、C; TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); TIME2H,TIME2L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); count:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END COMPONENT;COMPONENT xsPORT(clK,CLK1S,car:IN STD_LOGIC; TIME1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); TIME2H,TIME2L:IN S
27、TD_LOGIC_VECTOR(3 DOWNTO 0); count:IN STD_LOGIC_VECTOR(6 DOWNTO 0); sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;SIGNAL CLK1S:STD_LOGIC;SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL TIME1H,TIME1L,TIME2H,TIME2L:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1:fp POR
28、T MAP(CLK=>clk,CLK1S=>CLK1S);U2:kzPORTMAP(CLK1S=>CLK1S,car=>car,count=>count,led=>led,TIME1H=>TIME1H,TIME1L=>TIME1L,TIME2H=>TIME2H,TIME2L=>TIME2L);U3:xsPORTMAP(clk=>clk,CLK1S=>CLK1S,car=>car,count=>count,sel=>sel,seg=>seg,TIME1H=>TIME1H,TIME1L=>TIME1L,TIME2H=>TIME2H,TIME2L=>TIME2L);END;6 系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度健康體檢勞務合同解除標準指南
- 2025年度無人機技術研發(fā)與應用合作資源協(xié)議書
- 二零二五年度藝術衍生品市場正規(guī)藝術家合作協(xié)議
- 二零二五年度塔吊安裝與吊裝作業(yè)安全保障協(xié)議
- 二零二五年度特色商業(yè)街車位包銷及夜間經(jīng)濟合同
- 2025年度智慧城市安防系統(tǒng)服務合同
- 二零二五年度會議室租賃及茶歇服務協(xié)議
- 水暖消防工程承包合同
- 小學生感恩教育故事感悟
- 超市日常運營管理服務合同
- 新統(tǒng)編版五年級下冊道德與法治全冊課時練一課一練(同步練習)(含答案)
- 法律方法階梯PPT課件
- 計算機2級二級浙江旅游概述
- 《色彩基礎知識》PPT課件(完整版)
- 故事我把媽媽弄丟了ppt課件
- NACE產(chǎn)品金屬材料要求
- 布朗德戰(zhàn)略導向的薪酬管理體系
- 食品經(jīng)營餐飲操作流程(共1頁)
- 中儲糧購銷電子交易平臺成交合同
- SL/T212-2020 水工預應力錨固技術規(guī)范_(高清-有效)
- 河北省省直行政事業(yè)單位資產(chǎn)(房屋)租賃合同書(共7頁)
評論
0/150
提交評論