基于plc交通燈控制系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩14頁(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、<p><b>  第一章 緒論</b></p><p>  EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫(xiě),。EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。<

2、/p><p>  EDA技術(shù)已有30年的發(fā)展歷程,大致可分為三個(gè)階段。70年代為計(jì)算機(jī)輔助設(shè)計(jì)(CAD)階段,人們開(kāi)始用計(jì)算機(jī)輔助進(jìn)行IC版圖編輯、PCB布局布線,取代了手工操作。80年代為計(jì)算機(jī)輔助工程(CAE)階段。與CAD相比,CAE除了有純粹的圖形繪制功能外,又增加了電路功能設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì),并且通過(guò)電氣連接網(wǎng)絡(luò)表將兩者結(jié)合在一起,實(shí)現(xiàn)了工程設(shè)計(jì)。CAE的主要功能是:原理圖輸人,邏輯仿真,電路分析,自動(dòng)布局布線

3、,PCB后分析。90年代為電子系統(tǒng)設(shè)計(jì)自動(dòng)化(EDA)階段。</p><p>  “自頂向下”的設(shè)計(jì)方法。10年前,電子設(shè)計(jì)的基本思路還是選用標(biāo)準(zhǔn)集成電路“自底向上”地構(gòu)造出一個(gè)新的系統(tǒng),這樣的設(shè)計(jì)方法就如同一磚一瓦建造金字塔,不僅效率低、成本高而且容易出錯(cuò)。</p><p>  所謂數(shù)字系統(tǒng),是指交互式的以離散形式表示的具有存儲(chǔ)、傳輸、處理信息能力的邏輯子系統(tǒng)的集合物。一臺(tái)數(shù)字計(jì)算機(jī)就是

4、一 個(gè)最完整的數(shù)字系統(tǒng)。顯然,數(shù)字系統(tǒng)的功能、性能、規(guī)模遠(yuǎn)遠(yuǎn)超出了一般中小規(guī)模數(shù)字邏輯電路的范圍。基本步驟包括:系統(tǒng)需求分析、算法設(shè)計(jì)、算法描述、系統(tǒng)結(jié)構(gòu)選擇、具體設(shè)計(jì)、系統(tǒng)仿真與實(shí)驗(yàn)。</p><p>  第二章:交通燈控制系統(tǒng)簡(jiǎn)介</p><p>  2.1交通燈控制系統(tǒng)的背景</p><p>  近年來(lái)城市街道車輛大幅度增長(zhǎng),給城市交通帶來(lái)巨大壓力,

5、而街道各十字路口,又是車輛通行的瓶頸所在,研究車輛通行規(guī)律,找出提高十字路口車輛通行效率的有效方法,對(duì)緩解交通阻塞,提高暢通率具有十分現(xiàn)實(shí)的意義。本設(shè)計(jì)是交通燈控制系統(tǒng),隨著社會(huì)的不斷的進(jìn)步,社會(huì)的不斷發(fā)展。交通也日漸復(fù)雜,交通的自動(dòng)化也不斷更新,交通的一些指揮系統(tǒng)光靠人來(lái)完成是遠(yuǎn)遠(yuǎn)不夠的,這就需要設(shè)計(jì)各種交通指揮自動(dòng)化系統(tǒng)來(lái)完成這些復(fù)雜的工作。</p><p>  2.2 交通燈控制系統(tǒng)的作用</p>

6、;<p>  交通信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。為了實(shí)現(xiàn)交通道路的管理,力求交通管理先進(jìn)性、科學(xué)化。用可編程控制器實(shí)現(xiàn)交通燈管制的控制系統(tǒng),以及該系統(tǒng)軟、硬件設(shè)計(jì)方法,實(shí)驗(yàn)證明該系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單、經(jīng)濟(jì),能夠有效地疏導(dǎo)交通,提高交通路口的通行能力。分析了現(xiàn)代城市交通控制與管理問(wèn)題的現(xiàn)狀,結(jié)合交通的實(shí)際情況闡述了交通燈控制系統(tǒng)的工作原理,給出了一種簡(jiǎn)單實(shí)用的城市交通燈

7、控制系統(tǒng)的PLC設(shè)計(jì)方案??删幊绦蚩刂破髟诠I(yè)自動(dòng)化中的地位極為重要,廣泛的應(yīng)用于各個(gè)行業(yè)。隨著科技的發(fā)展,可編程控制器的功能日益完善,加上小型化、價(jià)格低、可靠性高,在現(xiàn)代工業(yè)中的作用更加突出。</p><p>  2.3 交通燈控制系統(tǒng)的構(gòu)成</p><p><b>  圖2-1</b></p><p><b>  圖2-2<

