EDA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告交通信號(hào)燈控制_第1頁(yè)
EDA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告交通信號(hào)燈控制_第2頁(yè)
EDA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告交通信號(hào)燈控制_第3頁(yè)
EDA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告交通信號(hào)燈控制_第4頁(yè)
EDA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告交通信號(hào)燈控制_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 湖南大學(xué)課程設(shè)計(jì)論文 hunan university 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告課題:交通信號(hào)燈控制 學(xué)院:電氣與信息工程學(xué)院姓名: 班級(jí):電氣工程及其自動(dòng)化(3)班 學(xué)號(hào):第 16 頁(yè) 共 16 頁(yè)一、課程設(shè)計(jì)的要求及目的:1了解電子設(shè)計(jì)的具體流程和方法。2. 掌握電子設(shè)計(jì)的基本要求,能夠運(yùn)用所學(xué)的知識(shí)解決生活中的一些問(wèn)題。3. 初步掌握vhdl語(yǔ)言編程,并設(shè)計(jì)出一個(gè)有意義的小型系統(tǒng)。4. 掌握altium designer6軟件的應(yīng)用,并且了解相關(guān)硬件的組成和功能。5. 用eda(electronic design automation)或者原理圖完成一個(gè)課題的設(shè)計(jì),并達(dá)到相應(yīng)的功能要求。二、設(shè)

2、計(jì)的功能要求:眾所周知,隨著生活的進(jìn)步,我們身邊的交通也日益繁忙,在眾多的十字交叉路口,為了確保車輛安全,迅速地通行,就必須在每個(gè)入口設(shè)置紅綠燈。本系統(tǒng)中設(shè)置了紅,綠,黃三色共三種信號(hào)燈。紅燈亮禁止一切該方向的行人和車輛通行,綠燈亮允許行人和車輛通行,黃燈亮則提示行駛中的車輛注意不要搶道,并讓它們有時(shí)間??康浇芯€之外或者加快通過(guò),同時(shí)提醒行人加快行進(jìn)或者等待下一次綠燈。人行道燈亮?xí)r,允許行人通過(guò)。本交通信號(hào)燈控制系統(tǒng)以東西,南北方向走向的十字路口為例講述設(shè)計(jì)的功能要求和設(shè)計(jì)的具體過(guò)程1、 用八個(gè)發(fā)光二極管作信號(hào)指示燈。順序?yàn)闁|西主干道紅、綠、黃、人行燈,南北主干道紅、綠、黃、人行燈。2、考慮

3、到?jīng)]有設(shè)置到車輛的轉(zhuǎn)彎信號(hào)指示燈,而且作為交通繁忙的交通干道,為了節(jié)省車輛的等待時(shí)間,所以設(shè)置了紅燈亮的時(shí)間為45s,綠燈亮和人行燈亮的時(shí)間均為40s,黃燈亮的時(shí)間為5s。當(dāng)東西方向的干道禁止通行時(shí),該干道亮紅燈,南北方向干道亮綠燈,同時(shí)南北方向的人行道燈亮;當(dāng)南北方向的干道轉(zhuǎn)變?yōu)辄S燈閃爍時(shí),進(jìn)入了黃燈警示時(shí)間,黃燈閃爍結(jié)束以后,東西方向干道亮綠燈允許通行,同時(shí)東西方向的人行道燈亮,南北方向的紅燈亮,人行道燈滅;當(dāng)東西方向干道轉(zhuǎn)變?yōu)辄S燈閃爍時(shí),進(jìn)入黃燈警示時(shí)間,黃燈閃爍結(jié)束以后,東西方向干道亮紅燈,人行道燈滅,南北方向亮綠燈亮,人行道燈亮。如此反復(fù)進(jìn)行,當(dāng)遇到緊急(故障)情況時(shí)候,進(jìn)入到緊急狀

