2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課程設計(綜合實驗)報告</p><p>  ( 2010 -- 2011 年度第 1 學期)</p><p>  名 稱: EDA課程設計 </p><p>  題 目: 電梯控制的實現(xiàn) </p><p>  院 系: </p><p

2、>  班 級: </p><p>  學 號: </p><p>  學生姓名: </p><p>  指導教師: </p><p>  設計周數(shù): 1周 &l

3、t;/p><p>  成 績: </p><p>  日期: 年 月 日</p><p>  一、課程設計的目的與要求</p><p>  用Mealy有限狀態(tài)機設計二個樓層電梯控制程序。用VHDL語言寫出Mealy有限狀態(tài)機控制模塊。Mealy有限狀態(tài)機的輸出受控于當前的狀態(tài)和信號輸入的變

4、化,一旦這敏感信號被測,輸出的信號就依賴于它們得到確定。</p><p>  電梯控制器的工作原理:</p><p>  當電梯空閑時,其狀態(tài)等待著其他樓層的請求,一旦有請求輸入信號,電梯移動到該請求信號的樓層,這時引起電梯門被關(guān)閉。引起電梯門關(guān)閉的條件有如下二個:①必須在地面樓層狀態(tài)StateGround;②首層有請求輸入信號ReqFirst。</p><p> 

5、 電梯開始移動到請求層,在移動過程中State從Ground轉(zhuǎn)變?yōu)镚oingFirst。</p><p>  當?shù)竭_請求層后,電梯門被打開并且請求燈熄滅,此狀態(tài)轉(zhuǎn)換為First狀態(tài)。</p><p>  這時如有其他樓層請求信號輸入將引起電梯門的關(guān)閉(如地面層有樓層請求信號ReqGround)。當電梯門正在做關(guān)閉動作時,同時又要做重新打開電梯門的動作,其條件必須有當前樓層請求信號ReqFi

6、rst輸入(其他請求信號均被忽略)。</p><p>  電梯門關(guān)閉以后,電梯可再次響應其他樓層請求,即這時電梯State狀態(tài)為First狀態(tài),并且又從地面層來一個請求信號ReqGround,將會引起電梯State狀態(tài)從First狀態(tài)改變?yōu)镚oingGround狀態(tài),電梯開始往下運行。</p><p>  在未到達目的地之前,其他請求信號均被忽略。</p><p>

7、<b>  二、設計正文</b></p><p>  本設計是基于VHDL語言開發(fā)的兩層電梯控制器。以Quartus Ⅱ為開發(fā)環(huán)境,最終在EDA實驗箱上實現(xiàn)其演示的基本功能。其功能包括:顯示電梯當前所在樓層,顯示有請求發(fā)生的樓層,響應樓層請求,關(guān)門延時設置,電梯開關(guān)門顯示。具體描述為:</p><p>  電梯外部有請求開關(guān),一樓一個,二樓一個;電梯內(nèi)部有乘客到達層次

8、的請求開關(guān)。</p><p>  設有電梯所處位置指示裝置和電梯運行模式(上升或下降)指示裝置。</p><p>  電梯到達請求樓層后,電梯門開啟(電梯門指示燈亮),開門四秒后,電梯門關(guān)閉(電梯門指示燈滅),電梯繼續(xù)響應請求或回到初始狀態(tài)。</p><p>  電梯初始狀態(tài)為停在1樓,關(guān)門。</p><p>  電梯上升或下降時,終止其他操

9、作。</p><p>  當電梯關(guān)門時,同層有請求,先響應同層請求(開門),再響應其他請求(上升或下降)。</p><p><b>  具體程序如下:</b></p><p>  LIBRARY IEEE; </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p

10、>  USE IEEE.STD_LOGIC_ARITH.ALL; </p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY dianti IS </p><p>  PORT(clk,reset,up1,down2,stop1,stop2:IN STD_LOGIC;</p><

11、;p>  --按鍵共有4個,其中電梯內(nèi)部2個:stop1,stop2,電梯外部一樓一個up1,二樓一個down2</p><p>  stoplight:buffer STD_LOGIC_VECTOR(2 DOWNTO 1);</p><p>  --stoplight對應stop按鍵</p><p>  uplight,downlight:buffer ST

12、D_LOGIC;</p><p>  --uplight,downlight分別對應up1,down2按鍵</p><p>  udsig:BUFFER STD_LOGIC; </p><p>  --電梯的狀態(tài),0代表(預)上升,1代表(預)下 </p><p>  POSITION:BUFFER INTEGER RANGE 1

13、 TO 2;</p><p><b>  --電梯的位置</b></p><p>  doorlight:buffer STD_LOGIC);</p><p>  --門燈,開門燈亮,關(guān)門燈滅</p><p>  END dianti;</p><p>  ARCHITECTURE behav O

14、F dianti IS</p><p>  TYPE state_type is(stopon1,dooropen,doorclose,wait1,wait2,wait3,wait4,up,down,</p><p><b>  stop);</b></p><p>  --十個狀態(tài),初始,開門,關(guān)門,延時1~4,上升,下降,停</p&g