8、/b></p><p>  第三章:交通燈控制系統(tǒng)的設(shè)計(jì)</p><p><b>  3.1、 設(shè)計(jì)要求</b></p><p><b>  3.1.1基本要求</b></p><p>  能顯示十字路口東西、南北兩個(gè)方向的紅、黃、綠燈的指示狀態(tài),用兩組紅、黃、綠三色燈作為兩個(gè)方向的紅、黃、綠

9、燈; </p><p>  南北向?yàn)橹鞲傻?,每次通行時(shí)間為30S,東西向?yàn)橹Ц傻?,每次通行時(shí)間為20S;</p><p>  能實(shí)現(xiàn)正常的倒計(jì)時(shí)功能,用兩組數(shù)碼管作為東西、南北向的倒計(jì)時(shí)顯示。其中,黃燈:5S。</p><p>  能實(shí)現(xiàn)特殊狀態(tài)的功能。按下SP鍵后,能實(shí)現(xiàn)以下特殊功能: </p><p> ?。?)顯示倒計(jì)時(shí)的兩組數(shù)碼管閃爍

10、; </p><p>  (2)計(jì)數(shù)器停止計(jì)數(shù)并保持在原來(lái)的狀態(tài); </p><p>  (3)東西、南北路口均顯示紅燈狀態(tài); </p><p>  (4)特殊狀態(tài)解除后能繼續(xù)計(jì)數(shù); </p><p>  5. 能實(shí)現(xiàn)全清零功能。按下reset鍵后,系統(tǒng)實(shí)現(xiàn)全清零,計(jì)數(shù)器由初狀態(tài)計(jì)數(shù),對(duì)應(yīng)狀態(tài)的指示燈亮; </p><p&

11、gt;  6. 用VHDL語(yǔ)言設(shè)計(jì)上述功能的交通燈控制器,并用層次化方法設(shè)計(jì)該電路; </p><p>  7. 仿真、驗(yàn)證設(shè)計(jì)的正確性。 </p><p><b>  3.1.2附加要求</b></p><p>  時(shí)鐘輸入:clkin=1KHz</p><p>  采用分頻器分成:1Hz,然后提供給系統(tǒng) </p

12、><p>  3.2 設(shè)計(jì)思路、狀態(tài)機(jī)變化圖</p><p>  交通燈控制器的電路控制原理框圖如圖3-1所示,主要包括置數(shù)器模塊、定時(shí)計(jì)數(shù)器模塊、主控制器模塊和譯碼器模塊。置數(shù)器模塊將交通燈的點(diǎn)亮?xí)r間預(yù)置到置數(shù)電路中。計(jì)數(shù)器模塊以秒為單位倒計(jì)時(shí),當(dāng)計(jì)數(shù)值減為零時(shí),主控電路改變輸出狀態(tài),電路進(jìn)入下一個(gè)狀態(tài)的倒計(jì)時(shí)。核心部分是主控制模塊。</p><p>  圖3-1

13、電路控制原理框圖</p><p>  圖3-2 狀態(tài)機(jī)變化圖</p><p><b>  3.3設(shè)計(jì)流程</b></p><p>  由以上要求可以得到該系統(tǒng)的程序流程圖如圖3-3所示。其中,GA、RA、YA表示A支路的綠燈、紅燈、黃燈,GB、RB、YB表示B支路的綠燈、紅燈、黃燈,S表示特殊功能按鍵,T表示計(jì)時(shí)的時(shí)間。</p>

14、<p>  圖3-3 程序流程圖</p><p>  3.4 設(shè)計(jì)步驟及程序</p><p>  1. 啟動(dòng)QuartusⅡ6.0</p><p><b>  2. 編輯文件</b></p><p>  單擊菜單欄中的File\New命令,打開(kāi)“Block Diagram\Schematic File”文件

15、。</p><p><b>  3. 輸入原理圖</b></p><p>  畫(huà)出如圖3-5所示原理圖</p><p><b>  圖3-5</b></p><p><b>  4 . 輸入程序</b></p><p>  1)控制部分的設(shè)計(jì)

16、 --ledcontrol.vhd源程序</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity ledcontrol i

17、s</p><p>  port(reset,clk,urgen:in std_logic;</p><p>  state :out std_logic_vector(1 downto 0);</p><p>  sub,set1,set2 :out std_logic);</p><p>  end ledcontrol;</p

18、><p>  architecture a of ledcontrol is</p><p>  signal count: std_logic_vector(6 downto 0);</p><p>  signal subtemp: std_logic;</p><p><b>  begin</b></p>

