電梯控制器-Verilog語(yǔ)言_第1頁(yè)
電梯控制器-Verilog語(yǔ)言_第2頁(yè)
電梯控制器-Verilog語(yǔ)言_第3頁(yè)
電梯控制器-Verilog語(yǔ)言_第4頁(yè)
電梯控制器-Verilog語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄摘 要電梯作為垂直方向的交通工具,在高層建筑和公共場(chǎng)所已成為不可或缺的設(shè)備。中國(guó)是全球最大的電梯市場(chǎng),也具有最強(qiáng)的電梯生產(chǎn)能力,但由于缺乏自主知識(shí)產(chǎn)權(quán)和核心技術(shù),自主品牌占市場(chǎng)的份額很少。因此要加大對(duì)電梯技術(shù)的創(chuàng)新和發(fā)展,提升電梯的性能,就需要引進(jìn)更好的技術(shù),電梯控制器就是很好的裝置,大力開發(fā)控制器是很必要的。 電梯的微機(jī)化控制主要有以下幾種形式:PLC控制;單片機(jī)控制;單板機(jī)控制;單微機(jī)控制;多微機(jī)控制;人工智能控制。本次課程設(shè)計(jì)采用了EDA技術(shù)進(jìn)行操作EDA技術(shù)打破了軟件和硬件間的壁壘,使計(jì)算機(jī)的軟件技術(shù)與硬件實(shí)現(xiàn)、設(shè)計(jì)效率與產(chǎn)品性能合二為一,它代表了電子設(shè)計(jì)

2、技術(shù)和應(yīng)用技術(shù)的發(fā)展方向。本設(shè)計(jì)采用Verilog HDL語(yǔ)言的編程技術(shù),源程序Altera公司的Quartus II軟件仿真。關(guān)鍵字:EDA技術(shù); Verilog HDL語(yǔ)言; Quartus II軟件正文1設(shè)計(jì)目的及要求1、進(jìn)一步鞏固理論知識(shí),培養(yǎng)所學(xué)理論知識(shí)的在實(shí)際中的應(yīng)用能力;掌握EDA設(shè)計(jì)的一般方法;熟悉一種EDA軟件,掌握一般EDA系統(tǒng)的調(diào)試方法;利用EDA軟件設(shè)計(jì)一個(gè)電子技術(shù)綜合問題,培養(yǎng)Verilog HDL編程、書寫技術(shù)報(bào)告的能力。為以后進(jìn)行工程實(shí)際問題的研究打下設(shè)計(jì)基礎(chǔ)。2、設(shè)計(jì)一個(gè)6層電梯控制器電路,用數(shù)碼管顯示電梯所在樓層號(hào),電梯初始狀態(tài)為第一樓層;每樓層電梯外都有上、

3、下樓請(qǐng)求開關(guān),電梯內(nèi)設(shè)有乘客到達(dá)樓層的請(qǐng)求開關(guān)、電梯所處樓層、上升模式及下降模式的指示;電梯每2秒升降一層,到達(dá)有停站請(qǐng)求的樓層后,經(jīng)4秒電梯門打開,開門指示燈亮,開門4秒后,指示燈滅,關(guān)門,關(guān)門時(shí)間3秒,電梯繼續(xù)運(yùn)行??梢酝ㄟ^快速關(guān)門和關(guān)門中斷信號(hào)控制;能記憶電梯內(nèi)外的請(qǐng)求信號(hào),當(dāng)電梯處于上升模式時(shí),只響應(yīng)比電梯所在位置高的樓請(qǐng)求信號(hào),直到最后一個(gè)上樓請(qǐng)求執(zhí)行完畢,再進(jìn)入下降模式。2設(shè)計(jì)原理2.1 設(shè)計(jì)實(shí)現(xiàn)原理根據(jù)系統(tǒng)設(shè)計(jì)要求,并考慮到系統(tǒng)的可檢驗(yàn)性,整個(gè)系統(tǒng)的輸入輸出接口設(shè)計(jì)如圖1所示:系統(tǒng)工作用2Hz基準(zhǔn)時(shí)鐘信號(hào)CLKIN,樓層上升請(qǐng)求鍵UPIN,樓層下降請(qǐng)求鍵DOWNIN,樓層選擇鍵入

