基于單片機設計的電子點餐系統(tǒng)畢業(yè)論文_第1頁
基于單片機設計的電子點餐系統(tǒng)畢業(yè)論文_第2頁
基于單片機設計的電子點餐系統(tǒng)畢業(yè)論文_第3頁
基于單片機設計的電子點餐系統(tǒng)畢業(yè)論文_第4頁
基于單片機設計的電子點餐系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、分類號_ 密級_U U D D C C _編號_弄中仰範丸羚本科畢業(yè)論文(設計)題目電子點菜系統(tǒng)院 (系)_專 業(yè)_年 級 _學生姓名 _學 號_指導教師 _二O一O年五月華中師范大學學位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的學位論文是本人在導師指導下獨立進行研究工作所取得 的研究成果。除了文中特別加以標注引用的內容外, 本論文不包含任何其他個人或集 體已經發(fā)表或撰寫的成果作品。本人完全意識到本聲明的法律后果由本人承擔。學位論文作者簽名:日期:年 月 日.學位論文版權使用授權書本學位論文作者完全了解學校有關保障、使用學位論文的規(guī)定,同意學校保留并 向有關學位論文管理部門或機構送交論文的復印件和電

2、子版,允許論文被查閱和借 閱。本人授權省級優(yōu)秀學士學位論文評選機構將本學位論文的全部或部分內容編入有 關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。本學位論文屬于1、 保密 ,在_ 年解密后適用本授權書。2、不保密 口。(請在以上相應方框內打“V)學位論文作者簽名:日期:年 月 日導師簽名:日期:內谷摘要,1關鍵詞1Abstract ,1Key Words ,11-系統(tǒng)概述與設計原理21.1 該系統(tǒng)概述21.2 系統(tǒng)框圖 ,21.3 系統(tǒng)設計原理 32硬件電路設計與計算 42.1 AT89C51 部分 42.2 24C1024 總線部分,72.3 液晶顯和鍵盤矩陣部

3、示部分 83系統(tǒng)設計流程 113.1 硬件部分 113.2 軟件部分 124小結31/ -J” 口JJJJJJJJJJJJJJJJJJJJJJJJJJJ7 I參考文獻 32致謝331內容摘要:本電子點菜系統(tǒng)采用 AT89C5 單片機控制,處理數據并驅動液晶屏來 實現對數據的現實。主要過程如下:利用鍵盤輸入對菜號的選擇,然后將選擇菜號, 傳送給單片機進行數據處理,從 24C1024 存儲芯片中提取菜名數據信息,并通過液晶 屏將提取菜名數據信息顯示出來,最后通過串口傳輸到電腦上面。關 鍵詞:AT89C5 單片機 24C1024 存儲芯片 12864 液晶屏 鍵盤矩陣Abstract : Elect

4、ronic ordering device, the key is 24 C1024and AT89C51two chips,which 24C1024 used to store all the foods information, through the AT89C51, theinformation will be transmitted to the LCD menu. However, they need customers to choosegood dishes, the menu will be automatically stored in the AT89C51, and

5、then can be directlyconnected to the computer through the serial port will be transferred to the database menu,store, and display and print it out. The AT89S52 is mainly used to control 24 C1024 and datatransfer between the liquid crystal, liquid crystal display part and the serial communicationpart

6、. Is the core of block board. He was fired through the C language program into the.Key words : AT89C51 Microcontroller 24C1024 memory chips 12864 LCD Keyboardmatrix21 1 系統(tǒng)概述與設計原理1.1 該系統(tǒng)概述隨著人們的生活水平提高, 餐飲業(yè)的發(fā)展也越來越迅猛。 對于人滿為患的酒店來 說,確保快速、準確的點單是十分必要的,這就需要科學技術做堅強的后盾。在這種 情況下,電子點菜系統(tǒng)便應運而生,該系統(tǒng)是一款應用于中大型餐廳,方便顧客和服