19、<p>  sub<=subtemp and (not clk);</p><p>  statelabel:</p><p>  process(reset,clk)</p><p><b>  begin</b></p><p>  if reset='1'then</p&g

20、t;<p>  count<="0000000";</p><p>  state<="00";</p><p>  elsif clk'event and clk='1'then</p><p>  if urgen='0'then count<=cou

21、nt+1;subtemp<='1';else subtemp<='0';end if;</p><p>  if count=0 then state<="00";set1<='1';set2<='1';</p><p>  elsif count=25 then state&

22、lt;="01";set1<='1';</p><p>  elsif count=30 then state<="10";set1<='1';set2<='1';</p><p>  elsif count=45 then state<="11";se

23、t2<='1';</p><p>  elsif count=50 then count<="0000000";else set1<='0';set2<='0';end if;</p><p><b>  end if;</b></p><p>  en

24、d process statelabel;</p><p><b>  end a;</b></p><p>  2)顯示部分的設(shè)計(jì) --ledshow.vhd源程序</p><p>  library ieee;</p><p>  use ieee.std_logic

25、_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity ledshow is</p><p>  port(clk,urgen :in std_logic;</p><p>  state :in std_lo

26、gic_vector(1 downto 0);</p><p>  sub,set1,set2 :in std_logic;</p><p>  r1,g1,y1,r2,g2,y2 :out std_logic;</p><p>  led1,led2 :out std_logic_vector(7 downto 0));</p

27、><p>  end ledshow;</p><p>  architecture a of ledshow is</p><p>  signal count1,count2:std_logic_vector(7 downto 0);</p><p>  signal setstate1,setstate2:std_logic_vector(

28、7 downto 0);</p><p>  signal tg1,tg2,tr1,tr2,ty1,ty2 :std_logic;</p><p><b>  begin</b></p><p>  led1<="11111111"when urgen='1'and clk='0' el

29、se count1;</p><p>  led2<="11111111"when urgen='1'and clk='0' else count2;</p><p>  tg1<='1'when state="00"and urgen='0' else '0'

30、;;</p><p>  ty1<='1'when state="01"and urgen='0' else '0';</p><p>  tr1<='1'when state(1)='1'or urgen='1' else '0';</p&

31、gt;<p>  tg2<='1'when state="10"and urgen='0' else '0';</p><p>  ty2<='1'when state="11"and urgen='0' else '0';</p><

32、;p>  tr2<='1'when state(1)='0'or urgen='1' else '0';</p><p>  setstate1<= "00100101"when state="00"else</p><p>  "00000101"

33、when state="01"else</p><p>  "00100000";</p><p>  setstate2<= "00010101"when state="10"else</p><p>  "00000101"when state="

34、11"else</p><p>  "00110000";</p><p><b>  label2:</b></p><p>  process(sub)</p><p><b>  begin</b></p><p>  if sub'

35、;event and sub='1'then</p><p>  if set2='1'then</p><p>  count2<=setstate2;</p><p>  elsif count2(3 downto 0)="0000" then count2<=count2-7;else count

36、2<=count2-1; end if;</p><p><b>  g2<=tg2;</b></p><p><b>  r2<=tr2;</b></p><p><b>  y2<=ty2;</b></p><p><b>  end if

37、;</b></p><p>  end process label2;</p><p><b>  label1:</b></p><p>  process(sub)</p><p><b>  begin</b></p><p>  if sub'ev

38、ent and sub='1'then</p><p>  if set1='1'then</p><p>  count1<=setstate1;</p><p>  elsif count1(3 downto 0)="0000" then count1<=count1-7;else count1&l

39、t;=count1-1;end if;</p><p><b>  g1<=tg1;</b></p><p><b>  r1<=tr1;</b></p><p><b>  y1<=ty1;</b></p><p><b>  end if;<

40、;/b></p><p>  end process label1;</p><p><b>  end a;</b></p><p>  3)分頻器部分的設(shè)計(jì)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;<

41、;/p><p>  use work.p_alarm.all;</p><p>  entity divider is</p><p>  port(clk_in:std_logic;</p><p>  reset:in std_logic;</p><p>  clk:out std_logic);</p>

42、<p>  end divider;</p><p>  architecture art of divider is</p><p>  constant divide_period:t_short:=1000;</p><p><b>  begin</b></p><p>  process(clk_

43、in,reset) is</p><p>  variable cnt:t_short;</p><p><b>  begin</b></p><p>  if(reset='1')then</p><p><b>  cnt:=0;</b></p><p>

