版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計實驗簡易三層電梯控制器學(xué)院:信息與通信工程學(xué)院專業(yè):通信工程班級:姓名:學(xué)號:設(shè)計課題的任務(wù)要求(一)、實驗?zāi)康?. 熟練掌握 VHDL 語言和 QuartusII 軟件的使用;2. 理解狀態(tài)機(jī)的工作原理和設(shè)計方法;3. 掌握利用 EDA 工具進(jìn)行自頂向下的電子系統(tǒng)設(shè)計方法;(二)、相關(guān)知識本實驗要利用狀態(tài)機(jī)設(shè)計實現(xiàn)一個三層電梯控制系統(tǒng), 與其他控制系統(tǒng)一樣, 本系統(tǒng)劃 分為控制器和受控電路兩部分。 控制器使整個系統(tǒng)按設(shè)定的工作方式實現(xiàn)電梯的上升下降和 開關(guān)門, 并接收受控部分即外部按鈕以及內(nèi)部按鈕的反饋信號, 決定其狀態(tài)轉(zhuǎn)換方向及輸出 信號,控制整個系統(tǒng)的工作過
2、程。三層電梯系統(tǒng)的有上升下降 LED指示燈,開關(guān)門 LED指示燈,所有 LED燈均為高電平點亮。 設(shè)置 4s的開關(guān)門等待電路,用數(shù)碼管顯示電梯樓層,用按鈕模擬電梯外部及內(nèi)部的按鈕 (BTN)。系統(tǒng)有正常工作和復(fù)位兩種工作模式。(三)、實驗任務(wù) 模擬真實電梯的運行情況,設(shè)計制作一個簡易電梯控制器控制二層電梯的運行?;疽螅?. 電梯設(shè)有一層、二層外部呼叫按鈕和內(nèi)部一層、二層指定按鈕(BTN)。2. 利用數(shù)碼管顯示電梯所在樓層,用 LED顯示電梯運行狀態(tài)如上行、下行、開門、關(guān)門等。提高要求:1. 點陣顯示樓層;2. 用點陣顯示樓層的上下滾動移出移入表示電梯的上行或下行運行方向3. 增加為三層電梯
3、控制器二系統(tǒng)設(shè)計(包括設(shè)計思路、總體框圖、分塊設(shè)計)一)設(shè)計思路電梯控制器采用狀態(tài)機(jī)來實現(xiàn) , 思路比較清晰。可以將電梯等待的每秒鐘以及開門、 關(guān)門都看成一個獨立的狀態(tài)。 由于電梯又是每秒上升或下降一層 , 所以就可以通過一個統(tǒng)一 的1秒為周期的時鐘來觸發(fā)狀態(tài)機(jī)。 根據(jù)電梯的實際工作情況 , 可以把狀態(tài)機(jī)設(shè)置 10個狀態(tài), 分別是“電梯停留在第 1層”、“開門”、“ 關(guān)門”、“開門等待第 1秒”、“開門等待第 2 秒”、“開門等待第 3秒”、“開門等待第 4秒”、“上升”、“下降”和“停止”狀態(tài)。各 個狀態(tài)之間的轉(zhuǎn)換條件可由設(shè)計要求所決定。對于特殊情況:當(dāng)復(fù)位信號reset為高電平時,則回到最
4、初狀態(tài)。(二)總體框圖1. 系統(tǒng)結(jié)構(gòu)框圖2. 模塊劃分方框圖3控制模塊流程圖4.狀態(tài)轉(zhuǎn)移圖三)分塊設(shè)計 在 VHDL設(shè)計中,采用 自頂向下 的設(shè)計思路。1.頂層模塊中,根據(jù)硬件設(shè)計,設(shè)置如下端口: 外部時鐘信號: clk 異步復(fù)位按鍵 : reset 各層上升下降請求端口: f1upbutton,f2dnbutton, 各層停站信號: stop1button,stop2button,stop3button 電梯位置信號: position 電梯模式(上升 / 下降)信號: udsig 上升、下降、停站請求寄存信號: fuplight,fdnlight,stoplight 開關(guān)門信號: door
5、light 數(shù)碼管共陰極控制: dout1 選通信號; choose2.在底層中,把不同功能分模塊設(shè)計。主分頻模塊 (分頻器模塊 ):外部時鐘信號 CLK的頻率為 50MHz ,而實際需要的 內(nèi)部計時時鐘頻率為 1Hz,需要一個分頻電路。輸入端口:CLK外部時鐘信號輸出端口:CLK_OUT分頻后信號次分頻模塊 (防抖動模塊 ):按鍵有效按下方觸發(fā)上升沿,引起狀態(tài)變化,防抖防止一些無效的按鍵抖動影響狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移。輸入端口:CLK外部時鐘信號輸出端口:CLK_OUT1分頻后信號狀態(tài)機(jī)模塊:描述電梯所有十個狀態(tài)之間詳細(xì)的狀態(tài)轉(zhuǎn)移和轉(zhuǎn)移條件。輸入端口:CLK時鐘信號, RESET復(fù)位信號 , PO
6、SITION信號輸出端口: f1upbutton,f2dnbutton, udsig doorlight數(shù)碼管顯示模塊:接收數(shù)字信號,進(jìn)行 7 位數(shù)碼管顯示譯碼輸出。輸入接口:POSITION輸入信號輸出接口:dou1 共陰極控制, choose 選通信號燈控制模塊: 實現(xiàn)狀態(tài)記憶和清零, 保存之前狀態(tài)機(jī)所處狀態(tài), 消除已過狀態(tài)輸入接口:RESET信號, buttonclk 信號輸出接口:stop1button,stop2button,stop3button, ,fuplight,fdnlight,stoplight三仿真波形及波形分析1 第二層電梯外部有上升請求 , 當(dāng)乘客進(jìn)入電梯以后 ,
7、在電梯內(nèi)部要求上升到第三層 , 電梯上升到第三層 , 開門 4 秒以后關(guān)門 , 停留在第三層。2當(dāng)電梯停留在第三層的時候,在電梯外第二層有下降請求 ,電梯下降到二層, 相應(yīng)下降 請求,此后電梯內(nèi)部沒有停留在哪層的請求,所以電梯停留在第二層。3. 同時有上升和下降請求信號時,原先電梯停留在第一層,這時電梯外三層有下降請求。 電梯上升到第三層,乘客進(jìn)入電梯后要求下降到一層,與此同時,電梯外二層有上升請求, 電梯首先鄉(xiāng)音下降請求后再響應(yīng)這個上升請求, 所以電梯線下降到一層再上升到第二層。 最 后乘客在電梯內(nèi)要求上升到三層,所以電梯最后停留在三層。4. 原先電梯停留在第一層,電梯外第三層有下降請求,電
8、梯上升升到三層,乘客進(jìn)入電梯后要求下降到一層,此時二層有下降請求, 接著又有上升請求, 電梯先在二層停留。 然后下降到一層,隨后又響應(yīng)二層上升請求, 上升到二層, 乘客進(jìn)入電梯后要求上升到三層,電梯最后停留在三層。5.復(fù)位 狀態(tài)四源程序(注釋)library ieee;use-程序包的說明use lizhouthreelift isport(clk:in std_logic;reset:in std_logic; f1upbutton:in std_logic; f2upbutton:in std_logic; f2dnbutton:in std_logic; f3dnbutton:in st
9、d_logic; stop1button:in std_logic;stop2button:in std_logic;stop3button:in std_logic; position:buffer integer range 1 to 3; udsig:buffer std_logic;-庫的說明-實體-時鐘信號-異步復(fù)位端口-一層上升請求端口-二層上升請求端口-二層下降請求端口-三層下降請求端口-一層停站請求端口-二層停站請求端口-三層停站請求端口-電梯位置信號-電梯模式(上升或下降)信號fuplight,fdnlight,stoplight:buffer std_logic_vecto
10、r(3 downto 1);-上升、下降、停站請求寄存信號doorlight:out std_logic;-開關(guān)門信號dout1:out std_logic_vector(6 downto 0);choose:out std_logic_vector(5 downto 0);end entity lizhouthreelift;architecture one of lizhouthreelift is -結(jié)構(gòu)體type lift_state is - 定義十個狀態(tài)(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwai
11、t4,up,down,stop); signal mylift:lift_state;signal clearup:std_logic;- 上升和停站請求清除信號signal cleardn:std_logic;- 下降和停站請求清除信號signal liftclk:std_logic;signal buttonclk:std_logic;signal COUNT1:integer range 0 to ;signal COUNT2:integer range 0 to 6499;beginctrlift:process(reset,liftclk)variable pos:integer r
12、ange 3 downto 1;beginif reset='1' then-異步復(fù)位,電梯的初始狀態(tài)為一層開門狀態(tài)mylift<=stopon1;clearup<='0'cleardn<='0'elseif liftclk'event and liftclk='1' thencase mylift iswhen stopon1=>doorlight<='1'position<=1;pos:=1;mylift<=doorwait1;when doorwait1=&g
13、t;- 電梯等待 4smylift<=doorwait2;when doorwait2=>clearup<='0'cleardn<='0'mylift<=doorwait3;when doorwait3=>mylift<=doorwait4;when doorwait4=>mylift<=doorclose;-關(guān)門,判定電梯下一個運行方式when doorclose=>doorlight<='0'if udsig='1' then- 電梯處在上升模式if posit
14、ion=3 thenif fuplight="000" and fdnlight="000" and stoplight="000" then-沒有請求信號時,電梯停在當(dāng)前層udsig<='0'mylift<=doorclose;elsif fdnlight(3)='1' or stoplight(3)='1' then- 本層有請求信號是,電梯開門udsig<='0'mylift<=dooropen;else-否則下降udsig<='
15、;0'mylift<=down;end if;elsif position=2 thenif fuplight="000" and fdnlight="000" and stoplight="000" thenudsig<='1'mylift<=doorclose;elsif fuplight(2)='1' or stoplight(2)='1' then-本層有上升或停站請求時時,電梯開門udsig<='1'mylift<=door
16、open;elsif fuplight="000" and stoplight="000" and fdnlight="010" then-只有二層有下降請求時,電梯開門udsig<='0'mylift<=dooropen;elsif stoplight(3)='1' or fdnlight(3)='1' then-三層有停站請求或下降請求,則上升udsig<='1'mylift<=up;elseudsig<='0'mylif
17、t<=down;end if;elsif position=1 thenif fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='1'mylift<=doorclose;elsif stoplight(1)='1' or fuplight(1)='1' thenudsig<='1'mylift<=dooropen;elseudsig<='1'
18、;mylift<=up;end if;end if;elsif udsig='0' then- 電梯處在下降模式if position=3 thenif fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='0'mylift<=doorclose;elsif fdnlight(3)='1' or stoplight(3)='1' thenudsig<='0
19、9;mylift<=dooropen;elseudsig<='0'mylift<=down;end if;elsif position=2 thenif fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='0'mylift<=doorclose;elsif fdnlight(2)='1' or stoplight(2)='1' thenudsig<=
20、9;0'mylift<=dooropen;elsif fdnlight="000" and stoplight="000" and fuplight="010" then udsig<='1'mylift<=dooropen;elsif fuplight(1)='1' or stoplight(1)='1' then-一層有停站請求或上升請求,則下降udsig<='0'mylift<=down;elseudsig<='1
21、'mylift<=up;end if;elsif position=1 thenif fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='1'mylift<=doorclose;elsif stoplight(1)='1' or fuplight(1)='1' thenudsig<='1'mylift<=dooropen;elseudsig<=
22、39;1'mylift<=up;end if;end if;end if;position<=position+1;-電梯樓層數(shù)加一pos:=pos+1;if pos<3 and (stoplight(pos)='1' or fuplight(pos)='1') then則停mylift<=stop; - 電梯在一層或二層, 本層有停站或上升請求時, 止elsif pos=3 and (stoplight(pos)='1' or fdnlight(pos)='1') thenmylift<=s
23、top;-電梯處在三層,并且有三層停站或下降請求,則停止elsemylift<=doorclose;end if;when down=>-電梯處在下降狀態(tài)position<=position-1;-電梯樓層數(shù)減一pos:=pos-1;if pos>1 and (stoplight(pos)='1' or fdnlight(pos)='1') thenmylift<=stop;elsif pos=1 and (stoplight(pos)='1' or fuplight(pos)='1') thenmy
24、lift<=stop;elsemylift<=doorclose;end if;when stop=>mylift<=dooropen;when dooropen=>doorlight<='1'if udsig='1' thenif position<3 and (fuplight(pos)='1' or stoplight(pos)='1') then clearup<='1'elseclearup<='1'cleardn<='1
25、'end if;elsif udsig='0' thenif position>1 and (fdnlight(pos)='1' or stoplight(pos)='1') then cleardn<='1'- 清除當(dāng)前層上升和停站請求elseclearup<='1'cleardn<='1'end if;end if;mylift<=doorwait1;end case;end if;end if;end process ctrlift;ctrlight:pr
26、ocess(reset,buttonclk)- 信號燈控制進(jìn)程beginif reset='1' then- 復(fù)位,寄存信號清零fuplight<="000"fdnlight<="000"stoplight<="000"elseif buttonclk'event and buttonclk='1' thenif clearup='1' thenfuplight(position)<='0'stoplight(position)<=&
27、#39;0'elseif f1upbutton='1' thenfuplight(1)<='1'elsif f2upbutton='1' thenfuplight(2)<='1'end if;end if;if cleardn='1' thenfdnlight(position)<='0'stoplight(position)<='0'elseif f2dnbutton='1' thenfdnlight(2)<='1
28、9;elsif f3dnbutton='1' thenfdnlight(3)<='1'end if;end if;if stop1button='1' thenstoplight(1)<='1'elsif stop2button='1' thenstoplight(2)<='1'elsif stop3button='1' then-上升和停站請求清零-記憶各層上升請求-下降和停站請求清零-記憶各層下降請求-記憶各層停站請求stoplight(3)<='
29、1'end if;end if;end if;end process ctrlight;time1:process(clk)beginIF (clk'EVENT AND clk='1') THEN COUNT1<=COUNT1 + 1; IF (COUNT1=) THENCOUNT1<=0;liftclk<= NOT liftclk;END IF;END IF;END PROCESS time1;time2:process(clk)beginIF (clk'EVENT AND clk='1') THEN COUNT2&l
30、t;=COUNT2 + 1; IF (COUNT2=6499) THENCOUNT2<=0;buttonclk<= NOT buttonclk;END IF;END IF;END PROCESS time2;process(position)beginif position=1 thendout1<="0110000"choose<="111110"elsif position=2 thendout1<="1101101"choose<="111110"elsif position=3 thendout1<="1111001"choose<="111110"end if;end process;end architecture on
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版鋁灰處理項目風(fēng)險管理與保險合同4篇
- 2025至2030年中國片式固體電解質(zhì)電容器數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國尼龍銀膠三折傘數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度汽車租賃平臺運營合作協(xié)議7篇
- 二零二五年度網(wǎng)絡(luò)安全合作利益分配與風(fēng)險防范合同4篇
- 二零二五年度大摩中金平和分手協(xié)議(專利許可終止及費用退還)4篇
- 二零二四年度有限責(zé)任公司增資擴(kuò)股、資源整合及市場拓展協(xié)議3篇
- 二零二五年度水路運輸代理及船舶租賃服務(wù)合同4篇
- 二零二五年度儲能設(shè)備箱涵工程勞務(wù)分包與環(huán)保責(zé)任協(xié)議3篇
- 二零二四年公共停車場新能源汽車充電設(shè)施建設(shè)合同3篇
- 2024生態(tài)環(huán)境相關(guān)法律法規(guī)考試試題
- 有砟軌道施工工藝課件
- 兩辦意見八硬措施煤礦安全生產(chǎn)條例宣貫學(xué)習(xí)課件
- 40篇短文搞定高中英語3500單詞
- 人教版高中數(shù)學(xué)必修二《第九章 統(tǒng)計》同步練習(xí)及答案解析
- 兒科護(hù)理安全警示教育課件
- 三年級下冊口算天天100題
- 國家中英文名稱及代碼縮寫(三位)
- 人員密集場所消防安全培訓(xùn)
- 液晶高壓芯片去保護(hù)方法
- 拜太歲科儀文檔
評論
0/150
提交評論