4、鍵ST_CH,提前關(guān)門輸入鍵CLOSE,延遲關(guān)門輸入鍵DELAY,電梯運(yùn)行的開關(guān)鍵RUN_STOP,電梯運(yùn)行或停止指示鍵LAMP,電梯運(yùn)行或等待時(shí)間指示鍵RUN_WAIT,電梯所在樓層指示數(shù)碼管ST_OUT,樓層選擇指示數(shù)碼管DIRECT。 DTKZQCLKIN LAMPUPIN DOWNINST_CH1 RU_WAITCLOSE ST_OUTDELAY DIRECTRUN_STOP圖 1. 電梯控制器DTKZQ的輸入輸出接口圖各輸入端口的功能如下:CLKIN:基準(zhǔn)時(shí)鐘信號(hào),為系統(tǒng)提供2Hz的時(shí)鐘脈沖,上升沿有效;UPIN:電梯上升請(qǐng)求鍵。由用戶向電梯控制器發(fā)出上升請(qǐng)求。高電平有效;DOWNI

5、N:電梯下降請(qǐng)求鍵,由用戶向電梯控制器發(fā)出下降請(qǐng)求。高電平有效;ST_CH2.0:樓層選擇鍵入鍵,結(jié)合DIRECT完成樓層選擇的鍵入,高電平有效;CLOSE:提前關(guān)門輸入鍵??蓪?shí)現(xiàn)無(wú)等待時(shí)間的提前關(guān)門操作,高電平有效;DELAY:延遲關(guān)門輸入鍵??蓪?shí)現(xiàn)有等待時(shí)間的延遲關(guān)門操作,高電平有效;RUN_STOP:電梯運(yùn)行或停止開關(guān)鍵??蓪?shí)現(xiàn)由管理員控制電梯的運(yùn)行或停止,高電平有效。一下為輸出端口:LAMP:電梯運(yùn)行或等待指示鍵,指示電梯的運(yùn)行或等待狀況。高電平有效;RUN_WAIT:電梯運(yùn)行或等待時(shí)間指示鍵,指示電梯運(yùn)行狀況或等待時(shí)間的長(zhǎng)短,高電平有效;ST_OUT:電梯所在樓層指示數(shù)碼管,只是電梯

6、當(dāng)前所在的樓層數(shù)。即16層,高電平有效;DIRECT:樓層選擇指示數(shù)碼管,指示用戶所要選擇的樓層數(shù),高電平有效。2.2項(xiàng)目分塊及其實(shí)現(xiàn)方案電梯的控制狀態(tài)包括運(yùn)行狀態(tài)停止?fàn)顟B(tài)及等待狀態(tài),其中運(yùn)行狀態(tài)又包含向上狀態(tài)和向下狀態(tài)。主要?jiǎng)幼饔虚_、關(guān)門,乘客可通過鍵入開、關(guān)門按鍵,呼喚按鍵,指定樓層按鈕等來控制電梯的行與停。據(jù)此,整個(gè)電梯控制器DTLZQ應(yīng)包括如下幾個(gè)組成部分:時(shí)序輸出及樓選計(jì)數(shù)器;電梯服務(wù)請(qǐng)求處理器;電梯升降控制器;上升及下降寄存器;電梯次態(tài)生成器。該電梯控制器設(shè)計(jì)的關(guān)鍵是確定上升及下降寄存器的置位與復(fù)位。整個(gè)系統(tǒng)的內(nèi)部組成結(jié)構(gòu)圖2所示。電梯服務(wù)請(qǐng)求處理器時(shí)序輸出及樓選計(jì)數(shù)器(DIR)D

