SPOCEDA電梯控制器課程設(shè)計(jì)說明書.doc_第1頁
SPOCEDA電梯控制器課程設(shè)計(jì)說明書.doc_第2頁
SPOCEDA電梯控制器課程設(shè)計(jì)說明書.doc_第3頁
SPOCEDA電梯控制器課程設(shè)計(jì)說明書.doc_第4頁
SPOCEDA電梯控制器課程設(shè)計(jì)說明書.doc_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

spoc/eda綜合課程設(shè)計(jì)電梯控制器設(shè)計(jì)目錄第一章 設(shè)計(jì)的性質(zhì)與目的2第二章 設(shè)計(jì)任務(wù)與要求3第三章 方案選擇與論證4第四章 設(shè)計(jì)原理54.1 原理圖54.2 流程圖54.3 結(jié)構(gòu)框圖64.4 程序描述6第五章部分時(shí)序仿真圖155.1 電梯上鎖155.2 電梯報(bào)警155.3 電梯超載155.4 電梯運(yùn)行模擬165.5 電梯開門延時(shí)模擬185.6 電梯緊急開門19第七章 調(diào)試過程中出現(xiàn)的問題及解決措施20第八章 設(shè)計(jì)總結(jié)218.1 設(shè)計(jì)方案的優(yōu)缺點(diǎn)比較218.2 心得體會(huì)22第一章 設(shè)計(jì)的性質(zhì)與目的 sopc/eda綜合課程設(shè)計(jì)是繼eda技術(shù)及應(yīng)用和數(shù)字電子技術(shù)課程之后開出的實(shí)踐環(huán)節(jié)教學(xué)。目的是訓(xùn)練學(xué)生綜合運(yùn)用學(xué)過的數(shù)字電子技術(shù)和eda技術(shù)及應(yīng)用的基本知識,培養(yǎng)獨(dú)立設(shè)計(jì)比較復(fù)雜的數(shù)字邏輯系統(tǒng)的能力。設(shè)計(jì)工作建立在硬件和軟件兩個(gè)平臺(tái)的基礎(chǔ)上。硬件平臺(tái)是可編程邏輯器件,所選的器件可保證在一片芯片上設(shè)計(jì)出題目要求的數(shù)字電路系統(tǒng)。軟件平臺(tái)是altera公司的quartus ii。通過課程設(shè)計(jì),學(xué)生要掌握使用eda(電子設(shè)計(jì)自動(dòng)化)工具設(shè)計(jì)數(shù)字邏輯的方法,包括設(shè)計(jì)輸入、編譯、軟件仿真、下載和硬件仿真等全過程。第二章 設(shè)計(jì)任務(wù)與要求1.設(shè)計(jì)一個(gè)4層電梯全自動(dòng)控制電路。2.電梯運(yùn)行鎖用一按鈕代替(開鎖上電),低電平可以運(yùn)行,高電平不能運(yùn)行。3.每層電梯入口處設(shè)有上行、下行請求按鈕,電梯內(nèi)設(shè)有乘客到達(dá)層次的停站要求開關(guān),高電平有效。4.有電梯所處樓層指示燈和電梯上行、下行狀態(tài)指示燈。5.電梯到達(dá)某一層時(shí),該層指示燈亮,并一直保持到電梯到達(dá)另一層為止。電梯上行或下行時(shí),相應(yīng)狀態(tài)指示燈亮。6.電梯接收到停站請求后,每層運(yùn)行2秒,到達(dá)停站層,停留2秒后門自動(dòng)打開,開門指示燈亮,開門6秒后電梯自動(dòng)關(guān)門。7.能記憶電梯內(nèi)、外的請求信號,并按照電梯的運(yùn)行規(guī)則依次響應(yīng),請求信號保留至響應(yīng)后撤除。8.人數(shù)超載或超重用一按鈕代替,高電平有效,超載時(shí)電梯不能運(yùn)行,并有相應(yīng)指示。9.事故報(bào)警按鈕高電平有效,事故報(bào)警不能運(yùn)行,并有指示燈,信號保留至事故消除。10.增加手動(dòng)開門、關(guān)門控制,并可調(diào)整開、關(guān)門時(shí)間。第三章 方案選擇與論證電梯共有上升、下降、開門、關(guān)門、停止、一樓、二樓、三樓、四樓等幾個(gè)狀態(tài),設(shè)計(jì)電梯就是要弄清楚這幾個(gè)狀態(tài)之間的相互轉(zhuǎn)化關(guān)系,可以假設(shè)電梯開始時(shí)在一樓,如果二三四樓有請求(包括電梯要停在二樓或二樓有上升或下降請求或停在三樓或三樓有上升或下降請求或停在四樓、或四樓有下降請求),則電梯要上升,否則就停在一樓。當(dāng)電梯在二樓時(shí),如果三樓或四樓有請求(包括電梯停在三樓或三樓有上升或下降請求或停在四樓或四樓有下降請求),則電梯要上升,如果一樓有請求(包括停在一樓或一樓有上升請求),則電梯下降。當(dāng)電梯在三樓時(shí),如果四樓有請求(包括停在四樓或四樓有下降請求),則電梯要上升,如果一樓二樓有請求(包括停在一樓或二樓或一樓二樓有上升請求或二樓有下降請求),則電梯要下降,否則電梯就停在三樓。當(dāng)電梯在四樓,如果一二三樓有請求(包括停在一二三樓或一二三樓有上升請求或二三樓有下降請求),則電梯下降,否則電梯停在四樓。當(dāng)電梯上鎖時(shí),電梯處于非工作狀態(tài),所有指示燈全滅,當(dāng)電梯超載時(shí),超載燈亮,等電梯遇到緊急情況時(shí),報(bào)警燈亮。因?yàn)殡娞萆仙蛳陆凳且粋€(gè)過程,這個(gè)過程持續(xù)兩秒,電梯開關(guān)門要持續(xù)六秒,所以還必須設(shè)計(jì)一個(gè)計(jì)數(shù)器,計(jì)數(shù)器和主控制器共同組成電路的原理方案圖,這是主控制器和計(jì)數(shù)器可以不用同一個(gè)時(shí)鐘脈沖驅(qū)動(dòng),但要處理好兩個(gè)元件的連接。當(dāng)然如果主控制器是用秒脈沖驅(qū)動(dòng),可以把兩個(gè)模塊集成一個(gè)模塊。第四章 設(shè)計(jì)原理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 電梯控制器流程圖4.3 結(jié)構(gòu)框圖圖4.3 電梯控制器結(jié)構(gòu)圖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為電梯鎖開關(guān) alarm為警報(bào)器開關(guān) overweight為超重開關(guān) it1、it2、it3、it4分別表示電梯停在一二三四樓 up1表示一樓有向上請求 up2表示二樓有向上請求 up3表示三樓有向上請求 down2表示二樓有向下的請求-down3表示三樓有向下請求 down4表示四樓有向下請求 quick,delay,dengwo:in std_logic;-分別表示快速關(guān)門 延長一段時(shí)間關(guān)門 不馬上關(guān)門 led1,led2,led3,led4:out std_logic;-一二三四樓層的指示燈 alarmled,overweightled,upled,downled,dooropenled:out std_logic);-報(bào)警燈 超重?zé)?上行狀態(tài)燈 下降狀態(tài)燈 開門燈 end contrl;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表示初始化狀態(tài) rukou表示程序執(zhí)行狀態(tài) up上行狀態(tài) down下降狀態(tài) dooropen開門狀態(tài) stop停止運(yùn)行狀態(tài)-后面幾個(gè)狀態(tài)用來延時(shí)signal state:state_type:=start;signal stopcun: std_logic_vector(3 downto 0);-電梯停止樓層存儲(chǔ)器signal upcun,downcun: std_logic_vector(2 downto 0);-上升請求存儲(chǔ)器 下降請求存儲(chǔ)器signal dd1,dd2,dd3: std_logic_vector(3 downto 0);-信號用來交換數(shù)據(jù)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=0;overweightled=0;dooropenled=0;upled=0;downled=0;-電梯上鎖elsif alarm=1 then alarmled=1;-警報(bào)燈亮elsif overweight=1 then overweightled=1;-超重?zé)袅羍lsif 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 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;-將各種請求存入存儲(chǔ)器 dd1=0& upcun;-將上升請求存儲(chǔ)器擴(kuò)展成四位 dd2=downcun & 0;-將下降請求擴(kuò)展成四位 dd3 if dd3=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;-電梯在一樓,如果當(dāng)前層有請求,進(jìn)入開門狀態(tài),同時(shí)清除請求,否則電梯上升 elsif position=2 then if stopcun(1)=1 or upcun(1)=1 or downcun(0)=1 then stopcun(1)=0 ; upcun(1)=0;downcun(0)=0;state0011 then state=up; elsif dd30010 then state=down; end if;-電梯在二樓,如果當(dāng)前層有請求,進(jìn)入開門狀態(tài),同時(shí)將請求清除,如果三四樓有請求,電梯上升,否則下降 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; elsif dd30100 then state=down; end if;-電梯在三樓,如果當(dāng)前層有請求,進(jìn)入開門狀態(tài),同時(shí)將請求清除,如果四樓有請求,電梯上升,否則下降 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;-到達(dá)新的樓層,上行指示燈滅 if position=1 then led1=1;led2=0;led3=0;led4=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)=0 and upcun(2)=0 and downcun(1)=0 then state=up;-如果在三樓且當(dāng)前層沒有請求,電梯繼續(xù)上升 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 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;-到達(dá)新的樓層,下降指示燈滅 if position=1 then led1=1;led2=0;led3=0;led4=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;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;-電梯在三樓且當(dāng)前層沒有請求,電梯繼續(xù)下降 elsif position=2 and dd30010 and stopcun(1)=0 and upcun(1)=0 and downcun(0)=0 then state=down;-電梯在二樓且當(dāng)前層沒有請求,電梯繼續(xù)下降 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 downcun(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;-快速關(guān)門,電梯開門后過三秒關(guān)門 elsif delay=1 then state=wait3;-延時(shí)關(guān)門,電梯開門后過九秒關(guān)門 else statestatestatestatestatestatestate dooropenled=0; if dengwo=1 then state0000 then state=rukou;-請求沒有執(zhí)行完畢,繼續(xù)執(zhí)行程序 else stateif position1 then stopcun(0)=1; state=rukou;-如果電梯不是停在一樓,將電梯返回到一樓 else led1=0;led2=0;led3=0;led4=0;alarmled=0; overweightled=0;dooropenled=0;upled=0;downled=0; position:=0;-電梯停止運(yùn)行,進(jìn)入上鎖狀態(tài) end if;end case;end if;end process p1;end xin;第五章 部分時(shí)序仿真圖5.1 電梯上鎖電梯上鎖,有請求也不執(zhí)行;5.2 電梯報(bào)警當(dāng)有緊急情況時(shí),報(bào)警燈亮,有請求不會(huì)執(zhí)行;5.3 電梯超載當(dāng)電梯超載時(shí),超載警報(bào)燈亮,有請求不執(zhí)行5.4 電梯運(yùn)行模擬這個(gè)圖模擬的是多個(gè)請求時(shí),電梯的運(yùn)行情況。先是一樓有向上請求想到二樓去同時(shí)二樓有向上請求到四樓去,接著四樓有下降請求回到一樓,電梯運(yùn)行情況是:電梯在一樓(一樓指示燈led1亮)時(shí)開門持續(xù)6秒(波形上可以看到開門燈亮),關(guān)門后,電梯向上運(yùn)行(上行指示燈亮2秒),到二樓后(二樓指示燈led2亮),電梯開門(同樣開門燈持續(xù)亮六秒),接著電梯繼續(xù)上升,上行指示燈亮2秒,到三樓時(shí),三樓指示燈led3亮,電梯繼續(xù)向上運(yùn)行,上行指示燈亮2秒,到達(dá)四樓時(shí)四樓指示燈亮,同時(shí)電梯門打開(開門燈亮6秒),關(guān)門后,電梯向下運(yùn)行(下降指示燈亮2秒),到達(dá)三樓時(shí)三樓指示燈亮,電梯繼續(xù)向下運(yùn)行(下降指示燈亮2秒),到達(dá)2樓時(shí)二樓指示燈亮,電梯繼續(xù)向下運(yùn)行(下降指示燈亮兩秒),到達(dá)一樓時(shí),電梯門打開(開門燈亮),關(guān)門后沒有其它請求,電梯停止運(yùn)行。四樓有個(gè)向下的請求要到三樓去,二樓有個(gè)向下的請求要到一樓,電梯運(yùn)行情況為:電梯開始時(shí)在一樓,一樓指示燈亮,電梯向上運(yùn)行(上升指示燈亮2秒),到達(dá)二樓,二樓指示燈亮,電梯繼續(xù)向上運(yùn)行(上升指示燈亮2秒),到達(dá)三樓,三樓指示燈亮,電梯仍向上運(yùn)行(上升指示燈亮2秒),到達(dá)四樓,四樓指示燈亮,電梯門打開(開門燈亮6秒),電梯關(guān)門后,電梯向下運(yùn)行(下降指示燈亮2秒),到達(dá)三樓(三樓指示燈亮),電梯開門(開門指示燈亮6秒),電梯繼續(xù)下降(下降指示燈亮2秒),到達(dá)二樓(二樓指示燈亮),電梯開門(開門指示燈亮6秒),電梯繼續(xù)下降(下降指示燈亮2秒),到達(dá)一樓,電梯門打開,電梯運(yùn)行結(jié)束。5.5 電梯開門延時(shí)模擬電梯受到一個(gè)不馬上關(guān)門信號(dengwo=1),電梯關(guān)上的門重新打開,并延長一段時(shí)間門。5.6 電梯緊急開門在這幅波形圖上,當(dāng)?shù)诙伍_門時(shí)有一個(gè)快速關(guān)門信號(quick=1)開門燈亮了四秒就滅了(電梯關(guān)門了),當(dāng)?shù)谌伍_門時(shí)收到一個(gè)延時(shí)信號(delay=1),開門燈亮了8秒才滅。注釋:由于有的信號名字太長無法全部顯示出來,現(xiàn)特意標(biāo)示(每幅圖都一樣),信號的名稱依次為: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 第七章 調(diào)試過程中出現(xiàn)的問題及解決措施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 與之呼應(yīng)。由于程序中用到判斷條件的語句非常多,所以這個(gè)錯(cuò)誤會(huì)經(jīng)常出現(xiàn)。error: vhdl error at haha.vhd(16): type of identifier haha does not agree with its usage as void type這是在警告你程序16行定義的haha的類型與其使用形式不對應(yīng),很可能是haha為變量,卻被當(dāng)作信號來賦值或者是haha為信號,卻被當(dāng)作變量使用。error: vhdl syntax error at contrl.vhd(4) near text這表明程序第四行有錯(cuò)誤,很可能知識用中文打了幾個(gè)標(biāo)點(diǎn)符號而已,這個(gè)要注意了,千萬不要忽略了這個(gè)小錯(cuò)誤,很可能你就是找不出來在那干著急。error: vhdl syntax error at contrl.vhd(17) :variable “position” is used but not declared這個(gè)錯(cuò)誤是因?yàn)槟闶褂昧俗兞縱ariable 但是卻在之前沒有先進(jìn)行定義,當(dāng)然也可能是你定義了,但在使用時(shí)由于筆下誤而打錯(cuò)了。還有一個(gè)值得注意的問題是在組合邏輯中不能使用if條件語句,而應(yīng)該用when 語句來代替。還有問題就是在使用邏輯變量時(shí),0和1一定要加上單引號,但對于整型變量卻不用加單引號。錯(cuò)誤一般提示都比較明顯,很容易就可以改正過來,比較難改的是警告warning,因?yàn)殄e(cuò)誤一般都是語法造成的,只要學(xué)會(huì)了vhdl語言,掌握其使用方法就很容易改正錯(cuò)誤,但警告不同,警告一般都是思維邏輯錯(cuò)誤造成的,當(dāng)然一般的警告不必管,但如果警告過多,比如超過10條以上你就得小心了,你需要把思路重新整理一下,看看有沒有明顯的邏輯錯(cuò)誤,如果沒有,在看看是哪個(gè)地方出毛病了,當(dāng)把警告消除到10個(gè)以內(nèi)基本就可以運(yùn)行程序出現(xiàn)結(jié)果了。第八章 設(shè)計(jì)總結(jié)8.1 設(shè)計(jì)方案分析比較我設(shè)計(jì)的方案比較精簡,因?yàn)槲野央娞菰谒膫€(gè)樓層的

溫馨提示

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

評論

0/150

提交評論