

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課程設(shè)計(jì)(綜合實(shí)驗(yàn))報(bào)告</p><p> ( 2010 -- 2011 年度第 1 學(xué)期)</p><p> 名 稱(chēng): EDA課程設(shè)計(jì) </p><p> 題 目: 電梯控制的實(shí)現(xiàn) </p><p> 院 系: </p><p
2、> 班 級(jí): </p><p> 學(xué) 號(hào): </p><p> 學(xué)生姓名: </p><p> 指導(dǎo)教師: </p><p> 設(shè)計(jì)周數(shù): 1周 &l
3、t;/p><p> 成 績(jī): </p><p> 日期: 年 月 日</p><p> 一、課程設(shè)計(jì)的目的與要求</p><p> 用Mealy有限狀態(tài)機(jī)設(shè)計(jì)二個(gè)樓層電梯控制程序。用VHDL語(yǔ)言寫(xiě)出Mealy有限狀態(tài)機(jī)控制模塊。Mealy有限狀態(tài)機(jī)的輸出受控于當(dāng)前的狀態(tài)和信號(hào)輸入的變
4、化,一旦這敏感信號(hào)被測(cè),輸出的信號(hào)就依賴(lài)于它們得到確定。</p><p> 電梯控制器的工作原理:</p><p> 當(dāng)電梯空閑時(shí),其狀態(tài)等待著其他樓層的請(qǐng)求,一旦有請(qǐng)求輸入信號(hào),電梯移動(dòng)到該請(qǐng)求信號(hào)的樓層,這時(shí)引起電梯門(mén)被關(guān)閉。引起電梯門(mén)關(guān)閉的條件有如下二個(gè):①必須在地面樓層狀態(tài)StateGround;②首層有請(qǐng)求輸入信號(hào)ReqFirst。</p><p>
5、 電梯開(kāi)始移動(dòng)到請(qǐng)求層,在移動(dòng)過(guò)程中State從Ground轉(zhuǎn)變?yōu)镚oingFirst。</p><p> 當(dāng)?shù)竭_(dá)請(qǐng)求層后,電梯門(mén)被打開(kāi)并且請(qǐng)求燈熄滅,此狀態(tài)轉(zhuǎn)換為First狀態(tài)。</p><p> 這時(shí)如有其他樓層請(qǐng)求信號(hào)輸入將引起電梯門(mén)的關(guān)閉(如地面層有樓層請(qǐng)求信號(hào)ReqGround)。當(dāng)電梯門(mén)正在做關(guān)閉動(dòng)作時(shí),同時(shí)又要做重新打開(kāi)電梯門(mén)的動(dòng)作,其條件必須有當(dāng)前樓層請(qǐng)求信號(hào)ReqFi
6、rst輸入(其他請(qǐng)求信號(hào)均被忽略)。</p><p> 電梯門(mén)關(guān)閉以后,電梯可再次響應(yīng)其他樓層請(qǐng)求,即這時(shí)電梯State狀態(tài)為First狀態(tài),并且又從地面層來(lái)一個(gè)請(qǐng)求信號(hào)ReqGround,將會(huì)引起電梯State狀態(tài)從First狀態(tài)改變?yōu)镚oingGround狀態(tài),電梯開(kāi)始往下運(yùn)行。</p><p> 在未到達(dá)目的地之前,其他請(qǐng)求信號(hào)均被忽略。</p><p>
7、<b> 二、設(shè)計(jì)正文</b></p><p> 本設(shè)計(jì)是基于VHDL語(yǔ)言開(kāi)發(fā)的兩層電梯控制器。以Quartus Ⅱ?yàn)殚_(kāi)發(fā)環(huán)境,最終在EDA實(shí)驗(yàn)箱上實(shí)現(xiàn)其演示的基本功能。其功能包括:顯示電梯當(dāng)前所在樓層,顯示有請(qǐng)求發(fā)生的樓層,響應(yīng)樓層請(qǐng)求,關(guān)門(mén)延時(shí)設(shè)置,電梯開(kāi)關(guān)門(mén)顯示。具體描述為:</p><p> 電梯外部有請(qǐng)求開(kāi)關(guān),一樓一個(gè),二樓一個(gè);電梯內(nèi)部有乘客到達(dá)層次
8、的請(qǐng)求開(kāi)關(guān)。</p><p> 設(shè)有電梯所處位置指示裝置和電梯運(yùn)行模式(上升或下降)指示裝置。</p><p> 電梯到達(dá)請(qǐng)求樓層后,電梯門(mén)開(kāi)啟(電梯門(mén)指示燈亮),開(kāi)門(mén)四秒后,電梯門(mén)關(guān)閉(電梯門(mén)指示燈滅),電梯繼續(xù)響應(yīng)請(qǐng)求或回到初始狀態(tài)。</p><p> 電梯初始狀態(tài)為停在1樓,關(guān)門(mén)。</p><p> 電梯上升或下降時(shí),終止其他操
9、作。</p><p> 當(dāng)電梯關(guān)門(mén)時(shí),同層有請(qǐng)求,先響應(yīng)同層請(qǐng)求(開(kāi)門(mén)),再響應(yīng)其他請(qǐng)求(上升或下降)。</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個(gè),其中電梯內(nèi)部2個(gè):stop1,stop2,電梯外部一樓一個(gè)up1,二樓一個(gè)down2</p><p> stoplight:buffer STD_LOGIC_VECTOR(2 DOWNTO 1);</p><p> --stoplight對(duì)應(yīng)stop按鍵</p><p> uplight,downlight:buffer ST
12、D_LOGIC;</p><p> --uplight,downlight分別對(duì)應(yīng)up1,down2按鍵</p><p> udsig:BUFFER STD_LOGIC; </p><p> --電梯的狀態(tài),0代表(預(yù))上升,1代表(預(yù))下 </p><p> POSITION:BUFFER INTEGER RANGE 1
13、 TO 2;</p><p><b> --電梯的位置</b></p><p> doorlight:buffer STD_LOGIC);</p><p> --門(mén)燈,開(kāi)門(mén)燈亮,關(guān)門(mé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> --十個(gè)狀態(tài),初始,開(kāi)門(mén),關(guān)門(mén),延時(shí)1~4,上升,下降,停</p&g
15、t;<p> SIGNAL state:state_type:=stopon1;</p><p> SIGNAL clearup,cleardn,anjianclk,dianticlk:STD_LOGIC;</p><p> --上升清零,下降清零,按鍵時(shí)鐘,電梯時(shí)鐘</p><p> SIGNAL q:STD_LOGIC_VECTOR(3 D
16、OWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(clk) --設(shè)定按鍵時(shí)鐘和電梯時(shí)鐘,外部時(shí)鐘周期設(shè)為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'; --復(fù)位</p><p> elsif rising_edge(dianticlk) THEN</p><p> CASE state IS --設(shè)定狀態(tài)機(jī)的各個(gè)狀態(tài) </p><p> WHEN stopon1=>doorlight<='1'; position<=1;pos:=1; state<
21、=wait1;</p><p> WHEN wait1=>state<=wait2; --延時(shí)</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'; --從開(kāi)門(mén)到關(guān)門(mén)經(jīng)歷5個(gè)電梯時(shí)鐘周期</p><p> IF udsig='0' THEN --(預(yù))上升狀態(tài)時(shí)</p>
23、<p> IF position=2 THEN--電梯在二樓時(shí)</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 --電梯在一樓時(shí)</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 --(預(yù))下降狀態(tài)時(shí)</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--電梯在二樓時(shí)</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) --設(shè)定按鍵</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> 功能分析:此程序一共有三個(gè)進(jìn)程(process):時(shí)鐘設(shè)定,狀態(tài)機(jī)設(shè)定,按鍵設(shè)定。狀態(tài)機(jī)進(jìn)程的運(yùn)行基于電梯時(shí)鐘dianticlk,此時(shí)鐘為外部時(shí)鐘的周期是外部時(shí)鐘周期的十六倍;按鍵設(shè)定進(jìn)程基于按鍵時(shí)鐘anjianclk,此時(shí)鐘的周期為外部時(shí)鐘周期的兩倍。按鍵時(shí)鐘周期比電梯時(shí)鐘周期短,這就意味著按鍵設(shè)定進(jìn)程比狀態(tài)機(jī)進(jìn)程快,這
44、就保證了每一次按鍵都能掃描并保留而不會(huì)被狀態(tài)機(jī)進(jìn)程中的清零程序消除。一共有7個(gè)燈顯示電梯的狀況:stoplight1~2、uplight,downlight、udsig、POSITION1~2、doorlight。</p><p> 電梯的初始狀態(tài)是停在一樓,門(mén)關(guān)。復(fù)位鍵reset可實(shí)現(xiàn)電梯的初始功能。電梯在一樓時(shí),position1=1,其燈亮,并且電梯一直保持預(yù)上升狀態(tài),udsig=1,其燈亮。當(dāng)接到一樓外
45、部請(qǐng)求信號(hào)(up1)時(shí),uplight亮,電梯門(mén)打開(kāi),doorlight亮。四秒后,電梯門(mén)關(guān),doorlight滅。這時(shí),只有收到去二樓的請(qǐng)求(stop2)時(shí),才會(huì)上二樓,此時(shí)stoplight2亮,直到門(mén)開(kāi)為止。若門(mén)關(guān)時(shí)接收到的是stop1的請(qǐng)求,則電梯不上二樓,門(mén)開(kāi),四秒后門(mén)再關(guān)閉。</p><p> 當(dāng)電梯停在二樓是,情況類(lèi)似。</p><p><b> 仿真結(jié)果如下圖
46、:</b></p><p> 電梯在一樓,乘客在外部按up1請(qǐng)求進(jìn)入,進(jìn)入電梯后按stop2請(qǐng)求上二樓</p><p> 電梯在一樓,乘客在外部按up1請(qǐng)求進(jìn)入,進(jìn)入電梯后按stop1請(qǐng)求出電梯</p><p> 電梯在二樓,乘客在外部按down2請(qǐng)求進(jìn)入,進(jìn)入電梯后按stop1請(qǐng)求下一樓</p><p><b>
47、 三、課程設(shè)計(jì)總結(jié)</b></p><p> 本設(shè)計(jì)是基于VHDL語(yǔ)言開(kāi)發(fā)的兩層電梯控制器。以Quartus Ⅱ?yàn)殚_(kāi)發(fā)環(huán)境,最終在EDA實(shí)驗(yàn)箱上實(shí)現(xiàn)其演示的基本功能。其功能包括:顯示電梯當(dāng)前所在樓層,顯示有請(qǐng)求發(fā)生的樓層,響應(yīng)樓層請(qǐng)求,關(guān)門(mén)延時(shí)設(shè)置,電梯開(kāi)關(guān)門(mén)顯示。</p><p> 這個(gè)課程設(shè)計(jì)還有很多不足之處:</p><p> 1、電梯各個(gè)
48、進(jìn)程依賴(lài)于3個(gè)不同的時(shí)鐘,這樣做雖然比較精確但是顯得有些多余,經(jīng)老師的指導(dǎo)后發(fā)現(xiàn)其實(shí)除了開(kāi)關(guān)門(mén)過(guò)程時(shí)需要時(shí)鐘以外其他地方不用時(shí)鐘也沒(méi)有關(guān)系。</p><p> 2、沒(méi)有考慮到消抖問(wèn)題。</p><p> 3、電梯控制程序只實(shí)現(xiàn)了兩層樓電梯的控制,這種電梯在現(xiàn)實(shí)生活中應(yīng)用很少,而且此程序不方便向更多層電梯控制器程序擴(kuò)展。</p><p> 本課程設(shè)計(jì)遇到了不少困
49、難,主要原因是由于平時(shí)學(xué)習(xí)沒(méi)有特別系統(tǒng)認(rèn)真,所以對(duì)VHDL語(yǔ)言沒(méi)有熟練掌握,很多語(yǔ)句的具體含義和應(yīng)用都不是很了解,編程時(shí)遇到一定的困難。我是第一次接觸這種EDA實(shí)驗(yàn)箱,第一次設(shè)計(jì)一個(gè)完整的程序然后連線運(yùn)行,這個(gè)過(guò)程讓我感受到了動(dòng)手做實(shí)驗(yàn)的樂(lè)趣。很感謝老師的悉心教導(dǎo)和同學(xué)的熱心幫助,讓我比較順利的做出了這個(gè)課程設(shè)計(jì)。通過(guò)這次課程設(shè)計(jì),我深刻了解到光學(xué)會(huì)課本上的知識(shí)沒(méi)有用,還要運(yùn)用到實(shí)踐中,考試100分不代表就能熟練掌握這項(xiàng)技術(shù)。</
50、p><p><b> 四、參考文獻(xiàn)</b></p><p> 侯伯亨,劉凱,顧新 . VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第三版). 西安電子科技大學(xué)出版社 . 2009</p><p> 曾繁泰,陳美金 . VHDL數(shù)字系統(tǒng)設(shè)計(jì) . 清華大學(xué)出版社 . 2001</p><p> 曾繁泰,陳美金 . VHDL程
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)之電梯控制
- eda課程設(shè)計(jì)之電梯控制
- eda課程設(shè)計(jì)--電梯控制器設(shè)計(jì)
- eda課程設(shè)計(jì)--電梯控制器設(shè)計(jì)
- eda電梯控制器課程設(shè)計(jì)報(bào)告
- eda_電梯控制器課程設(shè)計(jì)
- eda課程設(shè)計(jì)--基于fpga的4層電梯控制
- eda技術(shù)課程設(shè)計(jì)--電梯控制器電路設(shè)計(jì)
- eda彩燈控制課程設(shè)計(jì)
- 電梯控制課程設(shè)計(jì)
- 電梯控制課程設(shè)計(jì)
- 電梯控制課程設(shè)計(jì)
- eda課程設(shè)計(jì)--eda課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- eda課程設(shè)計(jì)-- eda與數(shù)字系統(tǒng)課程設(shè)計(jì)
- eda課程設(shè)計(jì)---多路彩燈控制的設(shè)計(jì)
- eda課程設(shè)計(jì)
- eda課程設(shè)計(jì)--三層電梯plc控制程序設(shè)計(jì)
- eda課程設(shè)計(jì)
- eda課程設(shè)計(jì)--用vhdl實(shí)現(xiàn)多路彩燈控制器的設(shè)計(jì)
- eda課程設(shè)計(jì)---彩燈控制器
評(píng)論
0/150
提交評(píng)論