4、態(tài)。3、該信號(hào)控制系統(tǒng)的初始狀態(tài)為東西方向主干道亮紅燈(45s),南北方向主干道亮綠燈(40s)和人行燈,黃燈滅。指示牌會(huì)顯示出45和40兩個(gè)數(shù)字。4、 交通燈正常運(yùn)行時(shí),用數(shù)字顯示器顯示東西、南北兩主干道允許通過(guò)的剩余時(shí)間(采用倒計(jì)時(shí)的形式顯示ascii數(shù)字)。5、當(dāng)出現(xiàn)故障的時(shí)候,此時(shí)東西,南北兩方向主干道均亮紅燈,數(shù)字顯示管均停止計(jì)數(shù)并將當(dāng)前的停留時(shí)間和錯(cuò)誤信號(hào)(eeee)輪流顯示。故障解除后能返回正常工作狀態(tài)(復(fù)位后為初始狀態(tài))。6、 能實(shí)現(xiàn)系統(tǒng)手動(dòng)復(fù)位,復(fù)位后回到初始狀態(tài),并從初始狀態(tài)開始倒計(jì)時(shí)。三、設(shè)計(jì)方案選擇由于該交通控制電路比較復(fù)雜,用現(xiàn)有庫(kù)元器件可能導(dǎo)致耗用較多器件且其功能又

5、不能完全達(dá)到設(shè)計(jì)要求,還可能出現(xiàn)其他的意想不到的情況,造成電路復(fù)雜,設(shè)計(jì)困難,難以排錯(cuò)等問(wèn)題。而由于該系統(tǒng)的狀態(tài)有限而且簡(jiǎn)單可以一一列舉,故采用狀態(tài)機(jī)設(shè)計(jì)方案。狀態(tài)機(jī)設(shè)計(jì)使得設(shè)計(jì)更為簡(jiǎn)單明了,系統(tǒng)容錯(cuò)能力也大為提升,而且狀態(tài)機(jī)順序控制靈活,結(jié)構(gòu)簡(jiǎn)單,便于修改,同時(shí)其對(duì)付競(jìng)爭(zhēng)冒險(xiǎn)的現(xiàn)象能力很強(qiáng),運(yùn)行速度快,使其成為數(shù)字系統(tǒng)設(shè)計(jì)中的重要部分,也是調(diào)高效率的重要途徑。因此本次設(shè)計(jì)采用狀態(tài)機(jī)的vhdl描述,生成相應(yīng)的器件模塊。最后將器件模塊和少數(shù)的庫(kù)元件有機(jī)的結(jié)合在一起,構(gòu)成總的原理圖,從而形成了交通燈控制系統(tǒng)。而在本次交通燈的控制電路設(shè)計(jì)中,一共設(shè)置有六種狀態(tài),分別為s1(初始狀態(tài)),s2,s3,s

6、4為正常工作狀態(tài);s5,s6為故障時(shí)候的狀態(tài)。四、 設(shè)計(jì)思路和框架分析 1.交通路口位置東 :人行過(guò)道 :紅綠黃燈:人行過(guò)道燈南北 西 2、狀態(tài)表狀態(tài)東西主干道南北主干道指示燈亮燈時(shí)間指示燈亮燈時(shí)間s1紅燈亮45s綠燈亮40ss2紅燈亮黃燈亮5ss3綠燈亮40s紅燈亮45ss4黃燈亮5s紅燈亮s5紅燈亮當(dāng)前時(shí)間紅燈亮當(dāng)前時(shí)間s6紅燈亮ee紅燈亮ee3、狀態(tài)轉(zhuǎn)換圖復(fù) 位s1s2s4s3按復(fù)位鍵s6s5故 障五、交通燈的控制電路的vhdl程序1.主控制電路模塊的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsi

7、gned.all;use ieee.std_logic_arith.all;entity traffic light is port ( hold:in std_logic; reset: in std_logic; clk: in std_logic; ah: out std_logic_vector (3 downto 0); al: out std_logic_vector (3 downto 0); bh: out std_logic_vector (3 downto 0); bl: out std_logic_vector (3 downto 0); l: out std_logic

8、_vector (7 downto 0) );end traffic light;architecture a of traffic light istype state_type is (s1,s2,s3,s4,s5,s6); signal s: state_type; signal n,m: std_logic; signal a,b,c,d,tah,tal,tbh,tbl:std_logic_vector (3 downto 0);begin zt:process(clk,hold,reset) variable snow:state_type; begin if reset=1 the