7、RECTCLKINUOINDOWNINST_CH電梯升降 控制器(LIFTOR)DELAY電梯次態(tài)生成器(LADD)上升請(qǐng)求寄存器(UR)下降請(qǐng)求寄存器(DR)CLOSERUN_STOPLAMPRUN_WAITST_OUT圖2. 電梯控制器的內(nèi)部組成結(jié)構(gòu)圖時(shí)鐘CLK請(qǐng)求信號(hào)輸入模塊樓層請(qǐng)求超 載超 載關(guān)門中斷提前關(guān)門清楚報(bào)警控制模塊 輸出顯示模塊請(qǐng)求信號(hào)顯示運(yùn)行狀態(tài)顯示所在樓層顯示門控制信號(hào)超載報(bào)警 圖3. 電梯控制器系統(tǒng)框圖2.3電梯控制器的流程圖初始化外部按鍵否請(qǐng)求信號(hào)寄存器是否有請(qǐng)求?樓層檢測(cè)電梯運(yùn)行等待判定電梯運(yùn)行方向是目標(biāo)層與本層是否同層?狀態(tài)寄存器是內(nèi)部軟件執(zhí)行機(jī)構(gòu)否外部硬件執(zhí)行機(jī)

8、構(gòu)圖4 總流程圖是否目標(biāo)層?否是電梯停止開門關(guān)門否是否停止運(yùn)行?是停止 圖5 電梯控制主流程圖3設(shè)計(jì)內(nèi)容3.1基本狀態(tài)設(shè)計(jì)1、采用信號(hào)并置處理很多輸入信號(hào)的方式:always (call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all=1'b0, call_up_5, call_up_4, call_up_3, call_up_2, call_up_1; /將各下降請(qǐng)求信號(hào)實(shí)時(shí)地合并(1樓為底層,無(wú)下降請(qǐng)求,考慮到通用性,將第1位填零) always (call_down_2 or call_down_3

9、 or call_down_4 or call_down_5 or call_down_6) down_all=call_down_6, call_down_5, call_down_4, call_down_3, call_down_2, 1'b0;/將各停靠請(qǐng)求信號(hào)實(shí)時(shí)地合并 always (request_1 or request_2 or request_3 or request_4 or request_5 or request_6) request_all=request_6, request_5, request_4, request_3, request_2, requ

10、est_1;2、通過參數(shù)定義把信號(hào)并置的方法和有限狀態(tài)機(jī)聯(lián)系起來parameter WAIT=7'b, UP=7'b, DOWN=7'b, UPSTOP=7'b, DOWNSTOP=7'b, OPENDOOR=7'b, CLOSEDOOR=7'b;/定義樓層的符號(hào)常量 parameterFLOOR1=6'b,FLOOR2=6'b,FLOOR3=6'b, FLOOR4=6'b, FLOOR5=6'b, FLOOR6=6'b; parameter TRUE=1'b1, FALSE=1&#

11、39;b0;/定義門打開和門關(guān)閉的符號(hào)常量 parameter OPEN=1'b1, CLOSED=1'b0;/定義電梯上升,下降和靜止的符號(hào)常量 parameter UPFLAG=2'b01,DNFLAG=2'b10,STATIC=2'b00;3、采用了七個(gè)狀態(tài)實(shí)現(xiàn)了有限狀態(tài)機(jī)WAITUPUPSTOPDOWNOPENDOORDOWNSTOPCLOSEDOOR圖6.狀態(tài)轉(zhuǎn)換圖黑線:WAIT TO UP TO UPSTOP TO OPENDOOR TO CLOSEDOOR TO WAIT粉紅線:WAIT TO DOWN TO DOWNSTOP TO OPE

