自動售郵票機的控制電路設(shè)計_第1頁
自動售郵票機的控制電路設(shè)計_第2頁
自動售郵票機的控制電路設(shè)計_第3頁
自動售郵票機的控制電路設(shè)計_第4頁
自動售郵票機的控制電路設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

題目:自動售郵票機的控制電路設(shè)計用兩個發(fā)光二極管分別模擬售出面值為6角和8角的郵票,購買者可以通過開關(guān)選擇一種一種面值的郵票,燈亮表達郵票售出,用開關(guān)分別模擬1角、5角和1元硬幣投入,用發(fā)光二極管分別代表找回的剩余的硬幣,每次只能售出一枚郵票,當(dāng)所投硬幣達成或超過購買者所選面值時,售出一枚郵票,并找回剩余的硬幣,回到初始狀態(tài);當(dāng)所投硬幣值局限性面值時,可以通過一個復(fù)位鍵退回所投硬幣,回到初始狀態(tài)。EDA實驗設(shè)計報告題目:自動售郵票機的控制電路設(shè)計班級:姓名:指導(dǎo)教師:完畢時間:2023-5-30設(shè)計目的與規(guī)定用兩個發(fā)光二極管分別模擬售出面值為6角和8角的郵票,購買者可以通過開關(guān)選擇一種一種面值的郵票,燈亮表達郵票售出,用開關(guān)分別模擬1角、5角和1元硬幣投入,用發(fā)光二極管分別代表找回的剩余的硬幣,每次只能售出一枚郵票,當(dāng)所投硬幣達成或超過購買者所選面值時,售出一枚郵票,并找回剩余的硬幣,回到初始狀態(tài);當(dāng)所投硬幣值局限性面值時,可以通過一個復(fù)位鍵退回所投硬幣,回到初始狀態(tài)。設(shè)計方案找零1、整體方框圖找零判決電路脈沖發(fā)生器復(fù)位電路判決電路脈沖發(fā)生器復(fù)位電路輸入電路輸入電路售出郵票售出郵票2、設(shè)計原理運用狀態(tài)機模擬輸入累加的錢的總數(shù),通過判決電路對輸入的錢的總值進行判斷,根據(jù)判斷結(jié)果做出售票、找零、復(fù)位等相應(yīng)的動作。而對狀態(tài)機得應(yīng)用應(yīng)注意其設(shè)計環(huán)節(jié):a.邏輯抽象。分析給定的邏輯問題,搞清楚輸入和輸出,通常取因素或者條件為輸入,結(jié)果為輸出。然后定義輸入輸出邏輯狀態(tài)和每個電路狀態(tài)的含義,并對電路各個狀態(tài)進行排序和它們之間的轉(zhuǎn)換關(guān)系搞清楚。這個過程非常需要嚴謹務(wù)實的作風(fēng),由于定義電路的狀態(tài)的優(yōu)劣會影響你的整個設(shè)計。假如大方向都沒有搞好,接下來的設(shè)計會變得艱難,甚至走入死角。屆時候又回過頭來重新定義分析。

b.通過從實際問題分析出來的時序問題,通過畫出狀態(tài)圖一目了然搞清楚它們之間的轉(zhuǎn)換關(guān)系。并對狀態(tài)圖進行化簡優(yōu)化。對在相同的輸入下有相同輸出,并轉(zhuǎn)換到同樣一個次態(tài)的。要進行合并,這樣設(shè)計出來的狀態(tài)機會更簡樸,高效。