9、n tbh=0100;tah=0100; tbl=0000;tal=0101; n=0; s=s1; elsif clk=1 and clk event then if hold=1 then if s/=s5 and s/=s6 then s=s5; a=tah; b=tal; c=tbh; d=tbl; elsif s=s5 then s=s6; else if n=0 then n=1; tah=1111; tbh=1111; tal=1111; tbl=1111; else n=0; tah=a;tal=b;tbh=c;tbl=d; end if; end if; elsif n=0

10、then n=1; else n if tbh=0000 and tbl=0001 and tah=0000 and tal=0110 then s=s2 ;snow:=s2; tbl=0101; tal=tal-1; else if tal=0000 then tal=1001; tah=tah-1; else tal=tal-1; end if; if tbl=0000 then tbl=1001; tbh=tbh-1; else tblif tal=1 and tbl=1 then s=s3;snow:=s3; tah=0100;tal=0000;tbh=0100;tbl=0101; e

11、lse tal=tal-1;tbl if tah=0000 and tal=0001 and tbh=0000 and tbl=0110 then s=s4 ;snow:=s4; tal=0101; tbl=tbl-1; else if tal=0000 then tal=1001; tah=tah-1; else tal=tal-1; end if; if tbl=0000 then tbl=1001; tbh=tbh-1; else tblif tbl=1 and tal=1 then s=s1;snow:=s1; tah=0100;tal=0101;tbh=0100;tbl=0000;

12、else tal=tal-1;tblss=snow; tah=a;tal=b;tbh=c;tblnull; end case; end if; end if; end process zt; process(tah) begin ah=tah; end process; process(tal) begin al=tal; end process; process(tbh) begin bh=tbh; end process; process(tbl) begin bllif n=0 then l=10000010; else llif n=0 then l=00101000; else ll

13、l=10001000; end case;end process shch;end a;由上述的程序生成的器件模塊如下圖:其中clk為時(shí)鐘脈沖信號(hào), reset為復(fù)位信號(hào),hold為故障輸入信號(hào)。l是交通信號(hào)燈信號(hào)的輸出,al,ah, bl, bh都是二進(jìn)制bcd碼輸出。當(dāng)reset為1時(shí),返回到s1狀態(tài)在clk為上升沿且hold為1時(shí),顯示為故障狀態(tài)也即s5和s6狀態(tài)。2.譯碼電路器件模塊由于上述模塊輸出的是bcd二進(jìn)制碼,而altium designer6 下載模塊上的數(shù)字顯示管輸入是ascii碼,故,還需要一個(gè)編譯電路模塊作為譯碼輸出轉(zhuǎn)換電路。譯碼電路器件模塊的程序如下:library