12、NDOOR TO CLOSEDOOR TO WAIT 3.2模塊設(shè)計(jì)1、電梯主控制器模塊elevator_controller:此段智能電梯控制器由三個(gè)重要部分組成的。(a)信號(hào)并置部分,完成對(duì)5路向上請(qǐng)求、5路向下請(qǐng)求、6路內(nèi)部請(qǐng)求的信號(hào)并置,化繁為簡(jiǎn)。(b)三段式有限狀態(tài)機(jī)部分。在有請(qǐng)求的情況下,電梯控制器還要根據(jù)電梯的當(dāng)前狀態(tài)和當(dāng)前的樓層去判斷電梯的下一步該如何運(yùn)作。(c)計(jì)數(shù)器部分。完成電梯的開門、關(guān)門的時(shí)間管理。 圖7.電梯主控模塊2、分頻模塊frequence_div:這段分頻器完成對(duì)50Mhz的1分頻操作。采用傳統(tǒng)的“一半就翻轉(zhuǎn)”的計(jì)數(shù)技巧。 圖8.分頻模塊3、數(shù)碼管譯碼模塊3.

13、3波形仿真1、當(dāng)電梯處于初始狀態(tài)時(shí),電梯在高層有向下的請(qǐng)求時(shí):圖92、當(dāng)電梯停在6樓處于等待狀態(tài)時(shí),在1樓和2樓同時(shí)有向上的請(qǐng)求時(shí):圖103、當(dāng)電梯停在1樓處于等待狀態(tài)時(shí),在6樓和5樓同時(shí)有向下的請(qǐng)求時(shí):圖114、當(dāng)電梯停在6樓時(shí),有在5樓的向下的請(qǐng)求時(shí),電梯應(yīng)該先到五樓,電梯內(nèi)部請(qǐng)求到1樓,如果電梯在下降的過程中,有在2樓的向上的請(qǐng)求時(shí),電梯應(yīng)該先相應(yīng)內(nèi)部請(qǐng)求,然后相應(yīng)外部請(qǐng)求:圖125、電梯的強(qiáng)制運(yùn)行按鈕forbid:圖13總結(jié)與致謝通過本次課程設(shè)計(jì)進(jìn)一步熟悉Quartus II軟件的使用和操作方法,以及硬件實(shí)現(xiàn)時(shí)的下載方法與運(yùn)行方法;對(duì)Verilog HDL語(yǔ)言的自頂向下設(shè)計(jì)方法有了進(jìn)一

14、步的認(rèn)識(shí),對(duì)其中的許多語(yǔ)句也有了新了解,掌握;對(duì)自己獨(dú)立思考和解決問題的能力也有了很大的鍛煉。短暫的課程設(shè)計(jì)就要結(jié)束了,在此,感謝所有在學(xué)習(xí)和生活中給予我關(guān)心和幫助的人們。首先我要感謝楊紅娟、王濤兩位位老師,本次課程設(shè)計(jì)設(shè)計(jì)的選題、課題調(diào)研與撰寫工作實(shí)在和老師的指導(dǎo)下完成的。和老師淵博的知識(shí)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、一絲不茍的工作作風(fēng)、和不厭其煩的精神對(duì)我影響至深,使我受益終生,在此我向和老師表示崇高的敬意和衷心的感謝。其次,在我的課程設(shè)計(jì)期間,同課題的同學(xué)都給予了我熱情的幫助和無(wú)私的指導(dǎo),在此向這些同學(xué)們表示衷心的感謝。最后,向所有曾給予我關(guān)心和幫助的老師和同學(xué)們?cè)俅沃乱宰钪孕牡母兄x,向參加報(bào)告評(píng)審

