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

正文內(nèi)容

無線電子菜譜系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)附程畢業(yè)論文(參考版)

2025-06-25 22:42本頁面
  

【正文】 ) { //R_S_Byte(menu_data[j])。 while(menu_data[j]!=39。 i=0。) { menu_data[j]=39。 if(menu_data[j]==39。 if(nRF24L01_RxPacket(RxBuf)) { menu_data[j]=RxBuf[0]。 j=0。) R_S_Byte(test[i++])。 while(test[i]!=39。 init_NRF24L01()。 unsigned char send_data[100]。 unsigned char RxBuf[RX_PLOAD_WIDTH]。 }void main(void){ unsigned char i=0。 while( TI == 0 )。 TR1 = 1。 TL1 = TH1。 SCON = 0x50。 EA=1。}void InitInt0(void){ EX0=1。 PAGE=1。 goto end。 //清屏 DisInitMenu()。 GUI_sprintf_string(0,260,SENDING.....OK!,WHITE,PURPLE,1)。 NRF24L01_SingleSend(menu_data)。 menu_data[j]=39。 menu_data[j++]=39。 } if(j=2) { //發(fā)送數(shù)據(jù) VoicePlay(3)。 DisVice()。t chosen anything!,WHITE,PURPLE,1)。 GUI_box(0,276,239,319,PURPLE)。flag) { if(j==1)//未選擇則提示“You haven39。 } if((n==OK)amp。 if(j==MAX_NUM) j=MAX_NUM1。 GUI_sprintf_chartodec(0,0,menu_data[j],RED,WHITE,1)。flag) { VoicePlay(5)。(n=0x07)amp。 } if((n=0x01)amp。 //清屏 DisInitMenu()。flag) { VoicePlay(5)。 } if((n==CANCEL)amp。 DisMenu(PAGE)。 PAGE++。amp。 flag=0。 if(PAGE==0) PAGE=1。flag) { VoicePlay(5)。 if((n==LAST_PAGE)amp。 } }diancai:while(1) { n=EnsurePos(3,amp。 GUI_wrul(65,292,desk_num,3,RED,WHITE,1)。 desk_num。amp。 flag=0。 if(desk_num==51) desk_num=50。flag) { VoicePlay(5)。 } if((n==INPUT_ADD)amp。 flag=0。flag) { VoicePlay(5)。 } if((n==INPUT_NO)amp。 flag=0。 menu_data[0]=desk_num。 DisVice()。flag) { VoicePlay(5)。 if((n==INPUT_OK)amp。 } }input_desknum:while(1) { n=EnsurePos(2,amp。 flag=0。 DisEnsureDiancai(0)。 goto input_desknum。 DisInputDeskNum(1)。 if(n==DIANCAI_OK) { VoicePlay(1)。 while(1) { n=EnsurePos(1,amp。 VoicePlay(5)。 unsigned char desk_num=1。 char j=0。 unsigned char n=0。 GUI_wrlval(136,304,temp,4,2,BLUE,MAIN_BACKGROUND,1)。 InitInt0()。 //清屏 if(SdInit()) //SD卡初始化 DisInitMenu()。 ILI9325_Initial()。 Init_NRF24L01()。void InitInt0(void)。 data unsigned char send_flag=1。s39。c39。data char PAGE=1。圖53 上位機(jī)運(yùn)行界面接收端發(fā)送數(shù)據(jù)給上位機(jī)會(huì)引起串口的中斷,從而會(huì)進(jìn)入函數(shù)void CWirelessMenuDlg::OnOnCommMsm1() 內(nèi)進(jìn)行數(shù)據(jù)處理,由于一些未知名的原因,有時(shí)將數(shù)據(jù)發(fā)送給上位機(jī),而從緩沖區(qū)不能完整的讀出發(fā)送的數(shù)據(jù),有時(shí)又會(huì)將發(fā)送的數(shù)據(jù)分成好幾個(gè)片段讀出,不能一次性讀出,例如發(fā)送“1a2a3a5a8a10a”,有時(shí)會(huì)連續(xù)兩次進(jìn)入OnOnCommMsm1()函數(shù)內(nèi)部,利用MessageBox彈窗功能觀察到會(huì)連續(xù)彈出“1a2a3a”、“5a8a10a”,在將程序改變之后,只能減少這種情況的發(fā)生,卻不能完全抑制,一旦發(fā)生這樣的錯(cuò)誤,程序不得不中止或產(chǎn)生錯(cuò)誤的賬單信息,這也是我后來尤其要注意修改的地方。移動(dòng)端點(diǎn)菜完畢,發(fā)送數(shù)據(jù),接收端對數(shù)據(jù)接收后進(jìn)行處理通過串口發(fā)送給上位機(jī),上位機(jī)再將接收到的數(shù)據(jù)進(jìn)行處理存入數(shù)據(jù)庫再提示新賬單的到來,刷新顯示,這樣完成一次點(diǎn)單過程。程序配置NRF24L01的工作模式為增強(qiáng)型ShockBurst TM,這樣每次的數(shù)據(jù)收發(fā)問答就由NRF24L01模塊自動(dòng)進(jìn)行,而無需人為干預(yù)。經(jīng)分析這樣的情況有可能是,發(fā)送端不斷的發(fā)送數(shù)據(jù),而接收端正在處理某個(gè)數(shù)據(jù)時(shí),就不能及時(shí)的讀取接收到的數(shù)據(jù),產(chǎn)生丟失數(shù)據(jù)的情況。圖52 串口調(diào)試助手在接收端數(shù)據(jù)未進(jìn)行處理,直接將數(shù)據(jù)發(fā)送給串口調(diào)試助手,數(shù)據(jù)收發(fā)正常。其它功能均能按正常計(jì)劃進(jìn)行。經(jīng)過查找代碼分析應(yīng)該是本來在底部寫溫度數(shù)據(jù)時(shí),突然觸發(fā)進(jìn)入中斷,在底部重新寫入了數(shù)據(jù),改變了TFT彩屏地址指針的地址,等到退出中斷,重新顯示溫度時(shí),已經(jīng)在顯示溫度函數(shù)的內(nèi)部了,地址指針變了,不能接著進(jìn)入中斷之前的位置進(jìn)行寫入新的數(shù)據(jù),此時(shí)就會(huì)發(fā)生上述不可預(yù)料的錯(cuò)誤,等到再次在主程序里面執(zhí)行到顯示溫度的函數(shù)時(shí),才重新指定顯示的地址,這時(shí)候才正常顯示溫度了。在按下觸摸屏之后,顯示提示界面,但按下“取消”之后,本來應(yīng)該將屏幕下半部還原,然后顯示溫度,但出現(xiàn)了如圖51的情況。第五章 系統(tǒng)調(diào)試分析在完成所有的軟硬件設(shè)計(jì)并實(shí)現(xiàn)后,最后進(jìn)行系統(tǒng)聯(lián)調(diào),看各個(gè)部分能否按預(yù)定義的想法進(jìn)行協(xié)調(diào)工作,這是系統(tǒng)設(shè)計(jì)的最后一步,也是最重要的一步。在該窗口中主要完成的功能有:對數(shù)據(jù)庫MENU表里的記錄進(jìn)行添加、刪除、修改。這樣就可操作數(shù)據(jù)庫里的BILL表和MENU表了。_RecordsetPtr amp。的指針地址[15],實(shí)現(xiàn)如下:_ConnectionPtr amp??丶QID標(biāo)題變量名類型消息消息處理函數(shù)備注主框架IDD_HISBILL歷史賬單WM_INITDIALOGOnInitDialog靜態(tài)文本默認(rèn)未付(人):靜態(tài)文本默認(rèn)欠賬(元):靜態(tài)文本默認(rèn)總收入(元):靜態(tài)文本IDC_NOPAYPERSONm_nopaypersonCString靜態(tài)文本IDC_NOPAYMONEYm_nopaymoneyCString靜態(tài)文本IDC_TOTALMONEYm_totalmoneyCString按鈕IDC_FIXBILL補(bǔ)賬BN_CLICKEDOnFixbill按鈕IDC_REFRESHOLD刷新BN_CLICKEDOnRefreshold按鈕IDCANCEL退出BN_CLICKED日期時(shí)間拾取器IDC_DATETIMEPICKER2DTN_CLOSEUPOnCloseupDatetimepicker2列表控件IDC_LIST1m_list1CListCtrl勾選“Report”表48 History類控件資源由于這是在主窗口下打開的一個(gè)子窗口,所以為了要用主窗口打開的數(shù)據(jù)庫里面的資源,要獲得在在對話框程序CWirelessMenuDlg類中增加的兩個(gè)數(shù)據(jù)成員:_ConnectionPtr m_pc。“歷史賬單”,為其映射了類History,表48列出了其中所擁有的控件資源及為其映射的消息和對應(yīng)的消息處理函數(shù)??丶QID標(biāo)題變量名類型消息消息處理函數(shù)主框架IDD_SETTING設(shè)置WM_INITDIALOGOnInitDialog列表框IDC_COMBO1m_CComboBox列表框IDC_COMBO2m_baudCComboBox列表框IDC_COMBO3m_corectCComboBox列表框IDC_COMBO4m_dataCComboBox列表框IDC_COMBO5m_stopCComboBox靜態(tài)文本默認(rèn)串口靜態(tài)文本默認(rèn)波特率靜態(tài)文本默認(rèn)校驗(yàn)位靜態(tài)文本默認(rèn)數(shù)據(jù)位靜態(tài)文本默認(rèn)停止位按鈕IDC_CONN連接BN_CLICKEDOnConn表46 Setting類控件資源MSComm控件有許多很重要的屬性,限于篇幅只給出幾個(gè)較為重要和常用的屬性[13][14]。該窗口完成的主要功能有:設(shè)置串口各參數(shù),包括串口號(hào)、波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn);打開設(shè)置的串口。具體的函數(shù)實(shí)現(xiàn)見附錄第89頁void CWirelessMenuDlg::OnOnCommMsm1()函數(shù)。然后查表獲取當(dāng)前時(shí)間日期,再遍歷整個(gè)數(shù)據(jù)庫找到最大序號(hào),利用獲取的當(dāng)前日期查表找出最大點(diǎn)菜順序。圖48 上位機(jī)數(shù)據(jù)處理流程圖()==2時(shí)候,數(shù)據(jù)到來,觸發(fā)OnComm事件,調(diào)用函數(shù)OnOnCommMsm1()。這種方法的優(yōu)點(diǎn)是響應(yīng)及時(shí)、可靠性高[12]。表45 CWirelessMenuDlg類控件資源控件名稱ID標(biāo)題變量名類型消息消息處理函數(shù)備注主框架IDD_WIRELESSMENU_DIALOGWirelssMenuWM_INITDIALOGOnInitDialog靜態(tài)文本默認(rèn)今日賬單靜態(tài)文本默認(rèn)賬單詳情靜態(tài)文本默認(rèn)今日客戶數(shù):靜態(tài)文本默認(rèn)今日流水賬:靜態(tài)文本IDC_COUNTm_countCString靜態(tài)文本IDC_TOTALMONEYm_totalmoneyCString按鈕IDC_PAYBILL結(jié)賬BN_CLICKEDOnPaybill按鈕IDC_HISBILL歷史賬單BN_CLICKEDOnHisbill按鈕IDC_SET設(shè)置BN_CLICKEDOnSet按鈕IDC_UPDATA更新BN_CLICKEDOnUpdata按鈕IDCANCEL退出系統(tǒng)BN_CLICKED編輯框IDC_STATUSm_statusCString列表控件IDC_LIST1m_list1CListCtrlNM_CLICKOnClickList1勾選“Report”列表控件IDC_LIST2m_list2CListCtrl勾選“Report”串口控件IDC_MSCOMM1m_ctrlCommCMSCommOnCommOnOnCommMsm1在主窗口中添加了MSComm控件,對該控件的初始化我放在了“設(shè)置”窗口中,使得主窗口的界面更加清晰。尤其要注意每次打開表之后,在操作完之后一定要用m_prClose()。更新:(update MENU set 序號(hào)=序號(hào)1
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1