1. 程式人生 > >自動售飲機設計 (狀態機)

自動售飲機設計 (狀態機)

實驗內容:

     1. 設計一個自動售飲料機的控制邏輯電路。

     該機器有一個投幣口,每次只能投入1枚1元或5角的硬幣。

當投入了1元5角的硬幣,機器自動給出1杯飲料。當投入了2元的硬幣,機器在自動給出1杯飲料時,還找回1枚5角的硬幣。

    確定輸入/輸出變數、電路的狀態並化簡,做出狀態轉換圖、狀態轉換表。

2. 在完成以上邏輯設計後,用VHDL程式設計並模擬。

自動售飲料機的控制邏輯電路設計

      取投幣訊號為輸入邏輯變數:令A=1表示投入1枚一元硬幣。B=1表示投入1枚五角硬幣。

邏輯抽象    輸出變數:Y=1表示給出一杯飲料。Z=1表示找回一枚五角的硬幣。

輸出: 所有的輸出情況為

YZ = 00、YZ = 10、YZ = 11 。

系統框圖:

         輸出飲料              輸出找零

輸入:當前投入的幣值,

AB = 00、金額為0

AB = 01、金額為5角;AB = 10、金額為1元。

輸出:

設Z1 =1→   輸出飲料;

Z2 =1→輸出找零。所有的輸出情況為Z1Z2 = 00、Z1Z2 = 10、Z1Z2 = 11 。

分析:

       輸出飲料                       輸出找零

輸入:當前投入的幣值,

X1X2 = 00、金額為0;X1X2 = 01、金額為5角;X1X2 = 10、金額為1元。

狀態分析

狀態轉換圖

所有的輸出情況:

Z1Z2 = 00

Z1Z2 = 10

Z1Z2 = 11

設未投幣前電路的初始狀態為S0,狀態S1為已經投入五角硬幣,狀態S2為已經投入一元硬幣。

狀態轉換表

