熟妇人妻中文字幕在线视频_无码人妻精品视频_久久躁夜夜躁狠狠躁_偷碰人妻无码视频

現在位置:范文先生網>理工論文>電子通信論文>一種新型的電子點菜系統(tǒng)

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

時間:2023-02-21 00:16:27 電子通信論文 我要投稿
  • 相關推薦

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

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

    關鍵詞:電子菜單 VHDL FPGA

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

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

1 系統(tǒng)功能

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

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

2 系統(tǒng)設計

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

圖1

    2.1 鍵盤模塊

鍵盤1是菜名鍵,其功能是:當顧客點按鍵盤時,從存儲器的相應地址里讀取數據。數

據是28位的,高8位是菜的口味,送到菜的口味顯示模塊里點亮相應的LED燈;低20位是菜的單價,送到加減控制模塊里等待進行加、減運算;同時經過鍵盤抖動消除電路輸出按鍵有效信號到控制器,作為產生加減的使能信號。

鍵盤2產生加或減信號,信號經抖動消除電路后輸出到BCD加減法器,以確認是加運算還是減運算;同時輸出按鍵確認信號到控制器,與鍵盤1的按鍵有效信號共同產生加減使能信號控制BCD加減法器進行運算。

2.2 控制模塊

控制器接收到兩個鍵盤的按鍵有效信號時,首先判斷這兩個信號的順序,必須是鍵盤1的有效信號先到(只判斷最先的一次,往后不計順序);然后判斷菜的單個數量和總數量有無超出范圍。當均符合要求時,輸出加減使能信號到加減控制器,然后加減控制器再輸出加(減)數、被加(減)數到BCD加減法器完成加(減)運算。同時它還根據鍵盤1、2輸入的計數信號產生菜的數量和總數量,輸出到數碼管顯示模塊進行顯示。這一部分的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); ——賦菜的數

totalnum<=temptotalnum; ——量

judge:=true; ——確認鍵盤1首先有鍵按下

end if;

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

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

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

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

temp(tempscan):="1100011";

controladd<=`0`; ——超出范圍,加減使能信號

為0

elsif temptotalnu

m>=99 then

temptotalnum:="1100011";

controladd<=`0`;

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

——在允許范圍內

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

temptotalnum:=temptotalnum+1;——數量加1

controladd<=`1`;

eachnum<=temp(tempsean);

totalnum<=temptotalnum;

end if;

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

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

· 進行減運算,否則數量減1

· 并作相應賦值)

end if;

end if;

end if;

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

被選中

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

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

tempout(j)<=`0`;

end if;
(范文先生網325224.com收集整理)
    2.3 顯示模塊

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

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

在實際應用中,店方往往要根據實際情況對經營的菜的價錢種類進行調整或補充。對菜的種類進行更換只需要將按鈕上菜的名字更換即可,但是對菜的價錢和特色進行便捷的更改,則需要編程實現。

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

·(初始化語句)

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

savedata<=datain;

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

——準備校對密碼

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

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

judgestate:="001"; ——校對成功則進入

end if; ——下一個狀態(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"; ——點亮綠燈

judgestate:="000"; ——恢復初值

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

——如果密碼錯誤

judgestate:="000"; ——恢復初值

ledout<="110"; ——點亮紅燈

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;

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

end if;

if(butt_code="1011" and j=7) the ——當按下確認鍵時

j:=0;

staterecode:="01"; ——進入第二次輸入確認密碼

check<=reset;

end if;

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

狀態(tài)

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

k<=1;

——進入下一狀態(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,如果輸入

的數超過兩個,則以最后兩位為準

if(namestate="011") then

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

savedata(27 downto 24)<=butt_code;

pricestate:="001";

ledout<="101";

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

果輸入的數超過7位,

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

——則以最后輸入的7位為準

——重置語句(略)

end if;

圖3和圖4

3 仿真結果

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

在操作的菜的數量。

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

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

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

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


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

一種新型的流媒體系統(tǒng)設計與實現_反饋機制08-18

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

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

一種新型儲氫容器08-06

一種新型儲氫容器08-06

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

一種新型多DSP并行處理結構08-06

一種新型的IGBT短路保護電路的設計08-06

一種MCU時鐘系統(tǒng)的設計08-06