14、ieee;use ieee.std_logic_1164.all;entity coding is port( bcd_in : in std_logic_vector(3 downto 0); asc_out : out std_logic_vector(7 downto 0);end coding;architecture structure of coding issignal asc_out_reg :std_logic_vector(7 downto 0);begin asc_out asc_out_reg asc_out_reg asc_out_reg asc_out_reg as

15、c_out_reg asc_out_reg asc_out_reg asc_out_reg asc_out_reg asc_out_reg asc_out_reg=x45; end case; end process;end structure;形成譯碼器電路器件形式如下:3.lcd控制器 采用altium designer6 下載模塊上的lcd1602數(shù)字顯示管顯示倒計(jì)時(shí)數(shù)字,向lcd輸入的數(shù)據(jù)為ascii碼,需要通過(guò)數(shù)碼掃描依次送到lcd顯示,仍需編譯一塊lcd控制器ip核lcd16x2a的程序。lcd控制器的程序如下:library ieee;use ieee.std_logic_116

16、4.all;entity lcd_scan is port( clk_in: in std_logic; rstn_in: in std_logic; ascii_1_in: in std_logic_vector(7 downto 0); ascii_2_in: in std_logic_vector(7 downto 0); ascii_3_in: in std_logic_vector(7 downto 0); ascii_4_in : in std_logic_vector(7 downto 0); busy_in : in std_logic; data_out: out std_l

17、ogic_vector(7 downto 0); addr_out: out std_logic_vector(3 downto 0); line_out: out std_logic; strobe_out: out std_logic );end lcd_scan;architecture art of lcd_scan istype m_state is( ready, lcd_1_out, lcd_1_strobe, lcd_1_wait, lcd_2_out, lcd_2_strobe, lcd_2_wait, lcd_3_out, lcd_3_strobe, lcd_3_wait,

18、 lcd_4_out, lcd_4_strobe, lcd_4_wait );signal data_out_reg : std_logic_vector(7 downto 0); signal addr_out_reg : std_logic_vector(3 downto 0); signal line_out_reg : std_logic;signal strobe_out_reg : std_logic;begin data_out = data_out_reg; addr_out = addr_out_reg; line_out = line_out_reg; strobe_out

19、 state := lcd_1_out; data_out_reg = x00; addr_out_reg = x0; line_out_reg = 1; strobe_out_reg state := lcd_1_strobe; data_out_reg = ascii_1_in; addr_out_reg state := lcd_1_wait; strobe_out_reg state := lcd_2_out; strobe_out_reg state := lcd_2_strobe; data_out_reg = ascii_2_in; addr_out_reg state := l

20、cd_2_wait; strobe_out_reg state := lcd_3_out; strobe_out_reg state := lcd_3_strobe; data_out_reg = ascii_3_in; addr_out_reg state := lcd_3_wait; strobe_out_reg state := lcd_4_out; strobe_out_reg state := lcd_4_strobe; data_out_reg = ascii_4_in; addr_out_reg state := lcd_4_wait; strobe_out_reg state

21、:= lcd_1_out; strobe_out_reg = 0; state := ready; end case; else state := state; strobe_out_reg = 0; end if; end if; end if; end process; end art;形成lcd控制器器件形式如下:4.綜合電路圖在進(jìn)行仿真模擬時(shí),所用仿真輸入的時(shí)鐘脈沖信號(hào)周期是4ns,下載到硬件上時(shí),為了能夠觀察到所要求的燈光信號(hào),輸入脈沖信號(hào)定為2hz(用于保證黃燈閃爍的觀測(cè)),由于模板上最小的脈沖為10mhz,所以要采用分頻器。5.綜合仿真結(jié)果:心得體會(huì)經(jīng)過(guò)為其兩周的課程設(shè)計(jì),本人受

22、益匪淺。這是我們自己大學(xué)三年以來(lái)自己第一次動(dòng)手設(shè)計(jì)自己的東西,而不僅僅是停留在理論上。這一次的課程設(shè)計(jì)讓我懂得了理論的指導(dǎo)意義,同時(shí)也深深知道自己實(shí)際動(dòng)手能力的缺乏,深深認(rèn)識(shí)到加強(qiáng)自己的理論指導(dǎo)實(shí)踐的能力的緊迫性和重要性。選了交通燈控制這一小項(xiàng)目,因?yàn)樗芎?jiǎn)單,很容易的就用原理圖或者狀態(tài)機(jī)設(shè)計(jì)完成。這是我選擇它的最重要的原因。但是看是簡(jiǎn)單的交通燈控制,卻讓我明白,要想靠自己成功的完成,還得老老實(shí)實(shí)的花大力氣去做。剛開始,由于altium designer 6這軟件對(duì)我來(lái)說(shuō)完全陌生,不知道怎么操作,我花了幾乎三天的時(shí)間去熟悉它,但是還是不能很好的“駕馭”它,而vhdl語(yǔ)言雖然簡(jiǎn)單,可是由于倉(cāng)促上陣,一時(shí)間難以接受。在開始的兩天,完全不知從何下手,我?guī)缀跤悬c(diǎn)想放棄的感覺(jué),盡管之前參加過(guò)課程設(shè)計(jì)的同學(xué)都說(shuō)很簡(jiǎn)單,但是我覺(jué)得非也。接下來(lái)的幾天,實(shí)驗(yàn)室,圖書館,舊書店開始出現(xiàn)了忙碌的身影,我拼命的找資料。有關(guān)eda的和電子系統(tǒng)設(shè)計(jì)的書,我前后下來(lái)看了不少于6本,研究書中的有關(guān)例子,尋求設(shè)計(jì)思路和設(shè)計(jì)方法,方案,同時(shí)學(xué)習(xí)vhdl這門硬件描述語(yǔ)言,邊學(xué)邊做,仿佛自己在做一個(gè)驚天動(dòng)地大項(xiàng)目,“廢寢忘食”。在進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論