15、、答辯的老師表示衷心的感謝和崇高的敬意。參考文獻(xiàn)1 黃仁欣EDA技術(shù)實(shí)用教程北京:清華大學(xué)出版社,20062 潘松,黃繼業(yè)EDA技術(shù)與VHDL北京:清華大學(xué)出版社,20093 江國(guó)強(qiáng)編著EDA技術(shù)與應(yīng)用(第三版).北京:電子工業(yè)出版社,20104 夏宇聞編著Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)教程.北京:北京航空航天大學(xué)出版社,20085 周祖成,程曉軍,馬卓釗編著數(shù)字電路與系統(tǒng)教學(xué)實(shí)驗(yàn)教程北京:科學(xué)出版社,20106 周潤(rùn)景,蘇良碧基于Quartus II 的數(shù)字系統(tǒng)Verilog HDL設(shè)計(jì)實(shí)例詳解北京:電子工業(yè)出版社,20107 (美國(guó))Sanir Palnitkar 譯者:夏宇聞 胡燕祥

16、 刁嵐松Verilog HDL數(shù)字設(shè)計(jì)與綜合(第2版)北京:電子工業(yè)出版社,20098 云創(chuàng)工作室Verilog HDL程序設(shè)計(jì)與實(shí)踐北京:人民郵電出版社,20099 劉福奇,劉波Verilog HDL應(yīng)用程序設(shè)計(jì)實(shí)例精講北京:電子工業(yè)出版社,200910 張延偉,楊金巖,葛愛學(xué)verilog hdl程序設(shè)計(jì)實(shí)例詳解北京:人民郵電出版社,2008附錄1、分頻模塊module frequence_div(cp_50M,cp_1); input cp_50M;/板子提供的最高時(shí)鐘 output cp_1;/要求得到的秒脈沖 reg 27:0 counter_1;/計(jì)數(shù)器 reg cp_1;/類型聲

17、明 always(posedge cp_50M) begin if(counter_1=28'h17D7840)/50M的一半到了,秒脈沖翻轉(zhuǎn) begin cp_1<=cp_1;/翻轉(zhuǎn) counter_1<=28'h; end else counter_1<=counter_1+1'b1;/否則加1 endendmodule2、智能電梯主控制模塊module elevator_controller(/input ports: cp_50M,clk,reset,forbid,call_up_1, call_up_2, call_up_3, call_up

18、_4, call_up_5,call_down_2, call_down_3, call_down_4, call_down_5,call_down_6,request_1, request_2, request_3, request_4, request_5, request_6, /output ports:out,LiftState,over_alarm,count_out,count); /output ports: output 6:0out;/輸出樓層 output 6:0 LiftState;/輸出電梯狀態(tài) output over_alarm;/出錯(cuò) output 6:0coun

19、t_out;/計(jì)數(shù)器輸出,便于我控制開關(guān)門的狀態(tài)顯示 output 2:0count;/計(jì)數(shù)器 /input ports: input cp_50M; input clk,reset,call_up_1,call_up_2,call_up_3,call_up_4,call_up_5,call_down_2,call_down_3,call_down_4,call_down_5,call_down_6,request_1,request_2,request_3,request_4,request_5,request_6;input forbid;/pos與Posout的關(guān)系:當(dāng)前狀態(tài)一改變,po

20、s立即作相應(yīng)改變,而PosOut則是當(dāng)前狀態(tài)在要變到下一狀態(tài)的瞬間/,將PosOut作相應(yīng)改變。如從WAIT切換到第一個(gè)UP時(shí),pos立即加一,而PosOut則要等到第一個(gè)UP/即將切換到第二個(gè)UP時(shí),才加一。/這個(gè)說的簡(jiǎn)單一點(diǎn),就是移位寄存器,便于對(duì)電梯狀態(tài)的實(shí)時(shí)的控制wire over_alarm;wire 6:0out;wire 6:0count_out; reg 5:0pos,PosOut; reg 2:0 count;/門開后要持續(xù)5個(gè)時(shí)鐘周期,用count來計(jì)數(shù) reg DoorFlag; reg 1:0 UpDnFlag; reg 6:0 LiftState,NextState;

