freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)控制的自助點(diǎn)菜終端設(shè)計(jì)畢業(yè)論文-文庫吧資料

2025-06-25 12:49本頁面
  

【正文】 就根據(jù)提示找出其中的錯(cuò)誤,以便更好的改善與完善程序,最終保證能夠正確地實(shí)現(xiàn)系統(tǒng)的軟件功能。5. 然后就可以在創(chuàng)建的文件中編寫程序了。2. 打開KeilC工具,新建個(gè)項(xiàng)目工程,放在上一步新建的文件夾中。 } } } 程序整體流程圖圖34 程序整體流程圖 本章小結(jié)在上一章對系統(tǒng)硬件電路設(shè)計(jì)做了詳細(xì)介紹的基礎(chǔ)上,本章再詳細(xì)地介紹了系統(tǒng)軟件的編程方法與原則,并重點(diǎn)介紹了各個(gè)模塊的軟件設(shè)計(jì)架構(gòu)以及程序功能的實(shí)現(xiàn)方法。 } send_char_(0x0A)。 continue。j16。i7。 delay(100)。 send_string_(str2,10)。 send_char_(0x0A)。 send_char_(t)。//此處有刪除,詳見附錄中的完整程序 send_string_(str1,8)。/********************************************************//*向服務(wù)器發(fā)送結(jié)果 *//* *//********************************************************/void send_result(){ uchar *str1=菜單號:。使用安卓系統(tǒng)手機(jī)并下載網(wǎng)絡(luò)調(diào)試助手(安卓手機(jī)版)軟件,給wifi模塊插上電源,手機(jī)打開WIFI無線搜索功能,查找并連接名為USRWIFI232T的無線網(wǎng)絡(luò),在手機(jī)上啟動網(wǎng)絡(luò)調(diào)試助手軟件,切換到tcp client 界面,點(diǎn)擊增加圖標(biāo),(與wifi設(shè)置的IP地址與端口號保持一致)的TCP網(wǎng)絡(luò)連接,創(chuàng)建連接完成后,就可以搭建起一個(gè)與WIFI模塊的TCP網(wǎng)絡(luò)連接。 } while(n strlen)。 do { send_char_(*(str + n))。 ES=1。 SBUF=ch。 程序流程圖如下:圖33 串口程序流程圖程序及適當(dāng)注釋如下:/********************************************************//*串口 *//********************************************************///向串口發(fā)送一個(gè)字符 void send_char_(uchar ch) { ES=0。所以只需要完成串口程序設(shè)計(jì),使其信息可以通訊就可以了。 //顯示字符 } }}void display2() //第二頁顯示{ //和上一個(gè)函數(shù)差不多} 串口與wifi程序設(shè)計(jì) 本次設(shè)計(jì)選用的是wifi模塊與串口對接,二者之間可以直接進(jìn)行數(shù)據(jù)交換。 continue。j16。i++) { lcd_pos(i+1,0)。 for(i=0。流程圖如下:圖32 LCD液晶屏顯示操作流程圖主要程序及適當(dāng)注釋如下: //先定義個(gè)要顯示的信息的二維字符數(shù)組: uchar code dis[8][16] = {{魚香肉絲18元 0份}, {麻婆豆腐10元 0份}, {番茄雞蛋12元 0份}, {紅燒雞塊20元 0份}, {糖醋排骨28元 0份}, {龍蝦 40元 0份}, {白米飯 1元 0份}, {}}。由硬件設(shè)計(jì)可知,菜單信息的信號由單片機(jī)的p2口發(fā)出,p2為LCD12864顯示屏的寫指令和數(shù)據(jù)的端口。i++) { if(a[i]!=0x30) //只有有訂餐信息,k5鍵功能才可實(shí)現(xiàn) { ClearOrder()。 for(i=0。 //發(fā)送訂餐信息,此時(shí)num不為0 //此處有刪除,詳見附錄中的完整程序 } } } } if(k5==0) //按下k5鍵清除終端的訂餐信息 { delay(5)。i7。 if(k4==0) { while(!k4)。 //菜的份數(shù) while(!k3)。 } } if(num=1) { //此處有刪除,詳見附錄中的完整程序 } } } if(num)//保證在已經(jīng)按下選擇鍵k1/k2下,k3鍵有效 { if(k3==0) //定制所選菜的份數(shù) { delay(5)。 } else { display()。 if(num1) { num。 } } if(k2==0) //實(shí)現(xiàn)光標(biāo)向上移動的功能 { delay(5)。 //回到第一頁 num=1。 //跳到第二頁 lcd_pos(num4,6)。 //某行第7個(gè)位置 lcd_wcmd(0x0f)。 //記錄位置信息 while(!k1)。 if(k1==0) //實(shí)現(xiàn)光標(biāo)向下移動的功能 { delay(5)。兩種方法各有優(yōu)勢,適用場合不同,本設(shè)計(jì)采用第二種方法,因?yàn)樵谶@軟件去抖動更簡單方便。當(dāng)客戶按下k4鍵時(shí),系統(tǒng)就會將客戶的訂餐信息發(fā)送出去(即信息提交),以實(shí)現(xiàn)確認(rèn)訂餐信息。由于硬件設(shè)計(jì)上本人將4個(gè)獨(dú)立按鍵分別與單片機(jī)的p3^2,p3^3,p3^4和p3^5端口相連,所以在程序編寫上要不斷掃描P3口狀態(tài)以檢測客戶所選的信息,當(dāng)客戶選擇按下不同的按鍵時(shí),就直接實(shí)現(xiàn)所需要的功能(下一個(gè),上一個(gè),份數(shù),確認(rèn)),具體為:當(dāng)客戶按下k1鍵時(shí),光標(biāo)向下移動;當(dāng)客戶按下k2鍵時(shí),光標(biāo)就向上移動;如此通過k1鍵和k2鍵控制光標(biāo)的上下移動來實(shí)現(xiàn)選擇菜的種類的功能。本章的軟件設(shè)計(jì)以系統(tǒng)的硬件電路設(shè)計(jì)為基礎(chǔ),再根據(jù)所要實(shí)現(xiàn)的功能,采用程序模塊化設(shè)計(jì),確保了系統(tǒng)功能的實(shí)現(xiàn)。此外,應(yīng)該對經(jīng)過調(diào)試修改后的程序進(jìn)行規(guī)范化處理,中間應(yīng)該添加適當(dāng)?shù)拇a注釋,以便于日后的討論和參考; 程序模塊化的設(shè)計(jì)設(shè)計(jì)程序時(shí),可以把一個(gè)較為復(fù)雜且長的代碼程序分解為若干個(gè)功能相對獨(dú)立的但是代碼長度相對簡短的程序模塊,然后再對每個(gè)程序模塊逐個(gè)設(shè)計(jì),這種方法便是程序的模塊化設(shè)計(jì)。在本系統(tǒng)設(shè)計(jì)中,軟件設(shè)計(jì)應(yīng)該力求做到如下幾點(diǎn)內(nèi)容:1)軟件設(shè)計(jì)盡可能的合理些,構(gòu)架要盡可能的清楚、簡潔些。 考慮到C語言在程序編寫上較為簡單而且大學(xué)里我接觸更多的是C語言,使用最多的也是C語言,對C語言的編寫更為熟悉,同時(shí),也對匯編語言與C語言兩者進(jìn)行了比較,最終本程序采用了C語言進(jìn)行編寫。所以只需經(jīng)過一定的修改就基本可以應(yīng)用于不同類型的單片機(jī)上,所以它的可移植性很好。單片機(jī)編程程序使用C語言的優(yōu)點(diǎn)有:,只需做到對單片機(jī)存儲器等硬件結(jié)構(gòu)有一個(gè)初步的了解就可以了。但是,匯編語言同時(shí)也存在著難以記憶和使用的缺點(diǎn),特別是程序設(shè)計(jì)的技巧性很高,編程難度較大,而且匯編語言缺乏通用性,程序不能移植。匯編語言在單片機(jī)編程中有著廣泛的應(yīng)用,要說匯編語言最大的優(yōu)點(diǎn)其實(shí)就是它將助記符與機(jī)器指令進(jìn)行一一對應(yīng),所以其編寫的程序具備占用的內(nèi)存空間小,運(yùn)行速度快以及程序效率高等優(yōu)點(diǎn)。本章將通過軟件設(shè)計(jì)的方法進(jìn)行詳細(xì)地介紹系統(tǒng)各個(gè)模塊需要具體完成什么樣的功能以及如何完成這些功能。最后,自助訂餐終端系統(tǒng)的整體電路圖請見附錄二。這種將系統(tǒng)分為多個(gè)模塊的設(shè)計(jì)思路將為后面相應(yīng)的軟件設(shè)計(jì)提供不少的便利。在這些一切搞定之后,當(dāng)單片機(jī)的串口發(fā)送訂餐信息時(shí),手機(jī)就會接收到訂餐信息。本設(shè)計(jì)主要針對的是訂餐終端系統(tǒng)的設(shè)計(jì),服務(wù)器模塊在本設(shè)計(jì)中只是做一個(gè)接收測試,驗(yàn)證終端信息是否可以通過網(wǎng)絡(luò)發(fā)送并且發(fā)送的信息是否與客戶訂餐信息一致。如圖設(shè)置好后,提交即可。在Server模式下,若是在超時(shí)時(shí)間內(nèi)沒有數(shù)據(jù)的傳輸,這樣就會導(dǎo)致連接斷開??梢圆捎胻cp或者udp協(xié)議,這里選擇tcp協(xié)議。在Client網(wǎng)絡(luò) 模式下就是指遠(yuǎn)端的端口號,而在Server網(wǎng)絡(luò)模式下則是指本地的端口號。 。可以選擇Client、Server以及none,這里選擇Server。這里要與單片機(jī)的串口配置一致,因此為“9600,8,n,1”。Serial Configure:即為串口設(shè)置。具體設(shè)置如下:給wifi模塊插上電源,在電腦上搜索名為USRWIFI232T的無線網(wǎng)絡(luò)并點(diǎn)擊連接,在連接好后,打開瀏覽器輸入,就可以進(jìn)入wifi設(shè)置的網(wǎng)頁,登錄時(shí)默認(rèn)的用戶名與密碼都是 admin。然后打開瀏覽器輸入 ,這樣就可以進(jìn)入配置頁面。方法便是先給模塊插上5V的電源,在等待大約30 秒后,按下模塊上的任意按鍵6秒左右,系統(tǒng)就可以自啟東。WIFI 支持所有的已知的加密方法。本次設(shè)計(jì)就是使用串口轉(zhuǎn) WIFI AP模式,如下圖所示:圖29 串口轉(zhuǎn)wifi ap 模式設(shè)置成該模式,WIFI 就工作在 AP 模式下。通過使用HLKRM04 芯片模塊,串口設(shè)備可以在不更改任何配置的前提下,就能夠通過網(wǎng)絡(luò)傳輸數(shù)據(jù)。這個(gè)模塊屬于嵌入式類的產(chǎn)品,可以支持通用的串行接口并且也符合網(wǎng)絡(luò)標(biāo)準(zhǔn)。因此當(dāng)按鍵按下去時(shí),對應(yīng)的單片機(jī)的I/O口就變?yōu)榈碗娖?,然后單片機(jī)就執(zhí)行相應(yīng)的操作。圖27 按鍵電路連線如圖中所示,所有按鍵的一端接地,另一端與單片機(jī)的P3口相連。圖26 液晶屏管腳電路連線4個(gè)獨(dú)立按鍵k1,k2,k3,k4,k5分別與單片機(jī)STC89C52的p3^5,p3^4,p3^3,p3^2以及p3^6端口相連。LCD_data與單片機(jī)P2口相連。圖中10K的滑動變阻器的作用便是通過改變電阻值大小調(diào)節(jié)液晶顯示屏的背景亮度。清除顯示0000000001 清除RAM中的緩存數(shù)據(jù),地址回到開頭顯示狀態(tài)開/關(guān)0000001DCB 當(dāng)D為1時(shí): 開啟整體顯示 當(dāng)C為1時(shí): 打開游標(biāo)表24 基本指令指時(shí)序圖(8位并行連接)微處理器單元將數(shù)據(jù)寫到模塊中時(shí)序圖圖24 MPU寫數(shù)據(jù)到模塊中微處理器單元從模塊中讀取數(shù)據(jù)時(shí)序圖圖25 MPU讀取模塊中數(shù)據(jù)如下表為LCD12864液晶顯示模塊內(nèi)部的部分控制指令以及其功能注釋。當(dāng)BF為1時(shí),就說明LCD模塊此刻在進(jìn)行內(nèi)部操作,這個(gè)時(shí)候LCD模塊無法接收外部的指令和數(shù)據(jù)。忙標(biāo)志:BF在此液晶模塊中RAM的地址為80H~9FH。在同樣的功能的情況下,相比其他顯示模塊而言,LCD12864的硬件電路結(jié)構(gòu)更簡單,它的顯示程序更簡潔,而且此模塊的價(jià)格也更便宜,可以說它的性價(jià)比十分高。它可以顯示4行漢字,每行最多可以有8個(gè)。 顯示模塊LCD12864液晶屏是帶有中文字庫的128X64的點(diǎn)陣圖形液晶顯示模塊,它支持4位/8位并行、2線/3線串行等多種接口方式。本設(shè)計(jì)剛開始時(shí)就是使用12MHZ的晶振,結(jié)果在串口數(shù)據(jù)傳輸時(shí),總是產(chǎn)生一團(tuán)亂碼,數(shù)據(jù)通訊效果很差。這里要知道的就是晶振與瓷片電容都是沒有正負(fù)極之分的,另外要注意的地方就是這兩個(gè)電容相連的一端是必須要接地的。若是振蕩器無法起振,單片機(jī)系統(tǒng)就無法工作;若是振蕩器起振時(shí)間不規(guī)律標(biāo)準(zhǔn),那么當(dāng)單片機(jī)系統(tǒng)執(zhí)行程序時(shí),系統(tǒng)就會存在時(shí)間上的誤差,造成一些錯(cuò)誤。(1)復(fù)位電路 當(dāng)單片機(jī)程序運(yùn)行出問題的時(shí)候,給單片機(jī)一個(gè)復(fù)位信號,可以使程序從頭開始執(zhí)行;復(fù)位一般有兩種方式:一種為上電復(fù)位,當(dāng)單片機(jī)系統(tǒng)一上電時(shí),電容兩端電壓無法突變,于是給RST一個(gè)短時(shí)的高電平,RST即為低電平,程序就可以正常工作;另一種手動復(fù)位,通過按下按鍵,RST接通高電平使得系統(tǒng)復(fù)位,這時(shí)若是手按著按鍵一直不放開,RST就一直是高電平,系統(tǒng)就會一直復(fù)位,程序就不能正常運(yùn)行。本次設(shè)計(jì)選擇的核心單片機(jī)芯片是STC89C52,STC89C52RC是一種可編程的單片機(jī)芯片,其最高工作時(shí)鐘頻率可以達(dá)80MHz,片內(nèi)的Flash只讀程序存儲器有8K 大小,可以支持程序反復(fù)擦寫1000次。要想單片機(jī)進(jìn)行處理接收到的信息操作,就一定要有延時(shí)、計(jì)數(shù)、串口傳輸?shù)炔僮鳝h(huán)節(jié)。單片機(jī)是依靠程序來運(yùn)行的,并且可以程序修改,進(jìn)行多次燒寫。他們的作用就是產(chǎn)生+12v與12v這兩種電平,給RS232串口使用。再此值得注意的是串口通信中的所有信號都是使用232電平。一條是接地線,另外兩條為數(shù)據(jù)輸入/輸出線,這就表示可以將數(shù)據(jù)信息通過串口傳入單片機(jī)芯片處理,也可以將單片機(jī)芯片處理后的數(shù)據(jù)信息再通過串口傳輸出去。而要確保二者之間可以正確無誤的進(jìn)行數(shù)據(jù)交換,就一定要對串口的通信參數(shù)進(jìn)行初始設(shè)定(其中尤其要注意單片機(jī)的串口設(shè)置的參數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1