




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、spoc/eda綜合課程設計電梯控制器設計目錄第一章 設計的性質與目的2第二章 設計任務與要求3第三章 方案選擇與論證4第四章 設計原理54.1 原理圖54.2 流程圖54.3 結構框圖64.4 程序描述6第五章部分時序仿真圖155.1 電梯上鎖155.2 電梯報警155.3 電梯超載155.4 電梯運行模擬165.5 電梯開門延時模擬185.6 電梯緊急開門19第七章 調試過程中出現的問題及解決措施20第八章 設計總結218.1 設計方案的優缺點比較218.2 心得體會22第一章 設計的性質與目的 sopc/eda綜合課程設計是繼eda技術及應用和數字電子技術課程之后開出的實踐環節教學。目的
2、是訓練學生綜合運用學過的數字電子技術和eda技術及應用的基本知識,培養獨立設計比較復雜的數字邏輯系統的能力。設計工作建立在硬件和軟件兩個平臺的基礎上。硬件平臺是可編程邏輯器件,所選的器件可保證在一片芯片上設計出題目要求的數字電路系統。軟件平臺是altera公司的quartus ii。通過課程設計,學生要掌握使用eda(電子設計自動化)工具設計數字邏輯的方法,包括設計輸入、編譯、軟件仿真、下載和硬件仿真等全過程。第二章 設計任務與要求1.設計一個4層電梯全自動控制電路。2.電梯運行鎖用一按鈕代替(開鎖上電),低電平可以運行,高電平不能運行。3.每層電梯入口處設有上行、下行請求按鈕,電梯內設有乘客
3、到達層次的停站要求開關,高電平有效。4.有電梯所處樓層指示燈和電梯上行、下行狀態指示燈。5.電梯到達某一層時,該層指示燈亮,并一直保持到電梯到達另一層為止。電梯上行或下行時,相應狀態指示燈亮。6.電梯接收到停站請求后,每層運行2秒,到達停站層,停留2秒后門自動打開,開門指示燈亮,開門6秒后電梯自動關門。7.能記憶電梯內、外的請求信號,并按照電梯的運行規則依次響應,請求信號保留至響應后撤除。8.人數超載或超重用一按鈕代替,高電平有效,超載時電梯不能運行,并有相應指示。9.事故報警按鈕高電平有效,事故報警不能運行,并有指示燈,信號保留至事故消除。10.增加手動開門、關門控制,并可調整開、關門時間。
4、第三章 方案選擇與論證電梯共有上升、下降、開門、關門、停止、一樓、二樓、三樓、四樓等幾個狀態,設計電梯就是要弄清楚這幾個狀態之間的相互轉化關系,可以假設電梯開始時在一樓,如果二三四樓有請求(包括電梯要停在二樓或二樓有上升或下降請求或停在三樓或三樓有上升或下降請求或停在四樓、或四樓有下降請求),則電梯要上升,否則就停在一樓。當電梯在二樓時,如果三樓或四樓有請求(包括電梯停在三樓或三樓有上升或下降請求或停在四樓或四樓有下降請求),則電梯要上升,如果一樓有請求(包括停在一樓或一樓有上升請求),則電梯下降。當電梯在三樓時,如果四樓有請求(包括停在四樓或四樓有下降請求),則電梯要上升,如果一樓二樓有請求
5、(包括停在一樓或二樓或一樓二樓有上升請求或二樓有下降請求),則電梯要下降,否則電梯就停在三樓。當電梯在四樓,如果一二三樓有請求(包括停在一二三樓或一二三樓有上升請求或二三樓有下降請求),則電梯下降,否則電梯停在四樓。當電梯上鎖時,電梯處于非工作狀態,所有指示燈全滅,當電梯超載時,超載燈亮,等電梯遇到緊急情況時,報警燈亮。因為電梯上升或下降是一個過程,這個過程持續兩秒,電梯開關門要持續六秒,所以還必須設計一個計數器,計數器和主控制器共同組成電路的原理方案圖,這是主控制器和計數器可以不用同一個時鐘脈沖驅動,但要處理好兩個元件的連接。當然如果主控制器是用秒脈沖驅動,可以把兩個模塊集成一個模塊。第四章
6、 設計原理4.1 原理圖clk1clockalarmoverweightit1it2it3it4up1up2up3down2down3down4opencloseled1led2led3led4upleddownled openled overweightledalarmled電 梯 控 制 器圖4.1 電梯控制器的原理圖4.2 流程圖 lt1 lt2 lt4 lt3lock or alarm or overweightlock or alarm or overweightlock or alarm or overweightlock or alarm or overweight圖4.2 電梯
7、控制器流程圖4.3 結構框圖圖4.3 電梯控制器結構圖4.4 程序描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity contrl is port(clk1,lock,alarm,overweight,it1,it2,it3,it4,up1,up2,up3,down2,down3,down4:in std_logic;-lock為電梯鎖開關 alarm為警報器開關 overweight為超重開關 it1、it2、it3、it4
8、分別表示電梯停在一二三四樓 up1表示一樓有向上請求 up2表示二樓有向上請求 up3表示三樓有向上請求 down2表示二樓有向下的請求-down3表示三樓有向下請求 down4表示四樓有向下請求 quick,delay,dengwo:in std_logic;-分別表示快速關門 延長一段時間關門 不馬上關門 led1,led2,led3,led4:out std_logic;-一二三四樓層的指示燈 alarmled,overweightled,upled,downled,dooropenled:out std_logic);-報警燈 超重燈 上行狀態燈 下降狀態燈 開門燈 end contr
9、l;architecture xin of contrl istype state_type is(start,rukou,up,down,dooropen,stop,wait1,wait2,wait3,wait4,wait5,wait6,wait7,wait8,wait9,upwait1,upwait2,dnwait1,dnwait2);-start表示初始化狀態 rukou表示程序執行狀態 up上行狀態 down下降狀態 dooropen開門狀態 stop停止運行狀態-后面幾個狀態用來延時signal state:state_type:=start;signal stopcun: std_
10、logic_vector(3 downto 0);-電梯停止樓層存儲器signal upcun,downcun: std_logic_vector(2 downto 0);-上升請求存儲器 下降請求存儲器signal dd1,dd2,dd3: std_logic_vector(3 downto 0);-信號用來交換數據beginp1:process(clk1,lock,alarm,overweight)variable position: integer range 0 to 4;beginif lock=1 then led1=0;led2=0;led3=0;led4=0;alarmled=
11、0;overweightled=0;dooropenled=0;upled=0;downled=0;-電梯上鎖elsif alarm=1 then alarmled=1;-警報燈亮elsif overweight=1 then overweightled=1;-超重燈亮elsif rising_edge(clk1) then if up1=1 then upcun(0)=1; end if; if up2=1 then upcun(1)=1; end if; if up3=1 then upcun(2)=1; end if; if down4=1 then downcun(2)=1; end
12、if; if down3=1 then downcun(1)=1; end if; if down2=1 then downcun(0)=1; end if; if it1=1 then stopcun(0)=1; end if; if it2=1 then stopcun(1)=1; end if; if it3=1 then stopcun(2)=1; end if; if it4=1 then stopcun(3)=1; end if;-將各種請求存入存儲器 dd1=0& upcun;-將上升請求存儲器擴展成四位 dd2=downcun & 0;-將下降請求擴展成四位 dd3 if dd
13、3=0000 then state=start; elsif position=0 then led1=1;position:=position+1; state if position=1 then if stopcun(0)=1 or upcun(0)=1 then stopcun(0)=0;upcun(0)=0; state=dooropen; else state=up; end if;-電梯在一樓,如果當前層有請求,進入開門狀態,同時清除請求,否則電梯上升 elsif position=2 then if stopcun(1)=1 or upcun(1)=1 or downcun(0
14、)=1 then stopcun(1)=0 ; upcun(1)=0;downcun(0)=0;state0011 then state=up; elsif dd30010 then state=down; end if;-電梯在二樓,如果當前層有請求,進入開門狀態,同時將請求清除,如果三四樓有請求,電梯上升,否則下降 elsif position=3 then if stopcun(2)=1 or upcun(2)=1 or downcun(1)=1 then stopcun(2)=0;upcun(2)=0 ;downcun(1)=0; state0111 then state=up; el
15、sif dd30100 then state=down; end if;-電梯在三樓,如果當前層有請求,進入開門狀態,同時將請求清除,如果四樓有請求,電梯上升,否則下降 elsif position=4 then if stopcun(3)=1 or downcun(2)=1 then stopcun(3)=0;downcun(2)=0;state=dooropen; else stateupled=1;statestateupled=0;position:=position+1;-到達新的樓層,上行指示燈滅 if position=1 then led1=1;led2=0;led3=0;le
16、d4=0;-一樓指示燈亮 elsif position=2 then led2=1;led1=0;led3=0;led4=0;-二樓指示燈亮 elsif position=3 then led3=1;led2=0;led1=0;led4=0;-三樓指示燈亮 elsif position=4 then led4=1;led1=0;led2=0;led3=0;-四樓指示燈亮 else led1=0;led2=0;led3=0;led40011 and stopcun(1)=0 and upcun(1)=0 and downcun(0)=0 then state0111 and stopcun(2)
17、=0 and upcun(2)=0 and downcun(1)=0 then state=up;-如果在三樓且當前層沒有請求,電梯繼續上升 else state=dooropen;if position=4 then if downcun(2)=1 then downcun(2)=0;end if; if stopcun(3)=1 then stopcun(3)=0;end if; elsif position=3 then if downcun(1)=1 then downcun(1)=0; end if; if upcun(2)=1 then upcun(2)=0; end if; if
18、 stopcun(2)=1 then stopcun(2)=0;end if; elsif position=2 then if downcun(0)=1 then downcun(0)=0; end if; if upcun(1)=1 then upcun(1)=0; end if; if stopcun(1)=1 then stopcun(1)downled=1;statestatedownled=0;position:=position-1;-到達新的樓層,下降指示燈滅 if position=1 then led1=1;led2=0;led3=0;led4=0; elsif posit
19、ion=2 then led2=1;led1=0;led3=0;led4=0; elsif position=3 then led3=1;led2=0;led1=0;led4=0; elsif position=4 then led4=1;led2=0;led3=0;led1=0; else led1=0;led2=0;led3=0;led4=0; end if; if position=3 and dd30100 and stopcun(2)=0 and upcun(2)=0 and downcun(1)=0 then state=down;-電梯在三樓且當前層沒有請求,電梯繼續下降 els
20、if position=2 and dd30010 and stopcun(1)=0 and upcun(1)=0 and downcun(0)=0 then state=down;-電梯在二樓且當前層沒有請求,電梯繼續下降 else state=dooropen;if position=1 then if upcun(0)=1 then upcun(0)=0;end if; if stopcun(0)=1 then stopcun(0)=0;end if; elsif position=2 then if upcun(1)=1 then upcun(1)=0; end if; if down
21、cun(0)=1 then downcun(0)=0; end if; if stopcun(1)=1 then stopcun(1)=0;end if; elsif position=3 then if upcun(2)=1 then upcun(2)=0;end if; if downcun(1)=1 then downcun(1)=0; end if; if stopcun(2)=1 then stopcun(2)statedooropenled=1; state if quick=1 then state=wait7;-快速關門,電梯開門后過三秒關門 elsif delay=1 the
22、n state=wait3;-延時關門,電梯開門后過九秒關門 else statestatestatestatestatestatestate dooropenled=0; if dengwo=1 then state0000 then state=rukou;-請求沒有執行完畢,繼續執行程序 else stateif position1 then stopcun(0)=1; state=rukou;-如果電梯不是停在一樓,將電梯返回到一樓 else led1=0;led2=0;led3=0;led4=0;alarmled=0; overweightled=0;dooropenled=0;up
23、led=0;downled=0; position:=0;-電梯停止運行,進入上鎖狀態 end if;end case;end if;end process p1;end xin;第五章 部分時序仿真圖5.1 電梯上鎖電梯上鎖,有請求也不執行;5.2 電梯報警當有緊急情況時,報警燈亮,有請求不會執行;5.3 電梯超載當電梯超載時,超載警報燈亮,有請求不執行5.4 電梯運行模擬這個圖模擬的是多個請求時,電梯的運行情況。先是一樓有向上請求想到二樓去同時二樓有向上請求到四樓去,接著四樓有下降請求回到一樓,電梯運行情況是:電梯在一樓(一樓指示燈led1亮)時開門持續6秒(波形上可以看到開門燈亮),關門
24、后,電梯向上運行(上行指示燈亮2秒),到二樓后(二樓指示燈led2亮),電梯開門(同樣開門燈持續亮六秒),接著電梯繼續上升,上行指示燈亮2秒,到三樓時,三樓指示燈led3亮,電梯繼續向上運行,上行指示燈亮2秒,到達四樓時四樓指示燈亮,同時電梯門打開(開門燈亮6秒),關門后,電梯向下運行(下降指示燈亮2秒),到達三樓時三樓指示燈亮,電梯繼續向下運行(下降指示燈亮2秒),到達2樓時二樓指示燈亮,電梯繼續向下運行(下降指示燈亮兩秒),到達一樓時,電梯門打開(開門燈亮),關門后沒有其它請求,電梯停止運行。四樓有個向下的請求要到三樓去,二樓有個向下的請求要到一樓,電梯運行情況為:電梯開始時在一樓,一樓指
25、示燈亮,電梯向上運行(上升指示燈亮2秒),到達二樓,二樓指示燈亮,電梯繼續向上運行(上升指示燈亮2秒),到達三樓,三樓指示燈亮,電梯仍向上運行(上升指示燈亮2秒),到達四樓,四樓指示燈亮,電梯門打開(開門燈亮6秒),電梯關門后,電梯向下運行(下降指示燈亮2秒),到達三樓(三樓指示燈亮),電梯開門(開門指示燈亮6秒),電梯繼續下降(下降指示燈亮2秒),到達二樓(二樓指示燈亮),電梯開門(開門指示燈亮6秒),電梯繼續下降(下降指示燈亮2秒),到達一樓,電梯門打開,電梯運行結束。5.5 電梯開門延時模擬電梯受到一個不馬上關門信號(dengwo=1),電梯關上的門重新打開,并延長一段時間門。5.6 電
26、梯緊急開門在這幅波形圖上,當第二次開門時有一個快速關門信號(quick=1)開門燈亮了四秒就滅了(電梯關門了),當第三次開門時收到一個延時信號(delay=1),開門燈亮了8秒才滅。注釋:由于有的信號名字太長無法全部顯示出來,現特意標示(每幅圖都一樣),信號的名稱依次為:alarm alarmled clk1 delay dengwo dooropenled down2 down3 down4 downled it1 it2 it3 it4 led1 led2 led3 led4 lock overweight overweightled quick up1 up2 up3 upled 第七章
27、 調試過程中出現的問題及解決措施error:vhdl syntax error at contrl vhd(11)near text “if”:expecting “end”,or “(”or an identifier (“if” is a reserved keyword),or a parallel statement 這通常是警告你你寫的程序在11行附近的if在后面沒有end if 與之呼應。由于程序中用到判斷條件的語句非常多,所以這個錯誤會經常出現。error: vhdl error at haha.vhd(16): type of identifier haha does not
28、agree with its usage as void type這是在警告你程序16行定義的haha的類型與其使用形式不對應,很可能是haha為變量,卻被當作信號來賦值或者是haha為信號,卻被當作變量使用。error: vhdl syntax error at contrl.vhd(4) near text這表明程序第四行有錯誤,很可能知識用中文打了幾個標點符號而已,這個要注意了,千萬不要忽略了這個小錯誤,很可能你就是找不出來在那干著急。error: vhdl syntax error at contrl.vhd(17) :variable “position” is used but n
29、ot declared這個錯誤是因為你使用了變量variable 但是卻在之前沒有先進行定義,當然也可能是你定義了,但在使用時由于筆下誤而打錯了。還有一個值得注意的問題是在組合邏輯中不能使用if條件語句,而應該用when 語句來代替。還有問題就是在使用邏輯變量時,0和1一定要加上單引號,但對于整型變量卻不用加單引號。錯誤一般提示都比較明顯,很容易就可以改正過來,比較難改的是警告warning,因為錯誤一般都是語法造成的,只要學會了vhdl語言,掌握其使用方法就很容易改正錯誤,但警告不同,警告一般都是思維邏輯錯誤造成的,當然一般的警告不必管,但如果警告過多,比如超過10條以上你就得小心了,你需要把思路重新整理一下,看看有沒有明顯的邏輯錯誤,如果沒有,在看看是哪個地方出毛病了,當把警告消除到10個以內基本就可以運行程序出現結果了。第八章 設計總結8.1 設計方案分析比較我設計的方案比較精簡,因為我把電梯在四個樓層的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- AGS-16C3F-AGS-16M8F-生命科學試劑-MCE
- 政策引導下的2025年醫療器械國產化產業政策優化研究報告
- 2025年食品冷鏈物流溫控技術設備應用市場前景分析報告
- 2025年直播平臺內容監管與行業自律發展策略研究
- 2025年線下演出市場復蘇與演出市場可持續發展報告
- 深度解析2025年智能投顧平臺風險控制與合規運營挑戰與機遇報告
- 2025年城市公交樞紐無障礙設施建設社會穩定風險評估報告
- 血液凈化醫療服務行業競爭格局分析及市場前景預測報告
- 2025年咖啡連鎖品牌市場布局下的高鐵站飲品品牌市場定位報告
- 新能源汽車廢舊電池回收利用行業產業鏈上下游企業競爭力對比報告
- 醫療廢物管理相關法律、法規介紹
- 漯河醫學高等專科學校輔導員招聘考試行政管理教師崗筆試面試歷年真題庫試卷
- 無砟軌道底座板首件施工總結(最新)
- 油藏數值模擬中幾種主要的數學模型
- 政審在校證明
- 200立方米谷氨酸發酵罐設計
- 變電站一次通流-通壓試驗方法的探討與實踐
- 線槽燈安裝施工工法
- 自由公差對照表(共3頁)
- 約克YS螺桿式冷水機組_《操作手冊》6-3
- WPS表格基礎教程ppt課件
評論
0/150
提交評論