7、 務員點菜的系統(tǒng)。 它打破了傳統(tǒng)點菜的方式, 顧客只需通過手中小巧的電子點菜器就 可以隨意點到自己需要的菜肴, 并且方便酒店隨時刷新菜譜, 為消費者提供最新的美 食信息。電子點菜系統(tǒng)不僅滿足了現代人對快節(jié)奏的需要,而且時尚、新穎。相信使 用電子點菜系統(tǒng)的酒店肯定備受消費者的青睞。電子點菜系統(tǒng)應用于中大型酒店, 無需傳統(tǒng)菜單及服務生, 顧客只需使用桌上提 供的電子點菜器就可以隨意挑選自己想吃的菜品, 精致小巧的點菜器配上適合眼睛感 官視覺的四行中文液晶顯示器,免去了您頻繁翻閱傳統(tǒng)菜單的煩惱。用單片機技術設計、制造的點菜器控制系統(tǒng),具有集成度高、功能強、體積小、 速度快、存儲量大、 指令豐富,抗干

8、擾性強,性能價格比高, 通用性好,推廣范圍大, 工作可靠,指示準確,易于匹配,使用壽命長,標準化系數高等一系列優(yōu)勢和特點。1.2系統(tǒng)框圖3包括:賬目管 理,編號表,菜 譜,信息配置AH89C51控制顯示位晶顯ZT7A用菜單r r 24C102424C1024芯片_JN. 丿窗體41.3 系統(tǒng)設計原理十二個按鍵式鍵盤矩陣,是讓顧客可以方便選擇菜名,同時可以輸入桌號。一個5上翻和下翻鍵方便顧客瀏覽更多的菜系,一個確定鍵確認顧客點的菜肴,還有一個按鍵是選擇。在電子點菜器上, 主要是 24 C1024 和 AT89C5 兩塊芯片, 其中 24C1024 用來存儲所 有菜名信息,通過 AT89C51 將

9、菜譜信息傳輸給液晶顯示。但顧客選擇好自己需要的 菜品后,菜單將自動存儲到 AT89C5 中,再可以通過串口與電腦直接相連,將菜單傳 輸到數據庫中進行存儲,并顯示、打印出來。而AT89C5 主要是用來控制 24 C1024 與液晶之間數據傳輸,液晶顯示部分以及串口通訊部分。是整塊板的核心部分。他是通 過 C 語言程序燒制進去的。在顧客點菜過程中,顧客可以通過字母按鍵對菜單進行分類, 找出符合自己口味 的菜品類。若顧客還想點到固定的菜肴,可以直接通過輸入菜名拼音首字母,即可獲 取菜肴名。全部點完按完成鍵,上方的中文液晶屏將清晰顯示謝謝惠顧和請輸入桌號等信 息,顧客只需控制按鍵就可以點到自己所需的菜