44、;<b>  clk<='0';</b></p><p>  elsif rising_edge(clk_in)then</p><p>  if(cnt<=(divide_period/2))then</p><p><b>  clk<='1';</b></p&g

45、t;<p>  cnt:=cnt+1;</p><p>  elsif(cnt<(divide_period-1))then</p><p><b>  clk<='0';</b></p><p>  cnt:=cnt+1;</p><p><b>  else<

46、/b></p><p><b>  cnt:=0;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  

47、end art;</b></p><p>  p_alarm程序包</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  package p_alarm is</p><p>  subtype t_digital

48、is integer range 0 to 9;</p><p>  subtype t_short is integer range 0 to 65535;</p><p>  type t_clock_time is array(5 downto 0)of t_digital;</p><p>  type t_display is array(5 downto

49、 0)of t_digital;</p><p>  end package p_alarm;</p><p><b>  創(chuàng)建工程</b></p><p><b>  打開(kāi)工程向?qū)?lt;/b></p><p>  將設(shè)計(jì)文件加到工程中</p><p><b>  選擇

50、目標(biāo)芯片</b></p><p>  選擇仿真器和綜合器類型</p><p><b>  結(jié)束設(shè)置</b></p><p><b>  目標(biāo)芯片的配置</b></p><p><b>  編譯</b></p><p><b>  仿

51、真</b></p><p><b>  建立波形文件</b></p><p><b>  打開(kāi)波形編輯器</b></p><p><b>  輸入信號(hào)節(jié)點(diǎn)</b></p><p><b>  編輯輸入波形</b></p><

52、p>  啟動(dòng)仿真及閱讀仿真報(bào)告</p><p><b>  圖3-6</b></p><p><b>  指定芯片管腳</b></p><p><b>  圖3-7</b></p><p>  3.5 硬件實(shí)現(xiàn)及調(diào)試結(jié)果</p><p>  在進(jìn)行

53、硬件測(cè)試時(shí),按鍵k1對(duì)應(yīng)復(fù)位端reset,按鍵k2對(duì)應(yīng)緊急開(kāi)關(guān)urgent。EDA實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)上的時(shí)鐘cp2對(duì)應(yīng)計(jì)數(shù)時(shí)鐘CLK,數(shù)碼管M3、M4對(duì)應(yīng)東西 走向的時(shí)鐘顯示。LED燈l16、l15、l14對(duì)應(yīng)東西走向的綠燈G1、黃燈Y1、紅燈R1。數(shù)碼管M1、M2對(duì)應(yīng)南北走向的時(shí)鐘顯示。LED燈l1、l2、l3對(duì)應(yīng)南北走向的綠燈G2、黃燈Y2、紅燈R2,對(duì)應(yīng)的硬件結(jié)構(gòu)示意圖如圖3-6

54、所示。 </p><p><b>  圖3-6</b></p><p>  調(diào)試結(jié)果如預(yù)期一樣,主干道從30秒倒計(jì)時(shí),支干道從25秒開(kāi)始倒計(jì)時(shí),主、支干道的紅黃綠燈一次點(diǎn)亮,當(dāng)按下復(fù)位鍵是,交通燈系統(tǒng)回到初始狀態(tài),但有一點(diǎn)延時(shí)。</p><p><b>  圖3-8</b></p><p>

55、;  第四章:課程設(shè)計(jì)總結(jié)</p><p>  課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程 。回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)

56、是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。</p><p>  這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很

57、多問(wèn)題,但在老師的悉心指導(dǎo)下,終于迎刃而解。在此對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和指導(dǎo)老師再次表示忠心的感謝!</p><p><b>  參考文獻(xiàn)</b></p><p>  孫加存. 電子設(shè)計(jì)自動(dòng)化. 西安電子科技大學(xué)出版社, 2008</p><p>  肖明耀. PLC原理與應(yīng)用. 中國(guó)勞動(dòng)社會(huì)保障出版社, 2006</p>

58、<p>  金西. VHDL與復(fù)雜數(shù)字系統(tǒng)設(shè)技. 2003西安電子科技大學(xué)出版社,2003</p><p>  王振紅. VHDL數(shù)字電路設(shè)計(jì)與應(yīng)用實(shí)踐教程. 北京機(jī)械工業(yè)出版社,2004</p><p>  林明權(quán). VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例,北京電子工業(yè)出版社, 2005</p><p>  潘松. EDA技術(shù)實(shí)用教程. 北京科學(xué)出版社,2

溫馨提示

  • 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ù)僅提供信息存儲(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)論