15、t;<p>  SIGNAL state:state_type:=stopon1;</p><p>  SIGNAL clearup,cleardn,anjianclk,dianticlk:STD_LOGIC;</p><p>  --上升清零,下降清零,按鍵時鐘,電梯時鐘</p><p>  SIGNAL q:STD_LOGIC_VECTOR(3 D

16、OWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(clk) --設定按鍵時鐘和電梯時鐘,外部時鐘周期設為50ms</p><p><b>  BEGIN</b></p><p>  IF(reset='1') THEN</p

17、><p>  q<="0000";</p><p>  ELSIF RISING_EDGE(clk) then</p><p><b>  q<=q+1;</b></p><p><b>  END IF;</b></p><p>  anjian

18、clk<=q(0); --二分頻 </p><p>  dianticlk<=q(3); --十六分頻</p><p>  END PROCESS;</p><p>  cont:PROCESS(reset,dianticlk)</p><p>  VARIABLE POS:INTEGER RANGE 3 DOWNTO 1;&

19、lt;/p><p><b>  BEGIN</b></p><p>  IF reset='1' then</p><p>  state<=stopon1;</p><p>  clearup<='0';</p><p>  cleardn<=

20、9;0'; --復位</p><p>  elsif rising_edge(dianticlk) THEN</p><p>  CASE state IS --設定狀態(tài)機的各個狀態(tài) </p><p>  WHEN stopon1=>doorlight<='1'; position<=1;pos:=1; state<

21、=wait1;</p><p>  WHEN wait1=>state<=wait2; --延時</p><p>  WHEN wait2=>clearup<='0'; cleardn<='0'; state<=wait3;</p><p>  WHEN wait3=>state<=wa

22、it4;</p><p>  WHEN wait4=>state<=doorclose;</p><p>  WHEN doorclose =>doorlight<='0'; --從開門到關(guān)門經(jīng)歷5個電梯時鐘周期</p><p>  IF udsig='0' THEN --(預)上升狀態(tài)時</p>

23、<p>  IF position=2 THEN--電梯在二樓時</p><p>  IF stoplight="00" and uplight='0' and downlight='0' THEN</p><p>  udsig<='1'; state<=doorclose;</p>

24、<p>  ELSIF stoplight="10" THEN state<=dooropen;</p><p>  ELSIF downlight='1' THEN state<=dooropen;</p><p><b>  ELSE</b></p><p>  udsig&

25、lt;='1'; state<=down;</p><p><b>  END IF;</b></p><p>  ELSIF position=1 THEN --電梯在一樓時</p><p>  IF stoplight="00" and uplight='0' and downlig

26、ht='0' THEN</p><p>  udsig<='0'; state<=doorclose;</p><p>  ELSIF stoplight="01" THEN state<=dooropen;</p><p>  ELSIF uplight='1' THEN

27、state<=dooropen;</p><p><b>  ELSE</b></p><p>  udsig<='0'; state<=up;</p><p><b>  END IF;</b></p><p><b>  END IF;</b&

28、gt;</p><p>  ELSIF udsig='1' THEN --(預)下降狀態(tài)時</p><p>  IF position=1 THEN --電梯在一樓</p><p>  IF stoplight="00" and uplight='0' and downlight='0' THEN&

29、lt;/p><p>  udsig<='0'; state<=doorclose;</p><p>  ELSIF stoplight="01" THEN state<=dooropen;</p><p>  ELSIF uplight='1' THEN state<=dooropen;&

30、lt;/p><p><b>  ELSE</b></p><p>  udsig<='0'; state<=up;</p><p><b>  END IF;</b></p><p>  ELSIF position=2 THEN--電梯在二樓時</p>&l

31、t;p>  IF stoplight="00" and uplight='0' and downlight='0' THEN</p><p>  udsig<='1'; state<=doorclose;</p><p>  ELSIF stoplight="10" THEN stat

32、e<=dooropen;</p><p>  ELSIF downlight='1' THEN state<=dooropen; </p><p><b>  ELSE</b></p><p>  udsig<='1'; state<=down;</p><p&g

33、t;<b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  WHEN up=>position<=position+1; pos:=pos+1;</p><p>

34、;  IF (pos=2) THEN </p><p>  state<=stop;</p><p><b>  END IF;</b></p><p>  WHEN down=>position<=position-1; pos:=pos-1;</p><p>  IF (POS=1) THE

35、N</p><p>  state<=stop;</p><p><b>  END IF;</b></p><p>  WHEN stop=>state<=dooropen;</p><p>  WHEN dooropen=>doorlight<='1'; clearup&

36、lt;='1'; cleardn<='1'; state<=wait1;</p><p>  when others=>state<=stopon1;</p><p><b>  end case;</b></p><p><b>  end if;</b></

37、p><p>  end process cont; </p><p>  butt:PROCESS(reset,anjianclk) --設定按鍵</p><p><b>  BEGIN</b></p><p>  if reset='1' then</p><p>  stop

38、light<="00"; uplight<='0'; downlight<='0';</p><p>  elsif rising_edge(anjianclk) then</p><p>  if clearup='1' then</p><p>  stoplight(posi

39、tion)<='0'; uplight<='0';</p><p><b>  else</b></p><p>  if up1='1' then uplight<='1';</p><p><b>  END IF;</b></p&

40、gt;<p><b>  END IF;</b></p><p>  if cleardn='1' then</p><p>  stoplight(position)<='0'; downlight<='0';</p><p><b>  else</b

41、></p><p>  if down2='1'then downlight<='1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if stop1='1'

42、then stoplight(1)<='1'; end if;</p><p>  if stop2='1' then stoplight(2)<='1'; end if; </p><p><b>  END IF;</b></p><p>  END PROCESS butt;

43、</p><p>  END behav; </p><p>  功能分析:此程序一共有三個進程(process):時鐘設定,狀態(tài)機設定,按鍵設定。狀態(tài)機進程的運行基于電梯時鐘dianticlk,此時鐘為外部時鐘的周期是外部時鐘周期的十六倍;按鍵設定進程基于按鍵時鐘anjianclk,此時鐘的周期為外部時鐘周期的兩倍。按鍵時鐘周期比電梯時鐘周期短,這就意味著按鍵設定進程比狀態(tài)機進程快,這

44、就保證了每一次按鍵都能掃描并保留而不會被狀態(tài)機進程中的清零程序消除。一共有7個燈顯示電梯的狀況:stoplight1~2、uplight,downlight、udsig、POSITION1~2、doorlight。</p><p>  電梯的初始狀態(tài)是停在一樓,門關(guān)。復位鍵reset可實現(xiàn)電梯的初始功能。電梯在一樓時,position1=1,其燈亮,并且電梯一直保持預上升狀態(tài),udsig=1,其燈亮。當接到一樓外

45、部請求信號(up1)時,uplight亮,電梯門打開,doorlight亮。四秒后,電梯門關(guān),doorlight滅。這時,只有收到去二樓的請求(stop2)時,才會上二樓,此時stoplight2亮,直到門開為止。若門關(guān)時接收到的是stop1的請求,則電梯不上二樓,門開,四秒后門再關(guān)閉。</p><p>  當電梯停在二樓是,情況類似。</p><p><b>  仿真結(jié)果如下圖

46、:</b></p><p>  電梯在一樓,乘客在外部按up1請求進入,進入電梯后按stop2請求上二樓</p><p>  電梯在一樓,乘客在外部按up1請求進入,進入電梯后按stop1請求出電梯</p><p>  電梯在二樓,乘客在外部按down2請求進入,進入電梯后按stop1請求下一樓</p><p><b>

47、  三、課程設計總結(jié)</b></p><p>  本設計是基于VHDL語言開發(fā)的兩層電梯控制器。以Quartus Ⅱ為開發(fā)環(huán)境,最終在EDA實驗箱上實現(xiàn)其演示的基本功能。其功能包括:顯示電梯當前所在樓層,顯示有請求發(fā)生的樓層,響應樓層請求,關(guān)門延時設置,電梯開關(guān)門顯示。</p><p>  這個課程設計還有很多不足之處:</p><p>  1、電梯各個

48、進程依賴于3個不同的時鐘,這樣做雖然比較精確但是顯得有些多余,經(jīng)老師的指導后發(fā)現(xiàn)其實除了開關(guān)門過程時需要時鐘以外其他地方不用時鐘也沒有關(guān)系。</p><p>  2、沒有考慮到消抖問題。</p><p>  3、電梯控制程序只實現(xiàn)了兩層樓電梯的控制,這種電梯在現(xiàn)實生活中應用很少,而且此程序不方便向更多層電梯控制器程序擴展。</p><p>  本課程設計遇到了不少困

49、難,主要原因是由于平時學習沒有特別系統(tǒng)認真,所以對VHDL語言沒有熟練掌握,很多語句的具體含義和應用都不是很了解,編程時遇到一定的困難。我是第一次接觸這種EDA實驗箱,第一次設計一個完整的程序然后連線運行,這個過程讓我感受到了動手做實驗的樂趣。很感謝老師的悉心教導和同學的熱心幫助,讓我比較順利的做出了這個課程設計。通過這次課程設計,我深刻了解到光學會課本上的知識沒有用,還要運用到實踐中,考試100分不代表就能熟練掌握這項技術(shù)。</

50、p><p><b>  四、參考文獻</b></p><p>  侯伯亨,劉凱,顧新 . VHDL硬件描述語言與數(shù)字邏輯電路設計(第三版). 西安電子科技大學出版社 . 2009</p><p>  曾繁泰,陳美金 . VHDL數(shù)字系統(tǒng)設計 . 清華大學出版社 . 2001</p><p>  曾繁泰,陳美金 . VHDL程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論