1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>一種新型的電子點(diǎn)菜系統(tǒng)

    一種新型的電子點(diǎn)菜系統(tǒng)

    時(shí)間:2023-02-21 00:16:27 電子通信論文 我要投稿
    • 相關(guān)推薦

    一種新型的電子點(diǎn)菜系統(tǒng)

    摘要:為克服傳統(tǒng)點(diǎn)菜方式的弊端,提出一種新型的電子點(diǎn)菜系統(tǒng)。該系統(tǒng)使用VHDL語言設(shè)計(jì),并用FPGA芯片實(shí)現(xiàn)。它功能齊全、使用方便,如在餐飲業(yè)得以推廣,可大大提高服務(wù)質(zhì)量,并節(jié)省許多人力物力。

        關(guān)鍵詞:電子菜單 VHDL FPGA

    在目前的餐館里,客人點(diǎn)菜時(shí)總要有服務(wù)員在旁邊等候,不僅要記錄客人所點(diǎn)的菜,還要回答客人提出的各種關(guān)于菜的口味等問題。當(dāng)顧客比較多時(shí),服務(wù)員就會(huì)應(yīng)接不暇,不僅耽誤了顧客的時(shí)間,還影響了顧客對飯店的印象,并且顧客對已點(diǎn)菜的數(shù)量尤其是價(jià)錢往往不能很及時(shí)地了解。如果采用電子菜譜,客人點(diǎn)菜的時(shí)候,基本不需要服務(wù)員的陪伴,而且能實(shí)時(shí)地了解菜的特色,且對已點(diǎn)過的菜的數(shù)量和價(jià)錢一目了然,方便了顧客的消費(fèi),同時(shí)也減輕了餐館的服務(wù)壓力。

    本文提出一種電子點(diǎn)菜裝置,并在ALTERA公司的MAX+PLUSII環(huán)境下利用VHDL語言編程,用FPGA芯片得以實(shí)現(xiàn)。它功能齊全、造價(jià)低廉、操作簡便,在餐飲業(yè)具有較好的推廣價(jià)值。

    1 系統(tǒng)功能

    該系統(tǒng)的實(shí)物樣圖如圖1所示。

    該系統(tǒng)共采用兩組9個(gè)LED數(shù)碼管、3組LED燈和3組鍵盤。它的功能比較完善:從顧客的角度來講,當(dāng)顧客按下一個(gè)菜名鍵時(shí),面板上方的4組8個(gè)表示菜的口味的LED燈會(huì)點(diǎn)亮;當(dāng)顧客對菜的口味滿意時(shí),通過按面板上方的“十”、“—”鍵來對選菜進(jìn)行增刪操作。在操作過程中,面板上方的數(shù)碼管實(shí)時(shí)顯示菜的總價(jià)錢、單個(gè)菜的數(shù)量和總數(shù)量,顧客點(diǎn)選過的菜旁的LED燈也會(huì)自動(dòng)點(diǎn)亮,使顧客對自己的點(diǎn)菜情況一目了然。從商家的角度來講,商家可以通過更改按鍵上的菜名的標(biāo)簽更改菜的名字,還可以通過面板后面的一組鍵盤(如圖1所示)更改菜的單價(jià)和口味。更改菜的單價(jià)時(shí)需要輸入密碼,并且密碼也可以更改,保證商家對菜的信息進(jìn)行任意的控制。

    2 系統(tǒng)設(shè)計(jì)

    該系統(tǒng)共分11個(gè)模塊,其結(jié)構(gòu)如圖2所示。

    圖1

        2.1 鍵盤模塊

    鍵盤1是菜名鍵,其功能是:當(dāng)顧客點(diǎn)按鍵盤時(shí),從存儲(chǔ)器的相應(yīng)地址里讀取數(shù)據(jù)。數(shù)

    據(jù)是28位的,高8位是菜的口味,送到菜的口味顯示模塊里點(diǎn)亮相應(yīng)的LED燈;低20位是菜的單價(jià),送到加減控制模塊里等待進(jìn)行加、減運(yùn)算;同時(shí)經(jīng)過鍵盤抖動(dòng)消除電路輸出按鍵有效信號(hào)到控制器,作為產(chǎn)生加減的使能信號(hào)。

    鍵盤2產(chǎn)生加或減信號(hào),信號(hào)經(jīng)抖動(dòng)消除電路后輸出到BCD加減法器,以確認(rèn)是加運(yùn)算還是減運(yùn)算;同時(shí)輸出按鍵確認(rèn)信號(hào)到控制器,與鍵盤1的按鍵有效信號(hào)共同產(chǎn)生加減使能信號(hào)控制BCD加減法器進(jìn)行運(yùn)算。

    2.2 控制模塊

    控制器接收到兩個(gè)鍵盤的按鍵有效信號(hào)時(shí),首先判斷這兩個(gè)信號(hào)的順序,必須是鍵盤1的有效信號(hào)先到(只判斷最先的一次,往后不計(jì)順序);然后判斷菜的單個(gè)數(shù)量和總數(shù)量有無超出范圍。當(dāng)均符合要求時(shí),輸出加減使能信號(hào)到加減控制器,然后加減控制器再輸出加(減)數(shù)、被加(減)數(shù)到BCD加減法器完成加(減)運(yùn)算。同時(shí)它還根據(jù)鍵盤1、2輸入的計(jì)數(shù)信號(hào)產(chǎn)生菜的數(shù)量和總數(shù)量,輸出到數(shù)碼管顯示模塊進(jìn)行顯示。這一部分的VHDL程序如下:

    if (scan_f=`1`and scan_f`event)then

    if(key_valid=`1`)then ——如果鍵盤1有鍵按下

    scan_cnt:=scan_cntout; ——鍵盤索引值

    tempscan:=conv_integer(scan_cnt);

    eachnum<=temp(tempscan); ——賦菜的數(shù)

    totalnum<=temptotalnum; ——量

    judge:=true; ——確認(rèn)鍵盤1首先有鍵按下

    end if;

    if(smkey_valid=`1`and judge=true)then

    ——如果隨后鍵盤2有鍵按下

    if(sel=`0`)then ——如果是加法

    iftemp(tempscan)>=99then ——判斷數(shù)量是否超出范圍

    temp(tempscan):="1100011";

    controladd<=`0`; ——超出范圍,加減使能信號(hào)

    為0

    elsif temptotalnu

    m>=99 then

    temptotalnum:="1100011";

    controladd<=`0`;

    elsif(temp(tempscan)<99 and temptotalnum<99)then

    ——在允許范圍內(nèi)

    temp(tempscan):=temp(tempsean)+1;

    temptotalnum:=temptotalnum+1;——數(shù)量加1

    controladd<=`1`;

    eachnum<=temp(tempsean);

    totalnum<=temptotalnum;

    end if;

    elsif(sel=`1`)then ——如果是減運(yùn)算(同樣的方法

    · 判斷是否少于1,如果是,不予

    · 進(jìn)行減運(yùn)算,否則數(shù)量減1

    · 并作相應(yīng)賦值)

    end if;

    end if;

    end if;

    if temp(i)>0 then ——判斷對應(yīng)索引值的菜是否

    被選中

    tempout(j)<=`1`; ——如選中,賦1點(diǎn)亮LED燈

    elsif temp(i)0 then ——如未選中,賦0

    tempout(j)<=`0`;

    end if;
    (范文先生網(wǎng)www.baimashangsha.com收集整理)
        2.3 顯示模塊

    為減少引線數(shù)量,采用動(dòng)態(tài)顯示技術(shù),其原理參見參考文獻(xiàn)[1],在此不再贅述。

    2.4 信息(包括菜的口味、價(jià)錢)調(diào)整模塊

    在實(shí)際應(yīng)用中,店方往往要根據(jù)實(shí)際情況對經(jīng)營的菜的價(jià)錢種類進(jìn)行調(diào)整或補(bǔ)充。對菜的種類進(jìn)行更換只需要將按鈕上菜的名字更換即可,但是對菜的價(jià)錢和特色進(jìn)行便捷的更改,則需要編程實(shí)現(xiàn)。

    在這一部分的設(shè)計(jì)中,首先要設(shè)計(jì)一個(gè)電子密碼,防止非授權(quán)人員對菜價(jià)進(jìn)行更改,同時(shí)這個(gè)電子密碼應(yīng)具備更改的功能;然后再通過鍵盤輸入更改菜的價(jià)錢。原理是將菜單上的菜從0~63一行一行索引,每一個(gè)菜的索引值也就是在存儲(chǔ)器中的地址,而存放密碼的位置是第64位,即“01100100”;最后根據(jù)相應(yīng)的地址賦值即可。這一部分的VHDL程序如下:

    ·(初始化語句)

    dressout<="01100100"; ——從存儲(chǔ)器中讀取密碼

    savedata<=datain;

    if(key_valid=`1`and judgecheck=`0`) then

    ——準(zhǔn)備校對密碼

    if(judgestate="000" and savedata(27 downto 24)

    =butt_code)then ——確認(rèn)是初狀態(tài)

    judgestate:="001"; ——校對成功則進(jìn)入

    end if; ——下一個(gè)狀態(tài)

    if(judgestate="001" and savedata(23 downto 20)

    =butt_code)then

    judgestate:="010";

    downto 8)=butt_code)then

    ·(循環(huán)校對)

    elsif(judgestate="110"and savedata(3 downto 0)/

    =butt_code)then

    judgestate:="000";

    end if;

    if(butt_code="1011" and judgestate="111")then——校對成功

    judgecheck:=`1`; ——賦校對成功值

    ledout<="011"; ——點(diǎn)亮綠燈

    judgestate:="000"; ——恢復(fù)初值

    elsif(butt_code="1011" and judgestate/="111")then

    ——如果密碼錯(cuò)誤

    judgestate:="000"; ——恢復(fù)初值

    ledout<="110"; ——點(diǎn)亮紅燈

    end if;

    elsif(key_valid=`1` and judgecheck=`1`)then

    ——密碼輸入正確,執(zhí)行以下功能

    if(butt_code="1001")then ——如果想要改變密碼

    ledout<="101";

    reset<=`1`;

    j:=0;

    end if;

    if(reset=`1` and butt_code/="1001")then

    if(staterecode="00" and j=0 and butt_code/="

    1011")the ——最初狀態(tài)

    savedata(27 downto 24)<=butt_code;

    j:=1;

    ——進(jìn)入下一個(gè)狀態(tài)循環(huán)(語句省略)

    end if;

    if(butt_code="1011" and j=7) the ——當(dāng)按下確認(rèn)鍵時(shí)

    j:=0;

    staterecode:="01"; ——進(jìn)入第二次輸入確認(rèn)密碼

    check<=reset;

    end if;

    if(staterecode="01")then——確認(rèn)是第二次輸入密碼的

    狀態(tài)

    if(k=O and savedata(27 downto 24)=butt_code)then

    k<=1;

    ——進(jìn)入下一狀態(tài)循環(huán)(語句省略)

    else

    k<=0;

    end if;

    if (butt_code="1011" and k=7)then

    ——如果二次密碼輸入相同,重置語句(語句省略)

    dressout<="01100100";

    dataout<=savedata;

    elsif(butt_code="1011" and k/=7)then

    k<=0; ——如果密碼不相同,重新輸入

    ledout<="101";

    end if;

    end if;

    end if;

    if(key_valid=`l`andreset=`O`and butt_code/="1001") then

    ——菜的信息

    if(namestate="000"

    and butt_code/="1011") then

    ——接收(語句省略)菜的名字,即0~64,如果輸入

    的數(shù)超過兩個(gè),則以最后兩位為準(zhǔn)

    if(namestate="011") then

    if(pricestate="000" and butt_code/="1011") then

    savedata(27 downto 24)<=butt_code;

    pricestate:="001";

    ledout<="101";

    ——循環(huán)接收(語句省略)菜的信息,包括口味和價(jià)錢,如

    果輸入的數(shù)超過7位,

    elsif(pricestate="111" and butt_code="1011") then

    ——?jiǎng)t以最后輸入的7位為準(zhǔn)

    ——重置語句(略)

    end if;

    圖3和圖4

    3 仿真結(jié)果

    上述設(shè)計(jì)在 MAX+PLUSII環(huán)境下仿真成功,并用FPGA 芯片 FLEX10K實(shí)現(xiàn)。圖3是控制模塊的仿真波形。圖中,smkey_valid為鍵盤2的按鍵確認(rèn)信號(hào),sel為加減控制信號(hào),為0時(shí)加,為1時(shí)減,由鍵盤2輸入。scan_f為分頻后的信號(hào),由鍵盤1模塊輸入。key_valid為鍵盤1的按鍵確認(rèn)信號(hào)。scan_cntout為計(jì)數(shù)信號(hào),當(dāng)key_valid信號(hào)為1時(shí),對應(yīng)的scan_cntout即代表此時(shí)所按下的鍵盤1的鍵的索引值。controladd為加減使能信號(hào),為1時(shí)表示加或減操作有效,可以進(jìn)行加減運(yùn)算,防止加減運(yùn)算超出范圍。numdish 和 dishled 兩個(gè)信號(hào)控制菜名旁邊的 LED 燈,前者為行使能,循環(huán)檢測鍵盤1的每一行,逐行使能,使得列使能信號(hào)dishled有效時(shí)點(diǎn)亮相應(yīng)的LED燈。totalnum為菜的總數(shù),eachnum為當(dāng)前正

    在操作的菜的數(shù)量。

    下面對仿真結(jié)果進(jìn)行說明。第一個(gè) key_vaild 信號(hào)觸發(fā)時(shí),響應(yīng)在011號(hào)菜,然后按下“+”,觸發(fā)smkey_vaild,使controladd為1,sel信號(hào)為0,表示加使能,totalnum和eachnum分別加1,在隨后的numdish為01時(shí),dishled變成0001(表示第3個(gè)菜選中)。在后面的操作中又點(diǎn)中了011號(hào)菜(選擇一個(gè)比較特殊的情況),并按下“+”,totalnum 和 eachnum 分別加1,隨即又點(diǎn)了“-”,使得這兩個(gè)信號(hào)各減了1。接下來001號(hào)菜被選中,并按下“+”,totalnum變成了2,而eachnum為1,然后按下101,并沒有操作,按下111后再按下“-”,但是因?yàn)橹安]有選擇過,所以信號(hào)無變化。隨后numdish掃描到01,dishled為0101表示選中了001號(hào)和011號(hào)菜。

    圖4是信息調(diào)整模塊的仿真波形。圖中,dressout為存儲(chǔ)器的地址,key_valid為按鍵有效信號(hào)(實(shí)際上不應(yīng)該是有規(guī)律的,這里只是為了方便起見),write、read分別為寫、讀信號(hào),cs為使能信號(hào),butt_code為4x3鍵盤的輸入按鍵編碼值,datain、dataout分別表示從存儲(chǔ)器讀入數(shù)據(jù)和向存儲(chǔ)器輸出數(shù)據(jù),ledout為表示目前狀態(tài)的三個(gè)LED燈,從左到右依次為綠、黃、紅,綠色。紅色表示輸入密碼的正誤,黃色表示正在重設(shè)密碼。

    在這里也可以根據(jù)前面的做法將操作時(shí)的數(shù)值顯示在數(shù)碼管上,既可以另加數(shù)碼管,也可以利用原來的價(jià)錢顯示數(shù)碼管。但在此設(shè)計(jì)中,采用的是LED燈顯示狀態(tài)。主要是為了簡化電路,畢竟店方不是經(jīng)常更改菜的信息。

    下面對仿真結(jié)果進(jìn)行說明。在這個(gè)例子中,假設(shè)初始密碼是5555555,開機(jī)時(shí)從地址01100100讀人儲(chǔ)存的密碼5555555,當(dāng)按鍵連續(xù)輸入7個(gè)5時(shí),密碼校對完成,可以開始操作。當(dāng)按下1001號(hào)鍵(更改密碼)時(shí),假設(shè)需要更改成4444448,連續(xù)輸入兩次4444448無誤后即更改密碼成功。dataout為4444448,隨后輸入菜號(hào)33(因?yàn)榇鎯?chǔ)量很少,本文沒有進(jìn)行BCD與二進(jìn)制的轉(zhuǎn)換),表示對這個(gè)菜的信息進(jìn)行更改。按確認(rèn)鍵后,本例中故意輸入8位菜的信息(應(yīng)該輸入7位)55515554以驗(yàn)證系統(tǒng)的容錯(cuò)能力。結(jié)果超過7位的數(shù)據(jù)系統(tǒng)可以成功地識(shí)別,并只取后7位5515554,dataout為5515554,完成信息修改。


    【一種新型的電子點(diǎn)菜系統(tǒng)】相關(guān)文章:

    一種新型的流媒體系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_反饋機(jī)制08-18

    鐵電存儲(chǔ)器在新型語音電子門鎖系統(tǒng)中的應(yīng)用08-06

    一種新型的基于現(xiàn)場總線的水輪機(jī)組狀態(tài)監(jiān)測系統(tǒng)08-06

    一種新型儲(chǔ)氫容器08-06

    一種新型儲(chǔ)氫容器08-06

    新型的數(shù)據(jù)記錄系統(tǒng)設(shè)計(jì)方案08-06

    一種新型多DSP并行處理結(jié)構(gòu)08-06

    一種新型的IGBT短路保護(hù)電路的設(shè)計(jì)08-06

    一種MCU時(shí)鐘系統(tǒng)的設(shè)計(jì)08-06

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      一级a视频在线免费观看 | 午夜福利无遮挡h动漫 | 日韩A级亚洲A级欧美A级 | 亚洲日韩精品综合在线1 | 日本少妇爽的嗷嗷叫视频 | 色婷婷久久综合极速 |