3、設(shè)計思緒運用狀態(tài)機,分別模擬所輸入的錢的累積值,根據(jù)輸入的錢的面值的不同,進入不同的次態(tài),在各個不同的狀態(tài)下,又通過比較所輸入的錢的總值與所選郵票的面值,做出售出郵票并找出相應(yīng)的零錢。在下述實驗原理中,進程一為脈沖發(fā)生電路,不斷的通過脈沖變化來掃描是否有相應(yīng)的輸入。進程二是狀態(tài)轉(zhuǎn)換,將次態(tài)的值重新付給現(xiàn)態(tài),不斷的改變現(xiàn)有狀態(tài)。進程三中,一方面判斷了是選擇的何種面值的郵票,并且在復(fù)位信號沒有被按下的情況下對所售面值為六毛的郵票進行了分析解決,從剛開始輸入為零時,根據(jù)輸入不同的面值的錢來判斷下一個狀態(tài)是什么,并且對在每個相應(yīng)狀態(tài)下應(yīng)當(dāng)做什么進行了指明,例如假如剛開始輸入了一毛,則由初始狀態(tài)轉(zhuǎn)到輸入了一毛的這個狀態(tài),假如此時繼續(xù)輸入錢,根據(jù)輸入的面值進入下一個相應(yīng)狀態(tài),而假如此時按下復(fù)位信號,則找出這一毛錢,當(dāng)然這時是不會售出郵票的,同時現(xiàn)態(tài)恢復(fù)為初始狀態(tài)在選購六毛郵票的情況下,設(shè)投幣初始狀態(tài)為ST0,假如投入一枚一毛硬幣為(累積一毛)ST1,假如投入一枚五毛硬幣為(累積五毛)ST5,假如投入一枚一元硬幣則輸出一枚郵票并且找零四毛且次態(tài)重新定義為初始狀態(tài)ST0;在ST1狀態(tài)下假如再次輸入一枚一毛硬幣(累計兩毛)為ST2,假如投入一枚五毛硬幣(累計六毛)則輸出一枚郵票且次態(tài)重新定義為初始狀態(tài)ST0,假如投入一枚一元硬幣(累計一塊一)則輸出一枚郵票并且找零五毛且次態(tài)重新定義為初始狀態(tài)ST0;在ST2狀態(tài)下假如再次輸入一枚一毛硬幣(累計三毛)為ST3,假如投入一枚五毛硬幣(累計七毛)則輸出一枚郵票并且找零一毛且次態(tài)重新定義為初始狀態(tài)ST0,假如投入一枚一元硬幣(累計一塊二)則輸出一枚郵票并且找零六毛且次態(tài)重新定義為初始狀態(tài)ST0;在ST3狀態(tài)下假如再次輸入一枚一毛硬幣(累計四毛)為ST4,假如投入一枚五毛硬幣(累計八毛)則輸出一枚郵票并且找零兩毛且次態(tài)重新定義為初始狀態(tài)ST0,假如投入一枚一元硬幣(累計一塊三)則輸出一枚郵票并且找零七毛且次態(tài)重新定義為初始狀態(tài)ST0;在ST4狀態(tài)下假如再次輸入一枚一毛硬幣(累計五毛)為ST5,假如投入一枚五毛硬幣(累計九毛)則輸出一枚郵票并且找零三毛且次態(tài)重新定義為初始狀態(tài)ST0,假如投入一枚一元硬幣(累計一塊四)則輸出一枚郵票并且找零八毛且次態(tài)重新定義為初始狀態(tài)ST0;在ST5狀態(tài)下假如再次輸入一枚一毛硬幣(累計六毛)則輸出一枚郵票并且態(tài)重新定義為初始狀態(tài)ST0,假如投入一枚五毛硬幣(累計一元)則輸出一枚郵票并且找零四毛且次態(tài)重新定義為初始狀態(tài)ST0,假如投入一枚一元硬幣(累計一塊五)則輸出一枚郵票并且找零九毛且次態(tài)重新定義為初始狀態(tài)ST0。假如選擇的郵票面值為八毛,七基本原理和六毛面值郵票的同樣,在這里就不贅述了。假如在累計錢數(shù)小于郵票面值的情況下按下復(fù)位鍵,這時找零端口的輸出為此時的錢的總和,可以實現(xiàn)退錢是通過在每個狀態(tài)下定義了兩個找零信號,在為按復(fù)位鍵的情況下是將信號SIG_ZHAO賦值給找零信號端口,而在按下復(fù)位鍵的情況下,找零信號端口的輸出為ZHAORE這個信號的值,而這兩個信號的值在不同狀態(tài)下有相應(yīng)的不同的值,根據(jù)以上思緒我們便可以進行程序的編寫了。4實驗程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYZIDONGISPORT(RESET:INSTD_LOGIC;--復(fù)位信號CLK,LIU,BA:INSTD_LOGIC;--INYM,INWM,INYY:INSTD_LOGIC;--錢輸入端口YOU:OUTSTD_LOGIC;--郵票出口ZHAO:OUTSTD_LOGIC_VECTOR(3DOWNTO0));--找錢出口ENDZIDONG;ARCHITECTUREBEHAVOFZIDONGISTYPESTATESIS(ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7);--狀態(tài)定義SIGNALYIMAO,WUMAO,YIKUAI:STD_LOGIC;--錢輸入信號SIGNALSIG_YOU:STD_LOGIC; --輸出相應(yīng)信號SIGNALSIG_ZHAO:STD_LOGIC_VECTOR(3DOWNTO0);--找零相應(yīng)信號SIGNALZHAORE:STD_LOGIC_VECTOR(3DOWNTO0);--復(fù)位時的找零SIGNALCURRENT_STATE:STATES; --現(xiàn)態(tài)SIGNALNEXT_STATE:STATES; --次態(tài)BEGINP1:PROCESS(CLK)--將輸入送相應(yīng)的信號BEGINIFCLK'EVENTANDCLK='1'THENYIMAO<=INYM;WUMAO<=INWM;YIKUAI<=INYY;ENDIF;ENDPROCESSP1;p2:PROCESS(RESET,CLK)--次態(tài)給現(xiàn)態(tài)BEGINIFRESET='1'THENCURRENT_STATE<=ST0;ELSIFCLK'EVENTANDCLK='1'THENCURRENT_STATE<=NEXT_STATE;ENDIF;ENDPROCESSp2;p3:PROCESS(CLK,CURRENT_STATE,NEXT_STATE,YIMAO,WUMAO,YIKUAI)--狀態(tài)轉(zhuǎn)換BEGINIFRESET='1'THENSIG_ZHAO<=ZHAORE;NEXT_STATE<=ST0;--復(fù)位找錢ELSIFLIU='1'THENCASECURRENT_STATEISWHENST0=>ZHAORE<="0000";--狀態(tài)S0 IFYIMAO='1'THEN --輸入1毛SIG_YOU<='0'; --不出郵票SIG_ZHAO<="0000"; --不找錢NEXT_STATE<=ST1; --次態(tài)為ST1ELSIFWUMAO='1'THEN --輸入5毛SIG_YOU<='1'; --出郵票 SIG_ZHAO<="0000"; --不找錢 NEXT_STATE<=ST5; --次態(tài)為ST5 ELSIFYIKUAI='1'THEN--輸入1塊 SIG_YOU<='1'; --出郵票 SIG_ZHAO<="0100"; --找4毛 NEXT_STATE<=ST0;--次態(tài)為ST0 ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; --不輸入都不變 NEXT_STATE<=ST0; ENDIF;WHENST1=>ZHAORE<="0001"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST2; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0000"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0101"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST1; ENDIF;WHENST2=>ZHAORE<="0010"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST3; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0001"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0110"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST2; ENDIF;WHENST3=>ZHAORE<="0011"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST4; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0010"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0111"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST3; ENDIF;WHENST4=>ZHAORE<="0100"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST5; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0011"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="1000"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST4; ENDIF;WHENST5=>ZHAORE<="0101"; IFYIMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0000"; NEXT_STATE<=ST0; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0100"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="1001"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST5; ENDIF;WHENOTHERS=>NULL; --其他狀態(tài)空操作ENDCASE;ELSIFBA='1'THEN --選擇8毛的郵票CASECURRENT_STATEISWHENST0=>ZHAORE<="0000";--狀態(tài)S0 IFYIMAO='1'THEN --輸入1毛SIG_YOU<='0'; --不出郵票SIG_ZHAO<="0000"; --不找錢NEXT_STATE<=ST1; --次態(tài)為ST1ELSIFWUMAO='1'THEN --輸入5毛SIG_YOU<='0'; --不出郵票 SIG_ZHAO<="0000"; --不找錢 NEXT_STATE<=ST5; --次態(tài)為ST5 ELSIFYIKUAI='1'THEN--輸入1塊 SIG_YOU<='1'; --出郵票 SIG_ZHAO<="0010"; --找2毛 NEXT_STATE<=ST0;--次態(tài)為ST0 ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; --不輸入都不變 NEXT_STATE<=ST0; ENDIF;WHENST1=>ZHAORE<="0001"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST2; ELSIFWUMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST6; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0011"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST1; ENDIF;WHENST2=>ZHAORE<="0010"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST3; ELSIFWUMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST7; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0100"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST2; ENDIF;WHENST3=>ZHAORE<="0011"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST4; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0000"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0101"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST3; ENDIF;WHENST4=>ZHAORE<="0100"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST5; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0001"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0110"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST4; ENDIF;WHENST5=>ZHAORE<="0101"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST6; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0010"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0111"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST5; ENDIF;WHENST6=>ZHAORE<="0110"; IFYIMAO='1'THEN SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST7; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0011"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'THEN SIG_YOU<='1'; SIG_ZHAO<="1000"; NEXT_STATE<=ST0; ELSE SIG_YOU<='0'; SIG_ZHAO<="0000"; NEXT_STATE<=ST6; ENDIF;WHENST7=>ZHAORE<="0111"; IFYIMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0000"; NEXT_STATE<=ST0; ELSIFWUMAO='1'THEN SIG_YOU<='1'; SIG_ZHAO<="0100"; NEXT_STATE<=ST0; ELSIFYIKUAI='1'T

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論