21、/分別表示電梯的當(dāng)前狀態(tài)和下一狀態(tài) wire real_clk;/up_all,down_all,request_all分別用來合并向上請(qǐng)求的各信號(hào),向下請(qǐng)求的各信號(hào)和??空?qǐng)求的各信號(hào)/以便判斷電梯在狀態(tài)間如何轉(zhuǎn)移時(shí)更簡(jiǎn)潔 reg 5:0 up_all,down_all,request_all;/定義電梯7種狀態(tài)的符號(hào)常量 parameter WAIT=7'b, UP=7'b, DOWN=7'b, UPSTOP=7'b , DOWNSTOP=7'b, OPENDOOR=7'b, CLOSEDOOR=7'b;/定義樓層的符號(hào)常量 param

22、eter FLOOR1=6'b, FLOOR2=6'b, FLOOR3=6'b, FLOOR4=6'b, FLOOR5=6'b, FLOOR6=6'b; parameter TRUE=1'b1, FALSE=1'b0;/定義門打開和門關(guān)閉的符號(hào)常量 parameter OPEN=1'b1, CLOSED=1'b0;/定義電梯上升,下降和靜止的符號(hào)常量 parameter UPFLAG=2'b01,DNFLAG=2'b10,STATIC=2'b00; assign real_clk=(clk&

23、amp;(forbid); /采用屏蔽時(shí)鐘的方法來實(shí)現(xiàn)“電梯強(qiáng)制禁止運(yùn)行”。方法雖然違反了“同步電路最好/沒有時(shí)鐘門控”的要求,但是在此只要“負(fù)面影響”不是很大還是可以接受的。/將各上升請(qǐng)求信號(hào)實(shí)時(shí)地合并(6樓為頂層,無(wú)上升請(qǐng)求,考慮到通用性,將第4位填零) always (call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all=1'b0, call_up_5, call_up_4, call_up_3, call_up_2, call_up_1; /將各下降請(qǐng)求信號(hào)實(shí)時(shí)地合并(1樓為底層,無(wú)下降請(qǐng)求,

24、考慮到通用性,將第1位填零) always (call_down_2 or call_down_3 or call_down_4 or call_down_5 or call_down_6) down_all=call_down_6, call_down_5, call_down_4, call_down_3, call_down_2, 1'b0;/將各??空?qǐng)求信號(hào)實(shí)時(shí)地合并 always (request_1 or request_2 or request_3 or request_4 or request_5 or request_6) request_all=request_6,

25、 request_5, request_4, request_3, request_2, request_1; always (posedge real_clk or posedge reset) if(reset) count<=0; else if(NextState=OPENDOOR)&&(count<5)/or else if(NextState=OPENDOOR) count<=count+1;/如果計(jì)數(shù)不到5且下一狀態(tài)為OPENDOOR的話,繼續(xù)計(jì)數(shù) else count<=0;/清零,以備下次計(jì)數(shù) /display which floor

26、the elevator is. display_decode h1(cp_50M,PosOut,out,over_alarm); display_decode_count h2(cp_50M,count,count_out); / finite state machine in the style of three segments ,三段式/1st StateShift always block,sequential state transition,有限狀態(tài)機(jī)第一段 always (posedge real_clk or posedge reset) if(reset) begin Li

27、ftState<=WAIT; end else LiftState<=NextState;/2nd StateShift always block,combinational condition judgement,有限狀態(tài)機(jī)第二段 always (LiftState or up_all or down_all or request_all or pos or count or UpDnFlag) case(LiftState) WAIT: begin if(request_all>0)/有??空?qǐng)求否 begin if(request_all&pos)>0)/停

