版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、理科畢業(yè)論文(設(shè)計)排版模式教務(wù)處編制33分類號 密級 u d c 編號 本科畢業(yè)論文(設(shè)計) 題 目 電子點(diǎn)菜系統(tǒng) 院 (系) 專 業(yè) 年 級 學(xué)生姓名 學(xué) 號 指導(dǎo)教師 二一 年 五 月 華中師范大學(xué)學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行研究工作所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。本人完全意識到本聲明的法律后果由本人承擔(dān)。學(xué)位論文作者簽名: 日期: 年 月 日.學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保障、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向有關(guān)學(xué)位論文管理部門或機(jī)構(gòu)送交
2、論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)省級優(yōu)秀學(xué)士學(xué)位論文評選機(jī)構(gòu)將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。本學(xué)位論文屬于1、保密 ,在_年解密后適用本授權(quán)書。2、不保密 。(請在以上相應(yīng)方框內(nèi)打“”)學(xué)位論文作者簽名: 日期: 年 月 日導(dǎo)師簽名: 日期: 年 月 日目錄內(nèi)容摘要1 關(guān) 鍵 詞1 abstract1 key words 1 1系統(tǒng)概述與設(shè)計原理2 1.1該系統(tǒng)概述 2 1.2系統(tǒng)框圖 2 1.3系統(tǒng)設(shè)計原理 3 2硬件電路設(shè)計與計算4 2.1 at89c51部分4 2.2 24c1024總線部分7
3、 2.3液晶顯和鍵盤矩陣部示部分8 3系統(tǒng)設(shè)計流程11 3.1硬件部分113.2軟件部分124. 小結(jié)31 參考文獻(xiàn)32致 謝 33內(nèi)容摘要:本電子點(diǎn)菜系統(tǒng)采用at89c51單片機(jī)控制,處理數(shù)據(jù)并驅(qū)動液晶屏來實(shí)現(xiàn)對數(shù)據(jù)的現(xiàn)實(shí)。主要過程如下:利用鍵盤輸入對菜號的選擇,然后將選擇菜號,傳送給單片機(jī)進(jìn)行數(shù)據(jù)處理,從24c1024存儲芯片中提取菜名數(shù)據(jù)信息,并通過液晶屏將提取菜名數(shù)據(jù)信息顯示出來,最后通過串口傳輸?shù)诫娔X上面。關(guān) 鍵 詞:at89c51單片機(jī) 24c1024存儲芯片 12864液晶屏 鍵盤矩陣abstract:electronic ordering device, the key is
4、24 c1024 and at89c51 two chips, which 24c1024 used to store all the foods information, through the at89c51, the information will be transmitted to the lcd menu. however, they need customers to choose good dishes, the menu will be automatically stored in the at89c51, and then can be directly connecte
5、d 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 data transfer between the liquid crystal, liquid crystal display part and the serial communication part. is the core of block bo
6、ard. he was fired through the c language program into the.key words:at89c51 microcontroller 24c1024 memory chips 12864 lcd keyboard matrix1系統(tǒng)概述與設(shè)計原理1.1該系統(tǒng)概述隨著人們的生活水平提高,餐飲業(yè)的發(fā)展也越來越迅猛。對于人滿為患的酒店來說,確??焖佟?zhǔn)確的點(diǎn)單是十分必要的,這就需要科學(xué)技術(shù)做堅強(qiáng)的后盾。在這種情況下,電子點(diǎn)菜系統(tǒng)便應(yīng)運(yùn)而生,該系統(tǒng)是一款應(yīng)用于中大型餐廳,方便顧客和服務(wù)員點(diǎn)菜的系統(tǒng)。它打破了傳統(tǒng)點(diǎn)菜的方式,顧客只需通過手中小巧的電子點(diǎn)菜
7、器就可以隨意點(diǎn)到自己需要的菜肴,并且方便酒店隨時刷新菜譜,為消費(fèi)者提供最新的美食信息。電子點(diǎn)菜系統(tǒng)不僅滿足了現(xiàn)代人對快節(jié)奏的需要,而且時尚、新穎。相信使用電子點(diǎn)菜系統(tǒng)的酒店肯定備受消費(fèi)者的青睞。電子點(diǎn)菜系統(tǒng)應(yīng)用于中大型酒店,無需傳統(tǒng)菜單及服務(wù)生,顧客只需使用桌上提供的電子點(diǎn)菜器就可以隨意挑選自己想吃的菜品,精致小巧的點(diǎn)菜器配上適合眼睛感官視覺的四行中文液晶顯示器,免去了您頻繁翻閱傳統(tǒng)菜單的煩惱。用單片機(jī)技術(shù)設(shè)計、制造的點(diǎn)菜器控制系統(tǒng),具有集成度高、功能強(qiáng)、體積小、速度快、存儲量大、指令豐富,抗干擾性強(qiáng),性能價格比高,通用性好,推廣范圍大,工作可靠,指示準(zhǔn)確,易于匹配,使用壽命長,標(biāo)準(zhǔn)化系數(shù)高等
8、一系列優(yōu)勢和特點(diǎn)。1.2 系統(tǒng)框圖串口包括:賬目管理,編號表,菜譜,信息配置燒錄存儲窗體控制顯示調(diào)用菜單串口1.3系統(tǒng)設(shè)計原理十二個按鍵式鍵盤矩陣,是讓顧客可以方便選擇菜名,同時可以輸入桌號。一個上翻和下翻鍵方便顧客瀏覽更多的菜系,一個確定鍵確認(rèn)顧客點(diǎn)的菜肴,還有一個按鍵是選擇。在電子點(diǎn)菜器上,主要是24 c1024和at89c51兩塊芯片,其中24c1024用來存儲所有菜名信息,通過at89c51,將菜譜信息傳輸給液晶顯示。但顧客選擇好自己需要的菜品后,菜單將自動存儲到at89c51中,再可以通過串口與電腦直接相連,將菜單傳輸?shù)綌?shù)據(jù)庫中進(jìn)行存儲,并顯示、打印出來。而at89c51主要是用來控
9、制24 c1024與液晶之間數(shù)據(jù)傳輸,液晶顯示部分以及串口通訊部分。是整塊板的核心部分。他是通過c語言程序燒制進(jìn)去的。在顧客點(diǎn)菜過程中,顧客可以通過字母按鍵對菜單進(jìn)行分類,找出符合自己口味的菜品類。若顧客還想點(diǎn)到固定的菜肴,可以直接通過輸入菜名拼音首字母,即可獲取菜肴名。全部點(diǎn)完按完成鍵,上方的中文液晶屏將清晰顯示謝謝惠顧和請輸入桌號等信息,顧客只需控制按鍵就可以點(diǎn)到自己所需的菜肴,既方便,又省事。點(diǎn)菜完成后,服務(wù)生可以通過電子點(diǎn)菜器上的串口傳輸點(diǎn)菜信息到總服務(wù)臺上的電腦中,電腦再對信息加以分類存儲、打印,這樣避免了傳統(tǒng)點(diǎn)菜的手寫誤差,也方便顧客結(jié)賬和餐廳管理。2 硬件電路設(shè)計與計算2.1 a
10、t89c51單片機(jī)2.1.1 描述at89c51是美國atmel公司生產(chǎn)的低電壓,高性能cmos8位單片機(jī),片內(nèi)含4kbytes的快速可擦寫的只讀程序存儲器(perom)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51產(chǎn)品指令系統(tǒng),片內(nèi)置通用8位中央處理器(cpu)和flish存儲單元,功能強(qiáng)大at89c51單片機(jī)可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。at89c51提供以下標(biāo)準(zhǔn)功能:4k 字節(jié)flish閃速存儲器,128字節(jié)內(nèi)部ram,32個i/o口線,兩個16位定時計數(shù)器,一個5向量兩級中斷結(jié)
11、構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,at89c51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram,定時計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。2.1.2電路圖引腳功能說明:vcc:電源電壓。gnd:地。p0口:p0口是一組8位漏極開路型雙向i/o口,也即地址/數(shù)據(jù)總線復(fù)位口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個邏輯門電路,對端口寫“1”可 作為高阻抗輸入端用。p1口:p1是一個帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級可驅(qū)動
12、(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可做熟出口。做輸出口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。p2口:p2是一個帶有內(nèi)部上拉電阻的8位雙向i/o口,p2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部地山拉電阻把端口拉到高電平,此時可作為輸出口,作輸出口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。p3口:p3口是一組帶有內(nèi)部上拉電阻的8位雙向i/o口。p3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對p3口寫入
13、“1”時,他們被內(nèi)部上拉電阻拉高并可作為輸出口。做輸出端時,被外部拉低的p3口將用上拉電阻輸出電流(iil)。p3口除了作為一般的i/o口線外,更重要的用途是它的第二功能,如下表:端口引腳第二功能p3.0rxd (串行輸入口)p3.1txd (串行輸出口)p3.2int0 (外中斷0)p3.3int1 (外中斷1)p3.4t0 (定時/計數(shù)器0)p3.5t1 (定時/計數(shù)器1)p3.6 wr (外部數(shù)據(jù)存儲器寫選通)p3.7rd (外部數(shù)據(jù)存儲器讀選通)rst:復(fù)位輸入。當(dāng)振蕩器工作時,rst引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ale/prog:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,a
14、le(地址所存允許)輸出脈沖用于所存地址的低8位字節(jié)。即使不訪問外部存儲器,ale仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ale脈沖。psen:程序存儲允許(psen)輸出是外部程序存儲器的讀選通信號,當(dāng)at89c51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩個psen有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的psen信號不出現(xiàn)。ea/vpp:外部訪問允許。欲使cpu僅訪問外部程序存儲器(地址為0000h-ffffh),ea端必須保持低電平(接地)。需注意的是; 如果加密位l
15、b1被編程,復(fù)位時內(nèi)部會鎖存ea端狀態(tài)。xtal1: 振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸出端。xtal2: 振蕩器反相放大器的輸出端。p89c51 特殊功能寄存器。2.2 24c1024 部分(i2c總線技術(shù))2.2.1 i2c總線工作原理 總線的構(gòu)成及信號類型: i2c總線是由數(shù)據(jù)線sda和時鐘scl構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在cpu與被控ic之間、ic與ic之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址,在信息的傳輸過程中,i2c總線上并接的每一模塊電路既是主控器(或被
16、控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。cpu發(fā)出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。 i2c總線在傳送數(shù)據(jù)過程中共有三種類型信號, 它們分別是:開始信號、結(jié)束信號和應(yīng)答信號。 開始信號:scl為高電平時,sda由高電平向低電平跳變,開始傳送數(shù)據(jù)。 結(jié)束信號:scl為高電平時,sda由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。 應(yīng)答信號:接收數(shù)據(jù)的ic在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的ic發(fā)出特定的低電平脈沖,表
17、示已收到數(shù)據(jù)。cpu向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應(yīng)答信號,cpu接收到應(yīng)答信號后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號的判斷。若未收到應(yīng)答信號,由判斷為受控單元出現(xiàn)故障。 這些信號中,起始信號是必需的,結(jié)束信號和應(yīng)答信號,都可以不要。目前有很多半導(dǎo)體集成電路上都集成了i2c接口。帶有i2c接口的單片機(jī)有:cygnal的 c8051f0xx系列,philipsp87lpc7xx系列,microchip的pic16c6xx系列等。很多外圍器件如存儲器、監(jiān)控芯片等也提供i2c接口。 2.2.2 i2c總線操作 i2c規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收
18、數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時鐘(scl)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。sda線上的數(shù)據(jù)狀態(tài)僅在scl為低電平的期間才能改變,scl為高電平的期間,sda狀態(tài)的改變被用來表示起始和停止條件。 控制字節(jié): 在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識別符(不同的芯片類型有不同的定義,eeprom一般應(yīng)為1010),接著三位為片選,最后一位為讀寫位,當(dāng)為1時為讀操作,為0時為寫操作。 寫操作:寫操作分為字節(jié)寫和頁面寫兩種操作,對于頁面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同。 讀操作
19、: 讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。圖4給出的是順序讀的時序圖。應(yīng)當(dāng)注意的是:最后一個讀操作的第9個時鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個周期間發(fā)出停止條件或者在第9個時鐘周期內(nèi)保持sda為高電平、然后發(fā)出停止條件。2.2.3 主要功能在我這個作品中,由于單片機(jī)本身存儲控件很小,所以24c1024芯片的主要作為一塊存儲芯片使用的。作用就是存儲菜譜信息,用戶操作按鍵選擇在液晶屏上顯示的菜名信息全部是通過讀取24c1024芯片中的菜譜數(shù)據(jù)。同時24c1024芯片還要實(shí)時接收csharp軟件對菜譜的更新。2.3 12864液晶屏和鍵盤矩陣2.3.1 12864液晶
20、屏簡介帶中文字庫的128x64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為12864, 內(nèi)置8192個16*16點(diǎn)漢字,和128個16*8點(diǎn)ascii字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示84行1616點(diǎn)陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點(diǎn)陣的圖形液晶模塊?;咎匦? 1.低電源電壓(vdd:+3.0-+5
21、.5v 2.顯示分辨率:12864點(diǎn) 3.內(nèi)置漢字字庫,提供8192個1616點(diǎn)陣漢字(簡繁體可選) 4.內(nèi)置 128個168點(diǎn)陣字符 5.2mhz時鐘頻率 6.顯示方式:stn、半透、正顯 7.驅(qū)動方式:1/32duty,1/5bias 7.視角方向:6點(diǎn) 8.背光方式:側(cè)部高亮白色led,功耗僅為普通led的1/51/10 9.通訊方式:串行、并口可選 10.內(nèi)置dc-dc轉(zhuǎn)換電路,無需外加負(fù)壓 11.無需片選信號,簡化軟件設(shè)計 12.工作溫度: 0 - +55 ,存儲溫度: -20 - +60 忙標(biāo)志:bf bf標(biāo)志提供內(nèi)部工作情況.bf=1表示模塊在進(jìn)行內(nèi)部操作,此時模塊不接受外部指令
22、和數(shù)據(jù).bf=0時,模塊為準(zhǔn)備狀態(tài),隨時可接受外部指令和數(shù)據(jù).利用status rd 指令,可以將bf讀到db7總線,從而檢驗(yàn)?zāi)K之工作狀態(tài). 字型產(chǎn)生rom(cgrom) 字型產(chǎn)生rom(cgrom)提供8192個此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制。dff=1為開顯示(display on),ddram的內(nèi)容就顯示在屏幕上,dff=0為關(guān)顯示(display off)。dff 的狀態(tài)是指令display on/off和rst信號控制的。 顯示數(shù)據(jù)ram(ddram)模塊內(nèi)部顯示數(shù)據(jù)ram提供642個位元組的空間,最多可控制4行16字(64個字)的中文字型顯示,當(dāng)寫入顯示數(shù)據(jù)ram時,可分
23、別顯示cgrom與cgram的字型;此模塊可顯示三種字型,分別是半角英數(shù)字型(16*8)、cgram字型及cgrom的中文字型,三種字型的選擇,由在ddram中寫入的編碼選擇,在0000h0006h的編碼中(其代碼分別是0000、0002、0004、0006共4個)將選擇cgram的自定義字型,02h7fh的編碼中將選擇半角英數(shù)字的字型,至于a1以上的編碼將自動的結(jié)合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼big5(a140d75f),gb(a1a0-f7ffh)。 字型產(chǎn)生ram(cgram) 字型產(chǎn)生ram提供圖象定義(造字)功能,可以提供四組1616點(diǎn)的自定義圖象空間,使用者
24、可以將內(nèi)部字型沒有提供的圖象字型自行定義到cgram中,便可和cgrom中的定義一樣地通過ddram顯示在屏幕中。 地址計數(shù)器ac地址計數(shù)器是用來貯存ddram/cgram之一的地址,它可由設(shè)定指令暫存器來改變,之后只要讀取或是寫入ddram/cgram的值時,地址計數(shù)器的值就會自動加一,當(dāng)rs為“0”時而r/w為“1”時,地址計數(shù)器的值會被讀取到db6db0中。 光標(biāo)/閃爍控制電路此模塊提供硬體光標(biāo)及閃爍控制電路,由地址計數(shù)器的值來指定ddram中的光標(biāo)或閃爍位置2.3.2 液晶部分主要功能液晶部分主要就是顯示功能。將按鍵對菜譜的操作顯示出來,同時為了方便客人點(diǎn)菜,還要將客人點(diǎn)菜信息和消費(fèi)情
25、況顯示出來供客人預(yù)覽,等客人確定后在傳送到csharp軟件中去。2.3.3 鍵盤部分主要功能十二個按鍵式鍵盤矩陣,是讓顧客可以方便選擇菜名,同時可以輸入桌號。一個上翻和一個下翻鍵方便顧客瀏覽更多的菜系,一個確定鍵確認(rèn)顧客點(diǎn)的菜肴,還有一個按鍵是選擇。顧客可以通過字母按鍵對菜單進(jìn)行分類,找出符合自己口味的菜品類。若顧客還想點(diǎn)到固定的菜肴,可以直接通過輸入菜名拼音首字母,即可獲取菜肴名。12864液晶屏主要是顯示作用,把在鍵盤上的種種操作都通過液晶屏顯示出來,方便顧客使用。3系統(tǒng)設(shè)計流程3.1 硬件部分3.1.1 硬件部分功能簡介 單片機(jī)硬件部分包括:鍵盤矩陣,12863液晶屏,24c1024存儲
26、芯片,at89c51芯片。硬件功能:硬件部分包括電子點(diǎn)菜電路板和一個4*4的鍵盤矩陣,通過控制電路板上的按鍵通過單片機(jī)使液晶顯示自己需要的信息,并保存在單片機(jī)中,還有max232串口驅(qū)動芯片用來驅(qū)動串口,然后就可以通過串口輸入或輸出信息,并保存到c#數(shù)據(jù)庫中去。硬件部分還包含包括電子點(diǎn)菜器電路板的設(shè)計及焊接,24c1024芯片,at89c51芯片,液晶,串口等部分。其中液晶顯示上我選擇的是分部顯示的原則,就是將我想顯示的信息預(yù)先存儲在我選好的位置上,不同按鍵按下觸發(fā)不同內(nèi)容顯示在液晶上,還有個難點(diǎn)就是要將使用者所選擇的菜記錄下來,我原本的設(shè)想是想把所選擇的菜名和菜價用一個數(shù)組了,可8052的存
27、儲空間太小如果點(diǎn)的太多就根本無法存儲。于是我想到了另一種辦法,就是記錄菜名號的方法,我在c#發(fā)送菜譜時給每一道菜加上一個唯一固定編號一起放送到24c1024中去,當(dāng)客人點(diǎn)菜時我就用一個數(shù)組來存儲被點(diǎn)菜的編號,這樣就大大降低了對存儲空間的使用也提高了數(shù)據(jù)傳輸?shù)陌踩?。在一個就是對菜的搜索問題,客人有時想點(diǎn)自己喜歡的菜,在點(diǎn)菜器中翻找太麻煩,他可以自己輸入菜的索引從而尋找自己想要點(diǎn)的菜,做搜索在c#上很好做但在單片機(jī)上時很難做到的,因?yàn)閱纹瑱C(jī)空間小,沒有現(xiàn)成的控件使用,也不能針對數(shù)據(jù)庫進(jìn)行操作。我用的辦法是將顧客所按按鍵記錄下來當(dāng)顧客點(diǎn)擊查詢時將得到按鍵索引和24c1024固定位置的到的菜名索引進(jìn)
28、行對比,如果相同就從24c1024的相應(yīng)位置取出菜名和菜價顯示在液晶上,這就要求數(shù)據(jù)存放要做嚴(yán)格要求.再就是每次點(diǎn)完都要記錄菜價,這就要求再點(diǎn)菜我確定是必須同時記錄所選菜在24c1024中存儲的位置,再在這個基礎(chǔ)上查詢菜價進(jìn)行記錄保存,以便傳輸?shù)絚#進(jìn)行保存和查詢。3.1.2 硬件電路圖ed1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8rsrwd8d7d6d5d4d3d2d1erwrst1in11r1out12t2in10r2out9t1out14r1in13t2out7r2in8c2+4c2-5c1+1c1-3vs+2vs-6u2max232xtal218xtal119ale
29、30ea31psen29rst9p0.0/ad039p0.1/ad138p0.2/ad237p0.3/ad336p0.4/ad435p0.5/ad534p0.6/ad633p0.7/ad732p2.7/a1528p2.0/a821p2.1/a922p2.2/a1023p2.3/a1124p2.4/a1225p2.5/a1326p2.6/a1427p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78p3.0/rxd10p3.1/txd11p3.2/int012p3.3/int113p3.4/t014p3.7/rd17p3.6/wr16p3.5/t115u180c51c
30、41ufc31ufc11ufc21uferrortxd3rxd2cts8rts7dsr6dtr4dcd1ri9p1compimp_port=com4v_baudrate=9600v_databits=8v_parity=noneinput_buffer_size=1024output_buffer_size=1024d714d613d512d411d310d29d18d07e6rw5rs4vss1vdd2vee3lcd1lm016l234567891rp1respack-8scl6sda5wp7a12u3at24c1024 通過串口與電腦相連相互傳送數(shù)據(jù)。單片機(jī)通過p0口控制液晶顯示,通過pi
31、口控制24c1024芯片存儲數(shù)據(jù),通過串口將菜譜數(shù)據(jù)寫入到24c1024芯片中去,同時調(diào)用24c1024芯片數(shù)據(jù)顯示到液晶屏中。按鍵部分圖略。按鍵選擇菜名,客人最后確認(rèn)后通過串口回傳到pc中。3.2 軟件部分3.2.1 軟件功能簡介c sharp軟件程序后臺軟件部分:c#用于后臺程序,酒店內(nèi)部添加刪除菜名及菜名索引,并將顧客所點(diǎn)菜顯示在c#上;數(shù)據(jù)庫應(yīng)用與保存菜譜表,桌號消費(fèi)統(tǒng)計(桌號,總消費(fèi),時間),查詢視圖。軟件功能:包括c,c#,數(shù)據(jù)庫三大部分。其中c用于收集菜譜和存儲,用于顧客查找,瀏覽菜譜并對菜譜進(jìn)行選擇,查看和統(tǒng)計消費(fèi)總價,并且回傳顧客消費(fèi)信息;c#用于后臺程序,酒店內(nèi)部添加刪除菜
32、名及菜名索引,并將顧客所點(diǎn)菜顯示在c#上;數(shù)據(jù)庫應(yīng)用與保存菜譜表,桌號消費(fèi)統(tǒng)計(桌號,總消費(fèi),時間),查詢視圖。在就是串口的數(shù)據(jù)收發(fā),由于我在顯示和搜索時對數(shù)據(jù)的格式有很高要求,所以在用串口傳輸數(shù)據(jù)時在傳輸前必須要對數(shù)據(jù)進(jìn)行嚴(yán)格的格式轉(zhuǎn)換。在接受數(shù)據(jù)時,因?yàn)榻邮艿臄?shù)據(jù)有很多種,所以在接受時要對數(shù)據(jù)進(jìn)行判斷然后再進(jìn)行分類存儲。3.2.2 軟件流程3.2.3 軟件主要代碼csharp后臺控制部分:菜譜管理:namespace 點(diǎn)菜 public partial class 菜譜管理_當(dāng)前時間 : form public 菜譜管理_當(dāng)前時間() initializecomponent(); priv
33、ate 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 (whereconditon != ) scond += where + whereconditon + ; datatable dt = db1.getrecords(s
34、cond); /向列表視圖中添加所有的相關(guān)號碼記錄 for (int i = 0; i = 0; i-) oledbconnection con = new oledbconnection(str); oledbcommand cmd = con.createcommand(); cmd.commandtext = delete from 菜譜 where 菜名= + listview1.selecteditemsi.text + ; con.open(); cmd.executenonquery(); con.close(); listview1.items.clear(); form1_l
35、oad(sender, e); private void button1_click(object sender, eventargs e) if (listview1.selecteditems.count = 1) 菜譜修改 cform = new 菜譜修改(); cform.caiming = listview1.selecteditems0.subitems0.text; cform.shijia = convert.toint16(listview1.selecteditems0.subitems2.text); if (cform.showdialog() = dialogresu
36、lt.ok) oledbconnection con = new oledbconnection(str); oledbcommand cmd = con.createcommand(); cmd.commandtext = update 菜譜 set 時價= + cform.shijia + where 菜名= + listview1.selecteditems0.subitems0.text + ; con.open(); cmd.executenonquery(); con.close(); listview1.items.clear(); form1_load(sender, e);
37、private void textbox1_textchanged(object sender, eventargs e) refresh_phone_list(菜名縮寫 like % + textbox1.text.trim() + %); private void form1_formclosing(object sender, formclosingeventargs e) if (messagebox.show(你真的要退出?, 確認(rèn), messageboxbuttons.okcancel, messageboxicon.question, messageboxdefaultbutto
38、n.button2) = dialogresult.cancel) e.cancel = true; private void button_向點(diǎn)菜器寫入菜譜_click(object sender, eventargs e) serialport1.open(); /啟用發(fā)送數(shù)據(jù)表記錄到串口的函數(shù). write_menu_to_iic_24c1024(); /- serialport1.close(); bool sp_ready = false; public int j=0; int count = 0; void write_menu_to_iic_24c1024() 菜譜傳輸 pas
39、s = new 菜譜傳輸(); pass.show(); int j; /1- oledbconnection conn = new oledbconnection(provider=microsoft.jet.oledb.4.0;data source=菜譜管理.mdb); conn.open(); oledbdataadapter odapr = new oledbdataadapter(select * from 菜譜 order by 編號, conn); /3- datatable dt = new datatable(); odapr.fill(dt); /4-訪問所有表行,并發(fā)送
40、串口. byte buffer = new byte24; for (int i = 0; i dt.rows.count; i+) j = 0; /序號,分類號,名稱,價格,簡記 4-2-10-4-5 byte f1 = encoding.default.getbytes(dt.rowsi編號.tostring(); byte f3 = encoding.default.getbytes(dt.rowsi菜名.tostring(); byte f4 = encoding.default.getbytes(dt.rowsi時價.tostring(); byte f5 = encoding.de
41、fault.getbytes(dt.rowsi菜名縮寫.tostring(); pass .cm = dt.rowsi菜名.tostring(); /將字節(jié)緩沖全部清為空格. for (j = 0; j 24; j+) bufferj = 0x20; 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; for (j = 0; j f5.length; j+) bufferj + 18 = f5j; buffer23 = (byte)(r); /將所有字段內(nèi)容分解到字節(jié)緩沖后,發(fā)送buffer緩沖. serialport1.write(buffer, 0, buffer.length); sp_ready = false; count += 1; /如串口未就緒則等待. application.doevents(); while (!sp_ready) ; if (count = dt.r
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)硅搗爐工工藝流程
- 腳手架的搭設(shè)和拆除施工方案
- 公路土木工程建設(shè)施工可行性研究報告
- 耳塞式耳機(jī)購買協(xié)議
- 家居裝飾補(bǔ)充協(xié)議書
- 標(biāo)準(zhǔn)入學(xué)保證書模板
- 招標(biāo)工程材料采購
- 水電站建設(shè)招標(biāo)條件
- 代購服務(wù)合同糾紛案例分析
- 貨物裝卸與勞務(wù)分包合作的重要性
- 急診科夜班護(hù)士準(zhǔn)入制度
- (2024年)治療肩周炎課件
- 《大學(xué)生心理健康教育》(第四版)知識點(diǎn) 第一章 心理健康:幸福人生的保障
- 老人愛眼護(hù)眼方案
- 地震和防震知識課件
- 小木屋旅游露營基地可行性研究報告
- 預(yù)防術(shù)中低體溫Pdca 課件
- 種子檢測報告
- 鉆孔灌注樁施工機(jī)械設(shè)備選型與匹配
- 企業(yè)員工年齡分析報告
- 新時代開放大學(xué)教育教學(xué)改革的趨勢與方向
評論
0/150
提交評論