10、肴,既方便,又省事。點菜完成后, 服務生可以通過電子點菜器上的串口傳輸點菜信息到總服務臺上的電腦中,電腦再對信息加以分類存儲、打印,這樣避免了傳統(tǒng)點菜的手寫誤差,也方便顧客結賬和餐廳 管理。2 2 硬件電路設計與計算2.1 AT89C51 單片機2.1.1 描述AT89C5 是美國 ATME 公司生產的低電壓, 高性能 CMOS 位單片機, 片內含 4Kbytes 的快速可擦寫的只讀程序存儲器(PERO)和 128 bytes 的隨機存取數據存儲器(RAM, 器件采用 ATME 公司的高密度、非易失性存儲技術生產,兼容標準 MCS-5 產品指令系 統(tǒng),片內置通用 8 位中央處理器(CPU 和

11、flish 存儲單元,功能強大 AT89C5 單片機可 為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。AT89C5 提供以下標準功能:4K 字節(jié) flish 閃速存儲器,128 字節(jié)內部 RAM 32 個 I/O 口線,兩個 16 位定時/計數器,一個 5 向量兩級中斷結構,一個全雙工串行通信口, 片內振蕩器及時鐘電路。同時,AT89C5 可降至 OHZ 的靜態(tài)邏輯操作,并支持兩種軟件 可選的節(jié)電6工作模式??臻e方式停止 CPU 勺工作,但允許 RAM 定時/計數器,串行通 信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RA 中的內容,但振蕩器停止工作并禁止其 它所有部件工作直到下一個硬件

12、復位。2.1.2 電路圖Vcc:電源電壓。GND 地。P0 口: P0 口是一組 8 位漏極開路型雙向 I/O 口,也即地址/數據總線復位口。作為 輸出口用時,每位能吸收電流的方式驅動 8 個邏輯門電路,對端口寫“ 1”可 作為高 阻抗輸入端用。P1 口:P1 是一個帶內部上拉電阻的 8 位雙向 I/O 口,P1 的輸出緩沖級可驅動(吸收 或輸出電流)4 個 TTL 邏輯門電路。對端口寫“ 1”,通過內部的上拉電阻把端口拉到 高電平,此時可做熟出口。做輸出口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(lil )7P2 口:P2 是一個帶有內部上拉電阻的 8 位雙向 I

13、/O 口, P2 的輸出緩沖級可驅動 (吸 收或輸出電流)4 個 TTL 邏輯門電路。對端口寫“ T,通過內部地山拉電阻把端口拉 到高電平,此時可作為輸出口,作輸出口使用時,因為內部存在上拉電阻,某個引腳 被外部信號拉低時會輸出一個電流(lil )。P3 口: P3 口是一組帶有內部上拉電阻的 8 位雙向 I/O 口。P3 口輸出緩沖級可驅動(吸收或輸出電流)4 個 TTL 邏輯門電路。對 P3 口寫入“ 1”時,他們被內部上拉電阻拉高 并可作為輸出口。做輸出端時,被外部拉低的 P3 口將用上拉電阻輸出電流(lil )。P3 口除了作為一般的 I/O 口線外,更重要的用途是它的第二功能,如下表

14、:端口引腳第二功能P3.0rxd (串行輸入口)P3.1txd (串行輸出口)P3.2AintO (外中斷0)P3.3Aintl (外中斷1)P3.4tO (定時/計數器O)P3.5t1 (定時/計數器1)P3.6AWR (外部數據存儲器寫選通)P3.7ARD (外部數據存儲器讀選通)RST 復位輸入。當振蕩器工作時,RST 引腳出現兩個機器周期以上高電平將使單 片機復位。ALE/PROG 當訪問外部程序存儲器或數據存儲器時,ALE (地址所存允許)輸出脈沖用于所存地址的低 8 位字節(jié)。即使不訪問外部存儲器,ALE 仍以時鐘振蕩頻率的 1/6 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定

15、時目的。要注意的是:每當 訪問外部數據存儲器時將跳過一個 ALE 永沖。PSEN 程序存儲允許(APSEN 輸出是外部程序存儲器的讀選通信號,當 AT89C51 由外部程序存儲器取指令(或數據)時,每個機器周期兩個ApsEI 有效,即輸出兩個脈沖。在此期間,當訪問外部數據存儲器,這兩次有效的APSEI信號不出現。EA/VPP:外部訪問允許。欲使 CP 僅訪問外部程序存儲器(地址為 OOOOH-FFFFH),EA 端必須保持低電平(接地)。需注意的是;如果加密位 LB1 被編程,復位時內部會鎖存 EA 端狀態(tài)8XTAL1: 振蕩器反相放大器的及內部時鐘發(fā)生器的輸出端。XTAL2: 振蕩器反相放大

16、器的輸出端。P89C51 特殊功能寄存器。2.2 24C1024 部分(I2C 總線技術)2.2.1 I2C 總線工作原理總線的構成及信號類型:I2C 總線是由數據線 SDA 和時鐘 SCL 勾成的串行總線,可發(fā)送和接收數據。在CPU被控 IC 之間、IC 與 IC 之間進行雙向傳送,最高傳送速率 100kbps。各種被控制電路均 并聯在這條總線上, 但就像電話機一樣只有撥通各自的號碼才能工作, 所以每個電路 和模塊都有唯一的地址, 在信息的傳輸過程中, I2C 總線上并接的每一模塊電路既是 主控器 (或被控器) ,又是發(fā)送器(或接收器),這取決于它所要完成的功能。 CPU 發(fā)出的控制信號分為

17、地址碼和控制量兩部分, 地址碼用來選址, 即接通需要控制的電 路,確定控制的種類;控制量決定該調整的類別(如對比度、亮度等)及需要調整的 量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨立,互不相關。I2C 總線在傳送數據過程中共有三種類型信號,它們分別是:開始信號、結束信號和應答信號。開始信號: SC 為高電平時, SDA 由高電平向低電平跳變, 開始傳送數據。結束信號:SC 為高電平時,SDA 由低電平向高電平跳變,結束傳送數據。應答信號:接收數據的 IC 在接收到 8bit 數據后,向發(fā)送數據的 IC 發(fā)出特定的低電 平脈沖,表示已收到數據。CP 向受控單元發(fā)出一個信號后,等待受控單元

18、發(fā)出一個 應答信號,CPU 接收到應答信號后,根據實際情況作出是否繼續(xù)傳遞信號的判斷。若 未收到應答信號,由判斷為受控單元出現故障。這些信號中,起始信號是必需的,結束信號和應答信號,都可以不要。目前有很多半導體集成電路上都集成了 I2C 接口。帶有 I2C 接口的單片機有: CYGNA的 C8051F0X)系列,PHILIPSP87LPC7X1列,MICROCHUP PIC16C6X 系列等。 很多外圍器件如存儲器、監(jiān)控芯片等也提供 I2C 接口。2.2.2 I2C 總線操作I2C 規(guī)程運用主/從雙向通訊。器件發(fā)送數據到總線上,則定義為發(fā)送器,器件接 收數據9則定義為接收器。主器件和從器件都可

19、以工作于接收和發(fā)送狀態(tài)??偩€必須由主器件(通常為微控制器)控制,主器件產生串行時鐘(SCL 控制總線的傳輸方向,并產生起始和停止條件。SDA 線上的數據狀態(tài)僅在 SCI 為低電平的期間才能改變, SCI為高電平的期間,SDA 狀態(tài)的改變被用來表示起始和停止條件??刂谱止?jié):在起始條件之后, 必須是器件的控制字節(jié), 其中高四位為器件類型識別符 (不同 的芯片類型有不同的定義,EEPROM 殳應為 1010),接著三位為片選,最后一位為讀 寫位,當為 1 時為讀操作,為 0 時為寫操作。寫操作:寫操作分為字節(jié)寫和頁面寫兩種操作, 對于頁面寫根據芯片的一次裝載的字節(jié)不 同有所不同。讀操作:讀操作有三種

20、基本操作:當前地址讀、隨機讀和順序讀。圖 4 給出的是順序讀的 時序圖。應當注意的是:最后一個讀操作的第 9 個時鐘周期不是“不關心”。為了結 束讀操作,主機必須在第 9 個周期間發(fā)出停止條件或者在第 9 個時鐘周期內保持 SDA 為 高電平、然后發(fā)出停止條件。2.2.3主要功能在我這個作品中,由于單片機本身存儲控件很小,所以 24C1024 芯片的主要作為 一塊存儲芯片使用的。作用就是存儲菜譜信息, 用戶操作按鍵選擇在液晶屏上顯示的 菜名信息全部是通過讀取 24C10245 片中的菜譜數據。同時 24C1024 芯片還要實時接收 Csharp 軟件對菜譜的更新。2.312864 液晶屏和鍵盤

21、矩陣2.3.1 12864 液晶屏簡介帶中文字庫的 128X64 是一種具有 4 位/8 位并行、2 線或 3 線串行多種接口方式,內 部含有國標一級、 二級簡體中文字庫的點陣圖形液晶顯示模塊; 其顯示分辨率為 12864, 內置8192 個 16*16 點漢字,和 128 個 16*8 點 ASCII 字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示84 行 1616 點10陣的漢字 .也可完成圖形顯示 . 低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示 方案與同類型的圖形點陣液晶顯示模塊相比, 不論硬件電路結構或顯示程序都要簡潔 得多,且

22、該模塊的價格也略低于相同點陣的圖形液晶模塊?;咎匦?:低電源電壓( VDD:+3.0-+5.5V顯示分辨率:128X64 點內置漢字字庫,提供 8192 個 16X16 點陣漢字(簡繁體可選)內置 128 個 16X8 點陣字符5.2MHZ 時鐘頻率顯示方式:STN 半透、正顯驅動方式: 1/32DUTY, 1/5BIAS視角方向: 6 點背光方式:側部高亮白色 LED 功耗僅為普通 LED 勺 1/5 1/10通訊方式:串行、并口可選內置 DC-DC 專換電路,無需外加負壓無需片選信號,簡化軟件設計工作溫度:0C- +55C,存儲溫度:-20C- +60C 忙標志 :BFBF 標志提供內部

23、工作情況.BF=1 表示模塊在進行內部操作,此時模塊不接受外部 指令和數據.BF=0 時,模塊為準備狀態(tài),隨時可接受外部指令和數據.利用 STATURD 指 令,可以將BF 賣到 DB7 總線,從而檢驗模塊之工作狀態(tài). 字型產生 ROM(CGRO)M字型產生 R0( CGROM 提供 8192 個此觸發(fā)器是用于模塊屏幕顯示開和關的控制。DFF=偽開顯示(DISPLAYON),DDRA 的內容就顯示在屏幕上,DFF=(為關顯示(DISPLAY11OFF)。DFF 的狀態(tài)是指令 DISPLAY ON/OF 和 RSTW 號控制的。顯示數據 RAM(DDRA)M模塊內部顯示數據 RA 提供 64X2

24、 個位元組的空間, 最多可控制 4 行 16 字 (64 個字)的中文字型顯示,當寫入顯示數據 RA 時,可分別顯示 CGROMCGRA 的字型;此模塊 可顯示三種字型,分別是半角英數字型(16*8)、CGRA 字型及 CGROM 中文字型,三種 字型的選擇,由在 DDRA 中寫入的編碼選擇,在 0000H 0006H 的編碼中(其代碼分別 是 0000、0002、0004、0006 共 4 個)將選擇 CGRA 的自定義字型,02H 7FH 的編碼中將 選擇半角英數字的字型,至于 A1 以上的編碼將自動的結合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼 BIG5(A140D75F),

25、 GB(A1A0-F7FFH)。字型產生 RAM(CGRAM)字型產生 RA 提供圖象定義(造字)功能,可以提供四組 16X16 點的自定義圖象空 間,使用者可以將內部字型沒有提供的圖象字型自行定義到 CGRA 中 I,便可和 CGROM 的定義一樣地通過 DDRA 顯示在屏幕中。地址計數器 AC 地址計數器是用來貯存 DDRAM/CGR 之一的地址,它可由設定指令暫存器來改變,之后只要讀 取或是寫入 DDRAM/CGR 的值時,地址計數器的值就會自動加一,當 RS 為“0”時而 R/W 為“ 1”時,地址計數器的值會被讀取到 DB6DB(中。光標 / 閃爍控制電路此模塊提供硬體光標及閃爍控制

26、電路,由地址計數器的值來指定DDRA 中的光標或閃爍位置液晶部分主要功能液晶部分主要就是顯示功能。將按鍵對菜譜的操作顯示出來,同時為了方便客人 點菜,還要將客人點菜信息和消費情況顯示出來供客人預覽, 等客人確定后在傳送到 Csharp 軟件中去。鍵盤部分主要功能 十二個按鍵式鍵盤矩陣,是讓顧客可以方便選擇菜名,同時可以輸入桌號。一個上翻和一個下翻鍵方便顧客瀏覽更多的菜系, 一個確定鍵確認顧客點的菜肴, 還有一 個按鍵是選擇。顧客可以通過字母按鍵對菜單進行分類, 找出符合自己口味的菜品類。 若顧客12還想點到固定的菜肴,可以直接通過輸入菜名拼音首字母,即可獲取菜肴名。 12864 液晶屏主要是顯

27、示作用,把在鍵盤上的種種操作都通過液晶屏顯示出來,方便 顧客使用。3 3系統(tǒng)設計流程3.1 硬件部分3.1.1 硬件部分功能簡介單片機硬件部分包括:鍵盤矩陣,12863 液晶屏,24C1024 存儲芯片,AT89C5 芯 片。硬件功能: 硬件部分包括電子點菜電路板和一個 4*4 的鍵盤矩陣, 通過控制電路 板上的按鍵通過單片機使液晶顯示自己需要的信息, 并保存在單片機中, 還有 MAX232 串口驅動芯片用來驅動串口,然后就可以通過串口輸入或輸出信息, 并保存到 C 澈據 庫中去。硬件部分還包含包括電子點菜器電路板的設計及焊接, 24C1024 芯片, AT89C51 芯片, 液晶,串口等部分

28、。其中液晶顯示上我選擇的是分部顯示的原則,就是將我想 顯示的信息預先存儲在我選好的位置上,不同按鍵按下觸發(fā)不同內容顯示在液晶上, 還有個難點就是要將使用者所選擇的菜記錄下來, 我原本的設想是想把所選擇的菜名 和菜價用一個數組了,可 8052 的存儲空間太小如果點的太多就根本無法存儲。于是 我想到了另一種辦法,就是記錄菜名號的方法,我在 C#g 送菜譜時給每一道菜加上一 個唯一固定編號一起放送到 24C1024 中去,當客人點菜時我就用一個數組來存儲被點 菜的編號,這樣就大大降低了對存儲空間的使用也提高了數據傳輸的安全性。在一個就是對菜的搜索問題, 客人有時想點自己喜歡的菜, 在點菜器中翻找太麻

29、 煩,他可以自己輸入菜的索引從而尋找自己想要點的菜,做搜索在 C#上很好做但在單片機上時很難做到的,因為單片機空間小,沒有現成的控件使用,也不能針對數據庫 進行操作。我用的辦法是將顧客所按按鍵記錄下來當顧客點擊查詢時將得到按鍵索引 和 24C1024固定位置的到的菜名索引進行對比,如果相同就從 24C1024 的相應位置取 出菜名和菜價顯示在液晶上,這就要求數據存放要做嚴格要求 . 再就是每次點完都要 記錄菜價,這就要求再點菜我確定是必須同時記錄所選菜在24C1024 中存儲的位置,13再在這個基礎上查詢菜價進行記錄保存,以便傳輸到C#4行保存和查詢3.1.2 硬件電路圖LCD1通過串口與電腦

30、相連相互傳送數據。 單片機通過 P0 口控制液晶顯示,通過 PI 口控制 24C1024 芯片存儲數據,通過串口將菜譜數據寫入到24C1024E 片中去,同時調用24C1024 芯片數據顯示到液晶屏中。按鍵部分圖略。按鍵選擇菜名,客人最后確認后通過串口回傳到 PC 中3.2 軟件部分3.2.1 軟件功能簡介C sharp 軟件程序后臺軟件部分: C#用于后臺程序, 酒店內部添加刪除菜名及菜 名索引,并將顧客所點菜顯示在 C#上;數據庫應用與保存菜譜表,桌號消費統(tǒng)計(桌 號,總消費,時間),查詢視圖。U3A1SCLSDAWPAT24C1024P0.0/AD0P0.1/AD1P0.2/AD2P0.

31、3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A153938373635343332212223T-P1P1P1P1P1P1P1P180C51P3.0/RXDP3.1/TXD101112卩3.2/1巴匚 13-P3.3/IP3.4/T0P3.5/T1P3.6/WRP3.7/RD14/l0F /T1-L _11_17R iD8D811RP1C11uFU2P1C1 +C1-T1INT1OUTR1OUTR1INT2OUTR2INP_PORT=COM4V_B

32、AUDRATE=9600V_DATABITS=8V_PARITY=NONEINPUT_BUFFER_SIZE=1024OUTPUT_BUFFER_SIZE=1024C2+C21uFLM016LU1XTAL1XTAL2RSTEAPSENALE242528D1234D456D6D67D7D78D2D39RESPACK-8RSCOMPIMT2INR2OUT1210VS+MAX232VS-C314軟件功能:包括 C,C#,數據庫三大部分。其中 C 用于收集菜譜和存儲,用于顧客 查找,瀏覽菜譜并對菜譜進行選擇,查看和統(tǒng)計消費總價,并且回傳顧客消費信息; C#用于后臺程序,酒店內部添加刪除菜名及菜名索引,

33、并將顧客所點菜顯示在C#k;數據庫應用與保存菜譜表,桌號消費統(tǒng)計(桌號,總消費,時間),查詢視圖。在就是串口的數據收發(fā),由于我在顯示和搜索時對數據的格式有很高要求,所以在用串口傳輸數據時在傳輸前必須要對數據進行嚴格的格式轉換。在接受數據時,因為接受的數據有很多種,所以在接受時要對數據進行判斷然后再進行分類存儲。322 軟件流程客人進店咨窖搖待*點菓加菜催菜1|取消下載其他臺位數據Tr1 前臺(或不)打、即臺隹賬單廚崩打印曹*正常打印俸菜打印取消打印癇師制作岀品核対傳菜-臺位上菟劃英3.2.3 軟件主要代碼Csharp 后臺控制部分:菜譜管理:n amespace 點菜15public part

34、ial class 菜譜管理 _當前時間 : Form public 菜譜管理 _當前時間 () InitializeComponent();private void Form1_Load( object sender, EventArgs e) Refresh_Phone_List( );void Refresh_Phone_List( string WhereConditon) listView1.Items.Clear();dbClass1 db1 = new dbClass1 ();string scond = select * from 所有菜名信息視圖 ;if (WhereCond

35、iton != ) scond += where + WhereConditon + DataTable dt = db1.GetRecords(scond);/ 向列表視圖中添加所有的相關號碼記錄for ( int i= 0; i = 0; i-)OleDbConnection con = new OleDbConnection (str);OleDbCommancdmd = con.CreateCommand();cmd.CommandText =delete from 菜譜 where 菜名 = +listView1.SelectedItemsi.Text + ;con.Open();c

36、md.ExecuteNonQuery();con.Close();listView1.Items.Clear();Form1_Load(sender, e);private void button1_Click( object sender, EventArgs e)if (listView1.SelectedItems.Count = 1)菜譜修改 cform = new 菜譜修改 ();17cform.caiming =listView1.SelectedItems0.SubItems0.Text;cform.shijia =Convert .ToInt16(listView1.Selec

37、tedItems0.SubItems2.Text);if (cform.ShowDialog() = DialogResult .OK)OleDbConnection con = new OleDbConnection (str);OleDbCommancdmd = con.CreateCommand();cmd.CommandText = update 菜譜 set 時價 = + cform.shijia + where 菜名 =+ listView1.SelectedItems0.SubItems0.Text + ;con.Open();cmd.ExecuteNonQuery();con.

38、Close();listView1.Items.Clear();Form1_Load(sender, e);private void textBox1_TextChanged( object sender, EventArgs e)菜名縮寫 like % + textBox1.Text.Trim() +private void Form1_FormClosing( object sender, FormClosingEventArgs e)if ( MessageBox.Show( 你真的要退出 ?, 確認,MessageBoxButtons.OKCancel, MessageBoxIcon.

39、Question,MessageBoxDefaultButton .Button2)DialogResult .Cancel)true ;Refresh_Phone_List(II% );e.Cancel =18private void button_ 向點菜器寫入菜譜 _Click( object sender, EventArgse)19serialPort1.Open();/ 啟用發(fā)送數據表記錄到串口的函數 .Write_Menu_TO_IIC_24C1024();/-serialPort1.Close();bool SP_Ready = false ;public int j=0;in

40、t count = 0;void Write_Menu_TO_IIC_24C1024()菜譜傳輸 pass = new 菜譜傳輸 (); pass.Show();int j;/1-OleDbConnection conn = newOleDbConnection ( provider=microsoft.jet.oledb.4.0;data source=理.mdb);conn.Open();菜譜管OleDbDataAdapter odapr = newOleDbDataAdapter(select * from 菜 譜order by 編號, conn);/3-DataTable dt =

41、new DataTable () ;odapr.Fill(dt);/4- 訪問所有表行 , 并發(fā)送串口 . byte Buffer = new byte 24;for ( int i = 0; i dt.Rows.Count; i+)j = 0;/ 序號,分類號, 名稱,價格, 簡記 4-2-10-4-5 byte f1 =Encoding.Default.GetBytes(dt.Rowsi 編號20byte f3 =Encoding .Default.GetBytes(dt.Rowsi .ToString();byte f4 =Encoding .Default.GetBytes(dt.Ro

42、wsi .ToString();byte f5 =Encoding .Default.GetBytes(dt.Rowsi .ToString();pass .cm = dt.Rowsi 菜名 .ToString();/ 將字節(jié)緩沖全部清為空格 .for (j = 0; j 24; j+) Bufferj = 0 x20;for (j = 0; j f1.Length; j+) Bufferj = f1j;for (j = 0; j f3.Length; j+) Bufferj + 4 = f3j; for (j = 0; j f4.Length;j+) Bufferj + 14 = f4j;f

43、or (j = 0; j 100)t=0; progressBar1.Value= t;textBox_菜名 .Text = cm;elseprogressBar1.Visible =false ;timer1.Enabled =false ;timer2.Enabled =true ;EventArgs e)EventArgs e)int x = 0;private void timer2_Tick( object sender,EventArgs e)2425x+;textBox_菜名.Text = fm;if (x2)timer2.Enabled =false ;this .Close(

44、);C 語言硬件控制部分:/*/* 上下翻動菜名/*/*void LCD_up_down()uchar j,l=-1;if(KeyNo=9)P1 = 0 x0F; while (P1!=0 x0F);x-;g-;l=f;if(f=0)g=2;LCD_Col-;*/*/*/*26f=2;elsef-;if(KeyNo=10)P1 = 0 x0F; while (P1!=0 x0F);x+;g+;l=f;if(f=2)g=0;LCD_Col+;f=0;LCD=0;elsef+;if(l!=-1)lcd_wcmd(up_downl);27for(j=0;j2;j+)lcd_wdat( DIS6j);

45、 l=-1;lcd_wcmd(up_downf);for(j=0;j2;j+)lcd_wdat( DIS5j);/* * 按鍵控制并顯示按鍵 *void Key_col_KeyNo()if(KeyNo=9 |KeyNo=10)LCD_up_down();else/ 如果是新按鍵if(Pre_KeyNo != KeyNo)TR0 = 1;Pre_KeyNo = KeyNo;Inner_idx = 0;t+;28s+;/ 否則按下的是同位按鍵else/ 短暫時間范圍內的重復按鍵if(tSpan 4)for(i=0;i5;i+)data_lcdi=DIS61;s=-1;delay(20);data_

46、lcds=KeyPad_CharsKeyNoInner_idx; / 記錄按鍵 if(x1=0) lcd_wcmd(0 x98);for(i=0;i5;i+)lcd_wdat(data_lcdi);29x1=0;elselcd_wcmd(0 x8e);for(i=0;i16) & 0 x00000001);page 8) return(0);if (!SendByte(uchar)(addr16) return(0);Start();/器件地址 (讀)if (!SendByte(Slave | 0 x01) return(0);for(i = 0; i 16) & OxOOOO

47、OOO1); page 8) return(0);if (!SendByte(uchar)(addr16) return(0);for(i = 0; i N; i+)/發(fā)送數據if (!SendByte(Bufferi) return 0;Stop();return 1;32*33* 主函數for(j=0;j3;j+) /void main()P0 = 0 xFF;P2 = 0 xFF;IIC_24C1024_Init();IE = 0 x83;SCON = 0 x50;/TMOD = 0 x21;/T1PCON = 0 x00;/串口方式 1, 允許接收工作于方式 2波特率不倍增TH1 =

48、TL1 = 0 xFD; /BaudRate:9600 11.0592MHZES = 1;/允許串口中斷ES = 1;/允許串口中斷IP = 0 x01;/外部中斷 0 設為高優(yōu)先級TR1 = 1;/啟動定時器TH0 = -50000 / 256;TL0 = -50000 % 256;delay(100);/ 上電,等待穩(wěn)定clr_screen(); /液晶清屏lcd_init(); /液晶的初始化34lcd_wcmd(up_downj+1);for(i=0;i14;i+)lcd_wdat(DIS1ji);delay(30);LCD_up_down(); / 掃描是否上下翻動菜譜 for(i=

49、0;istrlen(DIS3);i+)DIS3i=0;while(1)P1 = 0 xF0;if(P1 != 0 xF0)Keys_Scan(); / 未按下按鍵等待P1 = 0 x0F;while (P1!=0 x0F);else continue; / 掃描鍵盤獲取鍵序號 KeyNoif(KeyNo=10)Key_col_KeyNo();elseKey_col_List();RecString(0 xa0,0 x00000000+23*x,DIS4,4);/ 記錄菜名號 if(LCD=0) / 未搜索時35菜名依次顯示 for(j=0+3*LCD_Col;j3+3*LCD_Col;j+)R

50、ecString(0 xa0, 0 x00000004+23*j,DIS1j-3*LCD_Col,14);lcd_wcmd(up_downj+1);for(i=0;i14;i+)lcd_wdat(DIS1j-3*LCD_Coli);delay(30);4 4小結通過自行研究的電子點菜系統(tǒng)是一款基于 8051 單片機系列的電子產品。 它集成了 單片機,C#,數據庫三方面的軟件設計,實現了單片機與 C#之間的通訊。使用 24C1024 擴展8052 的存儲范圍,而 8051 則為 24C1024 數據的傳輸提供指令。該作品集成的三大 軟件模塊為硬件提供核心支持。硬件部分主要元件有: 四行中文液晶,

51、AT89S52,24C1024,MAX232按鍵等。參考文獻:ad380-Numbered_0ae30780-328e-4a58-ab3d-c7c8c2a4413f-Numbehttp:/ 數據庫編程技術,北京:人民郵電出版社, 2002ad380-Numbered_0ae30780-328e-4a58-ab3d-c7c8c2a4413f-Numbehttp:/ .pdfad380-Numbered_0ae30780-328e-4a58-ab3d-c7c8c2a4413f-Numbe何佳.89C51 單片機論文英語原文及譯文.西安郵電學院畢業(yè)設計論文,2007:17 33.ad380-Numbered_0ae30780-328e-4a58-ab3d-c7c8c2a4413f-Numbe王小科.C#從入門到精通.清華大學出版社,2008.9.1.a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論