28、靠請(qǐng)求中有當(dāng)前樓層??空?qǐng)求否 NextState=OPENDOOR;/有當(dāng)前樓層請(qǐng)求,則下一狀態(tài)轉(zhuǎn)開門 else if(request_all>pos)/有當(dāng)前樓層之上的??空?qǐng)求否(優(yōu)先向上的請(qǐng)求) NextState=UP;/有則,下一狀態(tài)轉(zhuǎn)上升 else NextState=DOWN;/只有當(dāng)前樓層之下的??空?qǐng)求,下一狀態(tài)轉(zhuǎn)下降 end else if(up_all&pos)|(down_all&pos)/上下請(qǐng)求中有當(dāng)前樓層請(qǐng)求否 begin NextState=OPENDOOR; end else if(up_all>pos)|(down_all>po

29、s)/上下請(qǐng)求中有當(dāng)前樓層之上的請(qǐng)求否 NextState=UP; else if(up_all|down_all)/上下請(qǐng)求中有當(dāng)前樓層之下的請(qǐng)求否 NextState=DOWN; else NextState=WAIT;/無(wú)任何請(qǐng)求,繼續(xù)處于WAIT模式 end UP: begin if(request_all&pos)|(up_all&pos)/??炕蛏仙?qǐng)求中有當(dāng)前樓層的請(qǐng)求否 NextState=UPSTOP;/有,下一狀態(tài)轉(zhuǎn)為UPSTOP(??亢笠?s才開門,UPSTOP即為這1s的過渡期) else if(request_all>pos)|(up_all&g

30、t;pos)/??炕蛏仙?qǐng)求中有當(dāng)前樓層之上的請(qǐng)求否 NextState=UP; else if(down_all>0)/有下降請(qǐng)求否 begin if(down_all>pos)&&(down_allpos)>pos)/下降請(qǐng)求中有當(dāng)前樓層的請(qǐng)求否 NextState=UP; else if(down_all&pos)|(pos<FLOOR6) /其實(shí)這樣做意義不大,只是使上下標(biāo)志提前變化 NextState=UPSTOP; else if(down_all&pos)&&(pos=FLOOR6)/事實(shí)上不滿足第一條件的話

31、,電梯根本不會(huì)到達(dá)第四層 NextState=DOWNSTOP; else/下降請(qǐng)求中只有當(dāng)前樓層之下的請(qǐng)求 NextState=DOWN; end else if(request_all|up_all)/只有當(dāng)前樓層之上的??炕蛏仙?qǐng)求否 NextState=DOWN; else NextState=WAIT;/無(wú)任何請(qǐng)求,轉(zhuǎn)為WAIT模式 end/DOWN的狀態(tài)轉(zhuǎn)移請(qǐng)參見UP的狀態(tài)轉(zhuǎn)移 DOWN: begin if(request_all&pos)|(down_all&pos) NextState=DOWNSTOP; else if(request_all&FLOO

32、R1)<pos&&(request_all&FLOOR1)|(request_all&FLOOR2)<pos&&(request_all&FLOOR2)|(request_all&FLOOR3)<pos&&(request_all&FLOOR3)|(request_all&FLOOR4)<pos&&(request_all&FLOOR4)|(request_all&FLOOR5)<pos&&(request_all&

33、;FLOOR5)|(request_all&FLOOR6)<pos&&(request_all&FLOOR6) NextState=DOWN; else if(down_all&FLOOR1)<pos&&(down_all&FLOOR1)|(down_all&FLOOR2)<pos&&(down_all&FLOOR2)|(down_all&FLOOR3)<pos&&(down_all&FLOOR3)|(down_all&FLOOR4)&

