




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除理科畢業(yè)論文(設(shè)計(jì))排版模式教務(wù)處編制1 / 41資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除分類號(hào)密級(jí)UDC編號(hào)算中砰筑火警本科畢業(yè)論文(設(shè)計(jì))題目電子點(diǎn)菜系統(tǒng)院(系)專業(yè)年級(jí)學(xué)生姓名學(xué)號(hào)指導(dǎo)教師二O一。年五月華中師范大學(xué)學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行研究工作所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。學(xué)位論文作者簽名:日期:年月日O學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解
2、學(xué)校有關(guān)保障、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向有關(guān)學(xué)位論文管理部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)省級(jí)優(yōu)秀學(xué)士學(xué)位論文評(píng)選機(jī)構(gòu)將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文.本學(xué)位論文屬于1、保密口,在年解密后適用本授權(quán)書。2、不保密口。(請(qǐng)?jiān)谝陨舷鄳?yīng)方框內(nèi)打“)資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除學(xué)位論文作者簽名:日期:年月日# / 41資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除導(dǎo)師簽名:日期:年月日4 / 41資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪
3、除目錄內(nèi)容摘要1關(guān)鍵詞1Abstract1KeyWords11.系統(tǒng)概述與設(shè)計(jì)原理2lo1該系統(tǒng)概述2lo2系統(tǒng)框圖2lo3系統(tǒng)設(shè)計(jì)原理32 .硬件電路設(shè)計(jì)與計(jì)算42o1AT89c51部分42o224cl024總線部分7資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除2o3液晶顯和鍵盤矩陣部示部分83 .系統(tǒng)設(shè)計(jì)流程113 .1硬件部分113o2軟件部分124 .小結(jié)31參考文獻(xiàn)32致謝336 / 41資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除內(nèi)容摘要:本電子點(diǎn)菜系統(tǒng)采用AT89c51單片機(jī)控制,處理數(shù)據(jù)并驅(qū)動(dòng)液晶屏來實(shí)現(xiàn)對(duì)數(shù)據(jù)的現(xiàn)實(shí)。主要過程如下:利用鍵盤輸入對(duì)菜號(hào)的選
4、擇,然后將選擇菜號(hào),傳送給單片機(jī)進(jìn)行數(shù)據(jù)處理,從24cl024存儲(chǔ)芯片中提取菜名數(shù)據(jù)信息,并通過液晶屏將提取菜名數(shù)據(jù)信息顯示出來,最后通過串口傳輸?shù)诫娔X上面。關(guān)鍵詞:AT89c51單片機(jī)24cl024存儲(chǔ)芯片12864液晶屏鍵盤矩陣Abstract:Electronicorderingdevice,thekeyis24C1024andAT89C51twochips,which24C1024usedtostoreallthefood,sinformation,throughtheAT89C51,theinformationwillbetransmittedtotheLCDmenu.However
5、,theyneedcustomerstochoosegooddishes,themenuwillbeautomaticallystoredintheAT89C51,andthencanbedirectlyconnectedtothecomputerthroughtheserialportwillbetransferredtothedatabasemenu,store,anddisplayandprintitout。TheAT89S52ismainlyusedtocontrol24C1024anddatatransferbetweentheliquidcrystal,liquidcrystald
6、isplaypartandtheserialcommunicationpart。IsthecoreofblockboardoHewasfiredthroughtheClanguageprogramintotheoKeywords:AT89C51Microcontroller24C1024memorychipsl2864LCDKeyboardmatrix1 / 41資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除1系統(tǒng)概述與設(shè)計(jì)原理lo1該系統(tǒng)概述隨著人們的生活水平提高,餐飲業(yè)的發(fā)展也越來越迅猛。對(duì)于人滿為患的酒店來說,確保快速、準(zhǔn)確的點(diǎn)單是十分必要的,這就需要科學(xué)技術(shù)做堅(jiān)強(qiáng)的后盾.在這
7、種情況下,電子點(diǎn)菜系統(tǒng)便應(yīng)運(yùn)而生,該系統(tǒng)是一款應(yīng)用于中大型餐廳,方便顧客和服務(wù)員點(diǎn)菜的系統(tǒng)。它打破了傳統(tǒng)點(diǎn)菜的方式,顧客只需通過手中小巧的電子點(diǎn)菜器就可以隨意點(diǎn)到自己需要的菜肴,并且方便酒店隨時(shí)刷新菜譜,為消費(fèi)者提供最新的美食信息。電子點(diǎn)菜系統(tǒng)不僅滿足了現(xiàn)代人對(duì)快節(jié)奏的需要,而且時(shí)尚、新穎。相信使用電子點(diǎn)菜系統(tǒng)的酒店肯定備受消費(fèi)者的青睞.電子點(diǎn)菜系統(tǒng)應(yīng)用于中大型酒店,無需傳統(tǒng)菜單及服務(wù)生,顧客只需使用桌上提供的電子點(diǎn)菜器就可以隨意挑選自己想吃的菜品,精致小巧的點(diǎn)菜器配上適合眼睛感官視覺的四行中文液晶顯示器,免去了您頻繁翻閱傳統(tǒng)菜單的煩惱。用單片機(jī)技術(shù)設(shè)計(jì)、制造的點(diǎn)菜器控制系統(tǒng),具有集成度高、功
8、能強(qiáng)、體積小、速度快、存儲(chǔ)量大、指令豐富,抗干擾性強(qiáng),性能價(jià)格比高,通用性好,推廣范圍大,工作可靠,指示準(zhǔn)確,易于匹配,使用壽命長(zhǎng),標(biāo)準(zhǔn)化系數(shù)高等一系列優(yōu)勢(shì)和特點(diǎn)。1.2系統(tǒng)框圖6 / 41/AT89C51控制顯示;夜翳“方1.3系統(tǒng)設(shè)計(jì)原理包括:賬目管,理,編號(hào)表,菜iS,信BM置Q/I(24cl024芯片,調(diào)用菜單十二個(gè)按鍵式鍵盤矩陣,是讓顧客可以方便選擇菜名,同時(shí)可以輸入桌號(hào)。一個(gè)上翻和下翻鍵方便顧客瀏覽更多的菜系,一個(gè)確定鍵確認(rèn)顧客點(diǎn)的菜肴,還有一個(gè)按鍵是選擇。在電子點(diǎn)菜器上,主要是24C1024和AT89c51兩塊芯片,其中24cl024用來存儲(chǔ)所有菜名信息,通過AT89c51,將菜
9、譜信息傳輸給液晶顯示。但顧客選擇好自己需要的菜品后,菜單將自動(dòng)存儲(chǔ)到AT89c51中,再可以通過串口與電腦直接相連,將菜單傳輸?shù)綌?shù)據(jù)庫(kù)中進(jìn)行存儲(chǔ),并顯示、打印出來。而AT89c51主要是用來控制24cl024與液晶之間數(shù)據(jù)傳輸,液晶顯示部分以及串口通訊部分。是整塊板的核心部分。他是通過C語(yǔ)言程序燒制進(jìn)去的。在顧客點(diǎn)菜過程中,顧客可以通過字母按鍵對(duì)菜單進(jìn)行分類,找出符合自己口味的菜品類。若顧客還想點(diǎn)到固定的菜肴,可以直接通過輸入菜名拼音首字母,即可獲取菜肴名。全部點(diǎn)完按完成鍵,上方的中文液晶屏將清晰顯示謝謝惠顧和請(qǐng)輸入桌號(hào)等信息,顧客只需控制按鍵就可以點(diǎn)到自己所需的菜肴,既方便,乂省事。點(diǎn)菜完成
10、后,服務(wù)生可以通過電子點(diǎn)菜器上的半口傳輸點(diǎn)菜信息到總服務(wù)臺(tái)上的電腦中,電腦再對(duì)信息加以分類存儲(chǔ)、打印,這樣避免了傳統(tǒng)點(diǎn)菜的手寫誤差,也方便顧客結(jié)賬和餐廳管理。2硬件電路設(shè)計(jì)與計(jì)算2。1AT89c51單片機(jī)2。lo1描述AT89c51是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CM0S8位單片機(jī),片內(nèi)含4Kbytes的快速可擦寫的只讀程序存儲(chǔ)器(PEROM)和128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS51產(chǎn)品指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和flish存儲(chǔ)單元,功能強(qiáng)大AT89c51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)
11、用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。AT89c51提供以下標(biāo)準(zhǔn)功能:4K字節(jié)flish閃遞存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89c51可降至OHZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式.空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位.2。L2電路圖R2 n.7P3 O - n r腳功能說明:Vcc:電源電壓。GND:地.P0口:P0口是一組8位漏極開路
12、型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)位口。作為輸出口用時(shí).,每位能吸收電流的方式驅(qū)動(dòng)8個(gè)邏輯門電路,對(duì)端口寫“1”可作為高阻抗輸入端用。P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可做熟出口。做輸出口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(lil).資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫通過內(nèi)部地山拉電
13、阻把端口拉到高電平,此時(shí)可作為輸出口,作輸出口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(lil)oP3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路.對(duì)P3口寫入“1”時(shí),他們被內(nèi)部上拉電阻拉高并可作為輸出口。做輸出端時(shí).,被外部拉低的P3口將用上拉電阻輸出電流(lil)oP3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如下表:端口引腳第二功能P3c0rxd(串行輸入口)P3.1txd(串行輸出口)P3.2.into(外中斷0)P3.3,inti(外中斷1)P3c4to(定時(shí)/計(jì)數(shù)器0)
14、P3c5ti(定時(shí)/計(jì)數(shù)器DP3c6(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3c7'RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)RST:復(fù)位輸入.當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址所存允許)輸出脈沖用于所存地址的低8位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖.PSEN:程序存儲(chǔ)允許(¥SEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89c51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),
15、每個(gè)機(jī)器周期兩個(gè)TSE1有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,這兩次有效的TSEN信號(hào)不出現(xiàn)。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是;如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài).XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸出端。XTAL2:振蕩器反相放大器的輸出端。P89c51特殊功能寄存器。2.224C1024部分(I2C總線技術(shù))2.2.112c總線工作原理總線的構(gòu)成及信號(hào)類型:12c總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù).在CFU與被控IC
16、之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過程中,12c總線上并接的每一模塊電路既是主控器(或被控器),乂是發(fā)送器(或接收器),這取決于它所要完成的功能.CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠?,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對(duì)比度、充度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。12c總線在傳送數(shù)據(jù)過程中共有三種類型信號(hào),它們分別是:開始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)
17、。開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù).結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。這些信號(hào)中,起始信號(hào)是必需的,結(jié)束信號(hào)和應(yīng)答信號(hào),都可以不要。目前有很多半導(dǎo)體集成電路上都集成了12c接口。帶有12c接口的單片機(jī)有:CYGNAL的C8051F0XX系列,PHILIPS
18、P87LPC7XX系列,MICROCHIP的PIC16c6XX系列等。很多外圍器件如存儲(chǔ)器、監(jiān)控芯片等也提供12c接口。2.2o212c總線操作12c規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)??偩€必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件.SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件.控制字節(jié):在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識(shí)別符(不同的芯片類型
19、有不同的定義,EEPROM一般應(yīng)為1010),接著三位為片選,最后一位為讀寫位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫操作。寫操作:寫操作分為字節(jié)寫和頁(yè)面寫兩種操作,對(duì)于頁(yè)面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同。讀操作:讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。圖4給出的是順序讀的時(shí)序圖.應(yīng)當(dāng)注意的是:最后一個(gè)讀操作的第9個(gè)時(shí)鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個(gè)周期間發(fā)出停止條件或者在第9個(gè)時(shí)鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件.2.2。 3主要功能在我這個(gè)作品中,由于單片機(jī)本身存儲(chǔ)控件很小,所以24cl024芯片的主要作為一塊存儲(chǔ)芯片使用的。作用就是存儲(chǔ)菜譜信息,用
20、戶操作按鍵選擇在液晶屏上顯示的菜名信息全部是通過讀取24cl024芯片中的菜譜數(shù)據(jù)。同時(shí)24cl024芯片還要實(shí)時(shí)接收Csharp軟件對(duì)菜譜的更新.2o312864液晶屏和鍵盤矩陣2.3。 112864液晶屏簡(jiǎn)介帶中文字庫(kù)的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為12864,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示84行1616點(diǎn)陣的漢字.也可完成圖形顯示。低電壓低功耗是其乂一顯著特
21、點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊.基本特性:1 .低電源電壓(VDD:+3o0+5.5V2 .顯示分辨率:128X64點(diǎn)3 .內(nèi)置漢字字庫(kù),提供8192個(gè)16X16點(diǎn)陣漢字(簡(jiǎn)繁體可選)4o內(nèi)置128個(gè)16X8點(diǎn)陣字符5。2MHz時(shí)鐘頻率6.顯示方式:STN、半透、正顯7o驅(qū)動(dòng)方式:1/32DUTY,1/5BIAS7o視角方向:6點(diǎn)8o背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/5-1/109o通訊方式:串行、并口可選10o內(nèi)置DC-DC轉(zhuǎn)換電路,無需外加負(fù)壓Ho無需
22、片選信號(hào),簡(jiǎn)化軟件設(shè)計(jì)12.工作溫度:0-+55C,存儲(chǔ)溫度:-20一+60C 忙標(biāo)志:BFBF標(biāo)志提供內(nèi)部工作情況。BF二1表示模塊在進(jìn)行內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù).BF=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。利用STATUSRD指令,可以將BF讀到DB7總線,從而檢驗(yàn)?zāi)K之工作狀態(tài). 字型產(chǎn)生ROM(CGROM)字型產(chǎn)生ROM(CGROM)提供8192個(gè)此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制。DFF二1為開顯示(DISPLAYON),DDRAM的內(nèi)容就顯示在屏幕上,DFF二。為關(guān)顯示(DISPLAYOFF)oDFF的狀態(tài)是指令DISPLAYON/OFF和RST信號(hào)控制
23、的。 顯示數(shù)據(jù)RAM(DDRAM)模塊內(nèi)部顯示數(shù)據(jù)RAM提供64義2個(gè)位元組的空間,最多可控制4行16字(64個(gè)字)的中文字型顯示,當(dāng)寫入顯示數(shù)據(jù)RAM時(shí),可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數(shù)字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個(gè))將選擇CGRAM的自定義字型,02H7FH的編碼中將選擇半角英數(shù)字的字型,至于A1以上的編碼將自動(dòng)的結(jié)合下一個(gè)位元組,組成兩個(gè)位元組的編碼形成中文字型的編碼BIG5(A140
24、D75F),GB(A1A0F7FFH). 字型產(chǎn)生RAM(CGRAM)字型產(chǎn)生RAM提供圖象定義(造字)功能,可以提供四組16X16點(diǎn)的自定義圖象空間,使用者可以將內(nèi)部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。 地址計(jì)數(shù)器AC地址計(jì)數(shù)器是用來貯存DDRAM/CGRAM之一的地址,它可由設(shè)定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時(shí),地址計(jì)數(shù)器的值就會(huì)自動(dòng)加一,當(dāng)RS為“0”時(shí)而R/W為“1”時(shí),地址計(jì)數(shù)器的值會(huì)被讀取至UDB6DBO中. 光標(biāo)/閃爍控制電路此模塊提供硬體光標(biāo)及閃爍控制電路,由地址計(jì)數(shù)器的值來指
25、定DDRAM中的光標(biāo)或閃爍位置2. 3.2液晶部分主要功能液晶部分主要就是顯示功能。將按鍵對(duì)菜譜的操作顯示出來,同時(shí)為了方便客人點(diǎn)菜,還要將客人點(diǎn)菜信息和消費(fèi)情況顯示出來供客人預(yù)覽,等客人確定后在傳送到Csharp軟件中去。2 .3.3鍵盤部分主要功能十二個(gè)按鍵式鍵盤矩陣,是讓顧客可以方便選擇菜名,同時(shí)可以輸入桌號(hào)。一個(gè)上翻和一個(gè)下翻鍵方便顧客瀏覽更多的菜系,一個(gè)確定鍵確認(rèn)顧客點(diǎn)的菜肴,還有一個(gè)按鍵是選擇.顧客可以通過字母按鍵對(duì)菜單進(jìn)行分類,找出符合自己口味的菜品類。若顧客還想點(diǎn)到固定的菜肴,可以直接通過輸入菜名拼音首字母,即可獲取菜肴名。12864液晶屏主要是顯示作用,把在鍵盤上的種種操作都
26、通過液晶屏顯示出來,方便顧客使用。3 .系統(tǒng)設(shè)計(jì)流程3.1 硬件部分3。1。1硬件部分功能簡(jiǎn)介單片機(jī)硬件部分包括:鍵盤矩陣,12863液晶屏,24cl024存儲(chǔ)芯片,AT89c51芯片.硬件功能:硬件部分包括電子點(diǎn)菜電路板和一個(gè)4*4的鍵盤矩陣,通過控制電路板上的按鍵通過單片機(jī)使液晶顯示自己需要的信息,并保存在單片機(jī)中,還有MAX232串口驅(qū)動(dòng)芯片用來驅(qū)動(dòng)吊口,然后就可以通過串口輸入或輸出信息,并保存到C#數(shù)據(jù)庫(kù)中去。硬件部分還包含包括電子點(diǎn)菜器電路板的設(shè)計(jì)及焊接,24C1024芯片,AT89c51芯片,液晶,串口等部分。其中液晶顯示上我選擇的是分部顯示的原則,就是將我想顯示的信息預(yù)先存儲(chǔ)在我
27、選好的位置上,不同按鍵按下觸發(fā)不同內(nèi)容顯示在液晶上,還有個(gè)難點(diǎn)就是要將使用者所選擇的菜記錄下來,我原本的設(shè)想是想把所選擇的菜名和菜價(jià)用一個(gè)數(shù)組了,可8052的存儲(chǔ)空間太小如果點(diǎn)的太多就根本無法存儲(chǔ).于是我想到了另一種辦法,就是記錄菜名號(hào)的方法,我在C#發(fā)送菜譜時(shí)給每一道菜加上一個(gè)唯一固定編號(hào)一起放送到24C1024中去,當(dāng)客人點(diǎn)菜時(shí)我就用一個(gè)數(shù)組來存儲(chǔ)被點(diǎn)菜的編號(hào),這樣就大大降低了對(duì)存儲(chǔ)空間的使用也提高了數(shù)據(jù)傳輸?shù)陌踩?。在一個(gè)就是對(duì)菜的搜索問題,客人有時(shí)想點(diǎn)自己喜歡的菜,在點(diǎn)菜器中翻找太麻煩,他可以自己輸入菜的索引從而尋找自己想要點(diǎn)的菜,做搜索在C#上很好做但在單片機(jī)上時(shí)很難做到的,因?yàn)閱纹?/p>
28、機(jī)空間小,沒有現(xiàn)成的控件使用,也不能針對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。我用的辦法是將顧客所按按鍵記錄下來當(dāng)顧客點(diǎn)擊查詢時(shí)將得到按鍵索引和24C1024固定位置的到的菜名索引進(jìn)行對(duì)比,如果相同就從24C1024的相應(yīng)位置取出菜名和菜價(jià)顯示在液晶上,這就要求數(shù)據(jù)存放要做嚴(yán)格要求。再就是每次點(diǎn)完都要記錄菜價(jià),這就要求再點(diǎn)菜我確定是必須同時(shí)記錄所選菜在24C13 / 41資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除1024中存儲(chǔ)的位置,再在這個(gè)基礎(chǔ)上查詢菜價(jià)進(jìn)行記錄保存,以便傳輸?shù)紺#進(jìn)行保存和查詢。3. Io2硬件電路圖通過串口與電腦相連相互傳送數(shù)據(jù)。單片機(jī)通過P0口控制液晶顯示,通過PI口控制24c
29、l024芯片存儲(chǔ)數(shù)據(jù),通過串口將菜譜數(shù)據(jù)寫入到24cl024芯片中去,同時(shí)調(diào)用24cl024芯片數(shù)據(jù)顯示到液晶屏中。按鍵部分圖略。按鍵選擇菜名,客人最后確認(rèn)后通過串口回傳到PC中。3o2軟件部分3。2.1軟件功能簡(jiǎn)介Csharp軟件程序后臺(tái)軟件部分:C#用于后臺(tái)程序,酒店內(nèi)部添加刪除菜名及菜名索引,并將顧客所點(diǎn)菜顯示在C#上;數(shù)據(jù)庫(kù)應(yīng)用與保存菜譜表,桌號(hào)消費(fèi)統(tǒng)計(jì)(桌號(hào),總消費(fèi),時(shí)間),查詢視圖。軟件功能:包括c,c#,數(shù)據(jù)庫(kù)三大部分.其中C用于收集菜譜和存儲(chǔ),用于顧客查找,瀏覽菜譜并對(duì)菜譜進(jìn)行選擇,查看和統(tǒng)計(jì)消費(fèi)總價(jià),并且回傳顧客消費(fèi)信息;C#用于后臺(tái)程序,酒店內(nèi)部添加刪除菜名及菜名索引,并將
30、顧客所點(diǎn)菜顯示在C#上;數(shù)據(jù)庫(kù)應(yīng)用與保存菜譜表,桌號(hào)消費(fèi)統(tǒng)計(jì)(桌號(hào),總消費(fèi),時(shí)間),查詢視圖.在就是串口的數(shù)據(jù)收發(fā),由于我在顯示和搜索時(shí)對(duì)數(shù)據(jù)的格式有很高要求,所以在用串口傳輸數(shù)據(jù)時(shí)在傳輸前必須要對(duì)數(shù)據(jù)進(jìn)行嚴(yán)格的格式轉(zhuǎn)換。在接受數(shù)據(jù)時(shí),因?yàn)榻邮艿臄?shù)據(jù)有很多種,所以在接受時(shí)要對(duì)數(shù)據(jù)進(jìn)行判斷然后再進(jìn)行分類存儲(chǔ)。3.2.2軟件流程3。2o 3軟件主要代碼Csharp后臺(tái)控制部分:菜譜管理:namespace點(diǎn)菜publicpartialclass菜譜管理_當(dāng)前時(shí)間:Form(public菜譜管理當(dāng)前時(shí)間0(InitializeComponent();)privatevoidForml_Load(ob
31、jectsender,EventArgse)(Refresh_Phone_List(”);)voidRefresh_Phone_List(stringliereConditon)(listViewl.Items.Clear();dbClassldbl=newdbClassl();stringscond=nselect*from所有菜名信息視圖”;if(WhereConditon!=”“)scond+二"where"+WhereConditon+”"DataTabledt=dbl.GetRecords(scond);向列表視圖中添加所有的相關(guān)號(hào)碼記錄for(inti
32、=0:i(dt.Rows.Count;i+)(stringsubitem=dtoRowsi”菜名”。ToString(),dt.RowsEi”類型”.ToString(),dt.Rowsi"時(shí)價(jià)”.ToString(),);listViewl.ItemsoAdd(newListViewItem(subitem);“stringstr=vprovider=microsoft.jetooledbo4,0;datasource二菜譜管理mdb”;privatevoidbuttonl_添力口_Click(objectsender,EventArgse)33 / 41dbClassldbl=n
33、ewdbClassl();菜譜修改newfornFnew菜譜修改();if(newformoShowDialog()=DialogResultoOK)(01eDbConnectioncon=new01eDbConnection(str);01eDbCommandcmd=con.CreateCommand();cmdo(0111111&11(1丁6*1=":111561'1:11110菜譜(分類號(hào),菜名,時(shí)價(jià),菜名縮寫)values(>+newform.cmh+v','"+newform<>caiming+','
34、;,z+newfornioshijia+,+newform.caimmgsuoxie+);con.Open();cmdoExecuteNonQuery();con.Close();Forml_Load(sender,e);)privatevoidbutton|_Click(objectsender,EventArgse)(for(inti=listViewloSelectedltemsoCount-1;i)=0:i)(OleDbConnectioncon=new01eDbConnection(str);01eDbCommandcmd=con<>CreateCommand();cmd
35、.CommandText二deletefrom菜譜where菜名=,+listViewl.Selectedltemsli.Text+"';con。Open();cmdoExecuteNonQuery();con.Close();listViewloItems.Clear();Forml_Load(sender,e);privatevoidbuttonl_Click(objectsender,EventArgse)(if(listViewloSelectedltems.Count=l)(菜譜修改cfornFnew菜譜修改();cformocaiming=listViewl.Se
36、lectedlterns0.SubItems0oText;cformoshijia=Convert.Tolntl6(listViewloSelectedItemsO.SubItems2.Text);if(cform.ShowDialog()=DialogResult.OK)(OleDbConnectioncon=new01eDbConnection(str);01eDbCommandcmd=con.CreateCommand();cmd.CommandText=Mupdate菜譜setl時(shí)價(jià)二'+cform.shijia+'where菜名=,z/+listViewl.Selec
37、tedltems0。SubIterns0.Text+“'";cono0pen();cmd.ExecuteNonQuery();con。Close();listViewloItems.Clear();Forml-Load(sender,e);)privatevoidtextBoxl_TextChanged(objectsender,EventArgse)(Refresh_Phone_List(n菜名縮寫like'%v+textBoxl.TextoTrim()+"%')privatevoidForml_FormClosing(objectsender,F
38、ormClosingEventArgse)(if(MessageBoXoShow("你真的要退出?,確認(rèn),MessageBoxButtonsoOKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2)=DialogResultoCancel)(e<>Cancel=true;)privatevoidbuttonJL點(diǎn)菜器寫入菜譜_Click(objectsender,EventArgse)serialPortl.Open();啟用發(fā)送數(shù)據(jù)表記錄到串口的函數(shù)。Write_Menu_T0_IIC_24C10
39、24();/serialPortloClose();)boolSP_Ready=false:publicintj=0;intcount=0;voidWrite_Menu_T0_IIC_24C1024()(菜譜傳輸pass=new菜譜傳輸();pass.Show();intj;/I01eDbConnectionconn=new01eDbConnection(z,provider=microsoft.jet.oledb.4o0;datasource=菜譜管理.mdb");conn.Open();01eDbDataAdapterodapr=new01eDbDataAdapter("
40、;select火from菜譜orderby編號(hào)”,conn);/3DataTab1edt=newDataTab1e();odapr.Fill(dt);/4訪問所有表行,并發(fā)送串口.byteBuffer=newbyte24;for(inti=0;i<dtoRows<>Count;i+)(j=。;序號(hào),分類號(hào),名稱,價(jià)格,簡(jiǎn)記4-2-10-4-5byte匚fl二Encoding。DefaultoGetBytes(dt.RowsEi”編號(hào)”.ToString();byteLf3=EncodingoDefault.GetBytes(dtoRowsi菜名”ToString();byte
41、f4=EncodingoDefault.GetBytes(dtoRowsi“時(shí)價(jià)”.ToString();bytef5=Encoding.DefaultoGetBytes(dtoRowsi“菜名縮寫"。ToString();passocm=dt.RowsEi”菜名。ToString();將字節(jié)緩沖全部清為空格.for(j=0;j<24;j+)Bufferj=0x20;for(j=0;j(fl.Length;j+)Bufferj=flj;for(j=0;j(f3.Length;j+)Bufferj+4=f3j;for(j=0:j(f4.Length:j+)Bufferj+14=f
42、4j;for(j=0;j<f5oLength;j+)Bufferj+18=f5j;Buffer23=(byte)('r);將所有字段內(nèi)容分解到字節(jié)緩沖后,發(fā)送Buffer緩沖.serialPortl.Write(Buffer,0,BufferoLength);SP_Ready=false;count+=l;如串口未就緒則等待.。OO.OO.O.Application.DoEvents();while(!SP_Ready);)if(count=dtoRows.Count)(passocn=count;serialPortl.WriteLine(n-");pass,fnr”
43、完成發(fā)送”;count=O:)privatevoidserialPortl_DataReceived(objectsender,System.10.PortSoSerialDataReceivedEventArgse)(接受顧客消費(fèi)信息guest=new接受顧客消費(fèi)信息();已點(diǎn)菜diancai=new已點(diǎn)菜();stringrs=serialPortloReadLine();stringaccept=rs;stringERecv_MCU_Menu_Info=acceptoSplit(newchar'I');if(rs="Ready!”)(SP_Ready=true;
44、)if(Recv_MCU_Menu_Info0=a)(guest.gu_infor=rs;serialPortl.Close();guestoShowDialog();)if(Recv_MCU_Menu_Info0=b)diancaioCNOSET=rs;serialPortloClose();diancai.ShowDialog();privatevoicQ|ToolStripMenuIteni_Click(objectsender,EventArgse)(buttonl_添加_Click(sender,e);)privatevoid®WrToolStripMenuItem_Cli
45、ck(objectsender,EventArgse)(buttonl_Click(sender,e);)privatevoid冊(cè)ij除ToolStripMenuItem_Click(objectsender,EventArgse)(button.刪除_Click(sender,e);)privatevoid向點(diǎn)菜器寫入菜譜ToolStripMenuItem_Click(objectsender,EventArgse)button.向點(diǎn)菜器寫入菜譜_Click(sender,e);)privatevoid數(shù)據(jù)備份ToolStripMenuItem_Click(objectsender,Even
46、tArgse)(,備份compress=new備份();compress.ShowDialog();)privatevoid從點(diǎn)菜器接受菜單ToolStripMenuItem_Click(objectsender,EventArgse)(if(!serialPortloIsOpen)serialPortloOpen();serialPortl.WriteLine("+");)privatevoidbutton_向從點(diǎn)菜器接受菜單_Click(objectsender,EventArgse)(向從點(diǎn)菜器接受菜單ToolStripMenuItem_Click(sender,e)
47、;privatevoid接受點(diǎn)菜菜譜ToolStripMenuItem_Click(objectsender,EventArgse)(serialPortl.Open();serialPortloWriteLine("*");)privatevoidbutton2_Click(objectsender,EventArgse)(接受點(diǎn)菜菜譜ToolStripMenuItem_Click(sender,e);)數(shù)據(jù)傳輸:namespace點(diǎn)菜publicpartialclass菜譜傳輸:Form(public菜譜傳輸()(InitializeComponent();)publi
48、cintcn=O;publicstringcm,fm;privatevoid菜譜傳輸_Load(objectsender,EventArgse)()intt=0;privatevoidtimerl_Tick(objectsender,EventArgse)(if(cn=0)(t+=29;if(t)100)t=0;progressBarl.Value=t;textBox_菜名。Text=cm;else(progressBarl.Visible=false;timerloEnabled=false;timer2.Enabled=true;)intx=0;privatevoidtimer2_Tick
49、(objectsender,EventArgse)(x+:textBox_菜名.Text=fm;if(x>2)(timer2.Enabled=false;this.Close();)c語(yǔ)言硬件控制部分:/*>k大*火火火*火*火*/*/*上下翻動(dòng)菜名文/*/*/*火*火火火*水*水大*火*大*大*大火火*/voidLCD_up_down()(ucharj,1=一1;if(KeyNo=9)(Pl=0x0F;while(Pl!=0x0F);g一;l=f;if(f=0)g二2;LCD_Col42;else)if(KeyNo=10)(Pl=OxOF;while(Pl!=OxOF);x+;g
50、+;l=f;if(f=2)(g二0:LCD_Col+;f二0;LCD=0;elsef+;)if(1!=1)(1cd_wcmd(up_down1);for(j=0;j<2;j+)lcd_wdat(DIS6j);1=1;lcd_wcmd(up_downf);for(j=0:j(2:j+)lcd_wdat(DIS5j);)/*水,k*火火*火火*火*火火火*火*按鍵控制并顯示按鍵文*火*大火*火*火*/voidKey_col_KeyNo()(if(KeyNo=9IKeyNo=10)LCD_up_down();else(如果是新按鍵if(Pre_Keyo!=Keyo)(TRO=1;Pre_Key
51、No=KeyNo;Inner_idx=O:t+;s+;否則按下的是同位按鍵else(短暫時(shí)間范圍內(nèi)的重復(fù)按鍵if(tSpan<=40)Inner_idx=(Inner_idx+1)%strlen(KeyPad_CharsKeyXo);)else同一按鍵間隔超時(shí)(Timeout)(Inner_idx=O;t+;s+;tSpan=0;if(s)4)(for(i=0;i<5;i+)data_lcdi=DIS6l;s二一1;delay(20);data_lcds=KeyPad_CharsKeyNoInnejidx;記錄按鍵if(xl=0)lcd_wcmd(0x98);for(i=0;i&l
52、t;5;i+)lcd_wdat(data_lcdi_);xl=0;)else(lcd_wcmd(0x8e);for(i=0;i<5;i+)lcd_wdat(data_lcdi);)從24cl024接收多字節(jié)/ucharRecString(ucharSlave,ulongMem_address,uchar*BuffenucharN)(uchari,page;讀取時(shí)slave設(shè)為Oxal,寫時(shí)為OxaOuintaddrl6;一片24C1024的空間為128K,地址位共17位,其最高位對(duì)應(yīng)設(shè)備地址中的P0位page=(uchar)(Mem_address»16)&0x0000
53、0001);page<<=1;在設(shè)備地址后是16位的字地址addrl6=(uint)(Mem_address&0x0000FFFF);Start();發(fā)送器件地址(含頁(yè)地址P0位)if(!SendByte(Slavelpage)return(0);先發(fā)高字節(jié),后發(fā)低字節(jié)if(!SendByte(uchar)(addrl6>>8)return(0);if(!SendByte(uchar)(addrl6)return(0);Start();器件地址(讀)if(!SendByte(SlaveI0x01)return(0);for(i=0;i<N1;i+)(接收數(shù)
54、據(jù)Bufferi=RecByte();發(fā)送應(yīng)答位ACK();)接收最后一位BufferNl=RecByte();發(fā)送非應(yīng)答NO_ACK();Stop();)/向24cl024寫多字節(jié)/ucharWriteString(ucharSlave,ulongMeni_addressAichar*BiiffenucharN)uchari,page;讀取時(shí)slave設(shè)為Oxa1,寫時(shí)為OxaOuintaddrl6;一片24C1024的空間為128K,地址位共17位,其最高位對(duì)應(yīng)設(shè)備地址中的P0位page=(uchar)(Mem_address>>16)&0x00000001);page<<=1;在設(shè)備地址后是16位的字地址addrl6=(uint)(Mem_address&OxOOOOFFFF);Start();發(fā)送器件地址(含頁(yè)地址P0位)if(!SendByte(Sl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024桂林信息科技學(xué)院輔導(dǎo)員招聘筆試真題
- 翻譯(俄語(yǔ))崗位考試試卷及答案
- 2025年航空制造和材料專用設(shè)備項(xiàng)目合作計(jì)劃書
- 2025年聚烯烴類線纜項(xiàng)目建議書
- 2024年杭州市委黨校蕭山區(qū)分校招聘真題
- 2025年吉安縣農(nóng)業(yè)產(chǎn)業(yè)發(fā)展中心人員招聘筆試考試試題【答案】
- 消費(fèi)偏好變遷下的產(chǎn)品創(chuàng)新
- 湘藝版音樂一年級(jí)上冊(cè)牽牛花當(dāng)喇叭教案
- 2025年裝訂活動(dòng)及印刷用附件項(xiàng)目建議書
- 2025年電動(dòng)護(hù)理床合作協(xié)議書
- 如何做好一名合格醫(yī)生
- 大數(shù)據(jù)在橋梁結(jié)構(gòu)健康監(jiān)測(cè)中的應(yīng)用研究
- 福建漳州安然燃?xì)庥邢薰菊衅腹P試題庫(kù)2025
- 2025年天津市中考?xì)v史試卷(含答案)
- 2025年中國(guó)汽車檢測(cè)行業(yè)市場(chǎng)調(diào)查研究及投資前景預(yù)測(cè)報(bào)告
- 關(guān)于社保培訓(xùn)課件
- 2025秋初升高銜接新高一物理模擬卷-分班模擬卷(五)
- 呆滯料獎(jiǎng)懲管理制度
- 充電站可行性研究報(bào)告
- 公司安全事故隱患內(nèi)部舉報(bào)、報(bào)告獎(jiǎng)勵(lì)制度
- 《光伏發(fā)電工程預(yù)可行性研究報(bào)告編制規(guī)程》(NB/T32044-2018)中文版
評(píng)論
0/150
提交評(píng)論