View Code
 1 library ieee;
 2 use ieee.std_logic_1164.all;
 3 entity sell_state is
 4 port( clk , rst : in std_logic;
 5              x   : in std_logic_vector(1 downto 0);
 6             y   : out std_logic_vector(1 downto
0)); 7 end sell_state; 8 architecture behave of sell_state is 9 type states is (state0 , state1 , state2); 10 signal state : states; 11 begin 12 process(clk , rst , x) 13 begin 14 if rst = '1' then state <= state1; y <= "00"; 15 elsif (clk'event and clk = '1') then 16 case state is 17 when state0 => 18 if(x = "01") then state <= state1; y <= "00"; 19 elsif(x = "10") then state <= state2; y <= "00"; 20 else state <= state0; y <= "00"; 21 end if; 22 when state1 => 23 if(x = "10") then state <= state0; y <= "10"; --rst <= '1'; 24 elsif(x = "01") then state <= state2; y <= "00"; 25 else state <= state1; y <= "00"; 26 end if; 27 when state2 => 28 if(x = "10") then state <= state0; y <= "11"; --rst <= '1'; 29 elsif(x = "01") then state <= state0; y <= "10"; --rst <= '1'; 30 else state <= state2; y <= "00"; 31 end if; 32 end case; 33 end if; 34 end process; 35 end behave;

相關推薦

自動設計 狀態

實驗內容:      1. 設計一個自動售飲料機的控制邏輯電路。      該機器有一個投幣口,每次只能投入1枚1元或5角的硬幣。 當投入了1元5角的硬幣,機器自動給出1杯飲料。當投入了2元的硬幣,機器在自動給出1杯飲料時,還找回1枚5角的硬幣。     確定輸入/輸出變數、

FSM狀態、HFSM分層狀態、BT行為樹的區別

分類 log 巡邏 其中 感到 人工智能 執行者 跳轉 藍色 遊戲人工智能AI中最常聽見的就是這三個詞: FSM 這個不用說拉,百度一大堆解釋, 簡單將就是將遊戲AI行為分為一個一個的狀態,狀態與狀態之間的過渡通過事件的觸發來形成。 比如士兵的行為有“巡邏”,“追擊敵人”,

基於STM32F407的bootloader、IAP、Flash_APP、上位設計

基於STM32F407的bootloader、IAP、Flash_APP、上位機設計 第一部分:Flash_App設計 前期準備: 一、硬體:STM32F407VET6板一塊,IAP使用串列埠通訊,板上需引出串列埠或有DB9介面都行(如果不使用串列埠,使用其他協議均可)

Unity Animator StateMachineBehaviour狀態事件

繼承StateMachineBehaviour,以開始事件為例,重寫OnStateEnter方法: public class NoteBookController: StateMachineBehav

Python實現自動指令碼基礎篇

不知不覺肝陰陽師也快一年了,對這遊戲真是又愛又恨,最近剛剛釋出了PC版,突然很想嘗試著寫個指令碼掛機,話不多說進入正題。 簡單的滑鼠操作 遊戲掛機指令碼,無非就是自動移動滑鼠,自動點選,進行重複操作,所以,第一步就是如何控制滑鼠 import wi

伺服器架構設計3------狀態的使用

如圖所示,recv函式設定為非堵塞的,執行緒可以週期性的探測是否有資料到來,如果來了,則為ses產生Data arrived事件,狀態機進入process data函式處理資料函式,同時將狀態再次設定為wait data,如果recv返回值為-1,探測出網路資料結束,則產生Data finish事件,則進入f

如何以面向物件的思想設計有限狀態

# 狀態機的概念 有限狀態機又稱有限狀態自動機,簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學計算模型,用英文縮寫也被簡稱為 FSM。 FSM 會響應“事件”而改變狀態,當事件發生時,就會呼叫一個函式,而且 FSM 會執行動作產生輸出,所執行的動作會因為當前系統的狀態和輸入的事件不同而

虛擬安裝Cent OS

stat 前期準備 裏的 multi 網絡連接 img centos6.5 創建 主界面 轉載:http://www.cnblogs.com/kkdd-2013/p/3973807.html 0 前言   本篇主要介紹在虛擬機VMware上安裝CentOS6.5的過程,並且

使用vmware vconverter從物理遷移系統到虛擬P2V多圖

ensure 網卡通信 src block 用戶界面 vswitch sp2 winrar select zhuan:https://segmentfault.com/a/1190000002697929 本文完整記錄了如何從物理服務器,保持所有環境配置信息,紋絲不

iOS真命令自動化測試

獲取裝置的的UDID idevice_id --list # 顯示當前所連線裝置的 udid instruments -s devices # 列出所有裝置,包括真機、模擬器、mac ideviceinfo 可以在返回的資料中找到 udid idevice_id -l 蘋果手機

23種設計模式 之 State模式狀態模式 C語言

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

2016華為校招試題軟體開發

今天華為的機試題明顯變難了,而且和往年的不一樣了,準備了前些年的題目,但是今年的做起來很不習慣。機試時可以上網,但是搜不到原題。最後的機試分數300分,只做了第一題和第二題。 如果你想去華為,早早準備,多刷刷華為的OJ (華為線上訓練與測試平臺) http://career-oj

線性判別--感知演算法perceptron algorithm

  感知器演算法是一種線性判別演算法,它適用於二分類模型。在這個模型中,輸入向量x\mathbf{x}x首先使用一個固定的非線性變換得到一個特徵向量ϕ(x)\phi(\mathbf{x})ϕ(x),接著用這個特徵向量構造一個線性模型: (1)y(x)=f(wTϕ

TensorFlow HOWTO 4.2 多層感知迴歸時間序列

4.2 多層感知機迴歸(時間序列) 這篇教程中,我們使用多層感知機來預測時間序列,這是迴歸問題。 操作步驟 匯入所需的包。 import tensorflow as tf import numpy as np import pandas as pd import matp

基於hadoop2.7.3搭建多環境YARN+HA

第一:環境說明 parallels desktop CentOS-6.5-x86_64-bin-DVD1.iso jdk-7u79-linux-x64.tar.gz Hadoop-2.7.3.tar.gz 搭建四個節點的叢集。他們的hostname分佈為ha

33.Windbg-VMware+windbg搭建雙除錯增加virtualKD

虛擬機器環境 1.xp 虛擬機器用的是XP系統,找到XP系統開啟系統盤(比如C盤),找到Boot.ini,去掉這個檔案的只讀屬性,用記事本開啟Boot.ini [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)p

Xcode7 真除錯無需證書詳解

   iOS 9更新以後,最期待的大概就是無需證書就能真機除錯啦   忙著工作也沒空去總結這些,今天在此分享一下下    首先準備:   1.xcode 更新到7以上   2. 自己有一個app i

Appium 自動化用例設計TESTNG 篇

在前面我已介紹瞭如何安裝配置Appium 以及如何啟動App, 實際測試過程比這複雜多,我們需要先啟動APP,之後執行一系統操作 這就涉及到用例設計了,自動化的用例設計如何編寫呢 比如我們好多APP 剛安裝時會有一個導航頁要跳過,Appium 沒有提供像Robotium 中

自動生成資料庫表設計之獲取JDBC獲取元資料

最近專案快了驗收,那麼接下來就是寫一些比較煩人的文件,在寫資料庫設計文件時,到了詳細設計這一塊有點尷尬了,每張表,沒個欄位都要寫上去,由於前期沒有整理,所以這個工作量還是很大,我查看了我們的資料庫發現有353張表,這樣寫,得花多久的時間啊。。。於是想通過程

java獲取本IP 相容linux

程式在本地沒問題,釋出到linux上報錯,百度了一下是ip獲取方法InetAddress.getLocalHost().getHostAddress()不相容linux,網上提供一種解決方案是修改linux伺服器配置,我試了一下,沒用,於是採用另一種方案,