34、lt;pos&&(down_all&FLOOR4)|(down_all&FLOOR5)<pos&&(down_all&FLOOR5)|(down_all&FLOOR6)<pos&&(down_all&FLOOR6) NextState=DOWN; else if(up_all>0) begin if(up_all&FLOOR1)<pos&&(up_all&FLOOR1)|(up_all&FLOOR2)<pos&&(up_a

35、ll&FLOOR2)|(up_all&FLOOR3)<pos&&(up_all&FLOOR3)|(up_all&FLOOR4)<pos&&(up_all&FLOOR4)|(up_all&FLOOR5)<pos&&(up_all&FLOOR5)|(up_all&FLOOR6)<pos&&(up_all&FLOOR6) NextState=DOWN; else if(up_all&pos)&&(pos>FLOO

36、R1) NextState=DOWNSTOP; else if(up_all&pos)&&(pos=FLOOR1) NextState=UPSTOP; else NextState=UP; end else if(request_all|down_all) NextState=UP; else NextState=WAIT; end UPSTOP: begin NextState=OPENDOOR;/???時(shí)鐘周期后開門 end DOWNSTOP: begin NextState=OPENDOOR;/停靠1時(shí)鐘周期后開門 end OPENDOOR: begin if(c

37、ount<5)/開門不足5周期,則繼續(xù)轉(zhuǎn)移到開門狀態(tài) NextState=OPENDOOR; else NextState=CLOSEDOOR;/開門5周期后,關(guān)門 end CLOSEDOOR: begin if(UpDnFlag=UPFLAG)/開門關(guān)門前電梯是處于上升狀態(tài)嗎 begin if(request_all&pos)|(up_all&pos)/上升或??空?qǐng)求中有當(dāng)前樓層的請(qǐng)求否,有可能關(guān)門的瞬間又有新的請(qǐng)求 NextState=OPENDOOR; else if(request_all>pos)|(up_all>pos)/上升或??空?qǐng)求中有當(dāng)前樓層

38、之上的請(qǐng)求否 NextState=UP; else if(down_all>0)/有下降請(qǐng)求否 begin if(down_all>pos)&&(down_allpos)>pos) NextState=UP;/有當(dāng)前樓層之上的下降請(qǐng)求,則下一狀態(tài)轉(zhuǎn)移上升 else if(down_all&pos)>0)/有當(dāng)前樓層的下降請(qǐng)求信號(hào),且更上層無(wú)下降請(qǐng)求 NextState=OPENDOOR; else/只有低于當(dāng)前層的下降請(qǐng)求 NextState=DOWN; end else if(request_all|up_all)/上升和??空?qǐng)求中有當(dāng)前層的請(qǐng)

39、求且只有當(dāng)前層下的請(qǐng)求 NextState=DOWN; else NextState=WAIT;/無(wú)任何請(qǐng)求,轉(zhuǎn)為WAIT模式 end/請(qǐng)參考UpDnFlag=UPFLAG的注釋 else if(UpDnFlag=DNFLAG) begin if(request_all&pos)|(down_all&pos) NextState=OPENDOOR; else if(request_all&FLOOR1)<pos&&(request_all&FLOOR1)|(request_all&FLOOR2)<pos&&(r

40、equest_all&FLOOR2)|(request_all&FLOOR3)<pos&&(request_all&FLOOR3)|(request_all&FLOOR4)<pos&&(request_all&FLOOR4)|(request_all&FLOOR5)<pos&&(request_all&FLOOR5)|(request_all&FLOOR6)<pos&&(request_all&FLOOR6) NextState=DOW

41、N; else if(down_all&FLOOR1)<pos&&(down_all&FLOOR1)|(down_all&FLOOR2)<pos&&(down_all&FLOOR2)|(down_all&FLOOR3)<pos&&(down_all&FLOOR3)|(down_all&FLOOR4)<pos&&(down_all&FLOOR4)|(down_all&FLOOR5)<pos&&(down_all&am

42、p;FLOOR5)|(down_all&FLOOR6)<pos&&(down_all&FLOOR6) NextState=DOWN; else if(up_all>0) begin if(up_all&FLOOR1)<pos&&(up_all&FLOOR1)|(up_all&FLOOR2)<pos&&(up_all&FLOOR2)|(up_all&FLOOR3)<pos&&(up_all&FLOOR3)|(up_all&FLOOR4)<pos&&(up_all&a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論