版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課程設(shè)計報告</p><p> 電子點菜系統(tǒng)</p><p> 班級:</p><p> 學(xué)號:</p><p> 姓名:</p><p> 教師評語:</p><p> 教師簽名:</p><p> 2012年10月</p><p
2、><b> 1. 題目</b></p><p> 基于ARM的電子點菜系統(tǒng)</p><p><b> 系統(tǒng)簡介</b></p><p> 隨著我國的餐飲企業(yè)的蓬勃發(fā)展,餐飲行業(yè)成為國內(nèi)最早的一個完 全市場化的行業(yè),個體民營占絕對優(yōu)勢和主導(dǎo)的行業(yè),市場競爭非常充分,在廣大的餐飲企業(yè)的經(jīng)營者的不懈努力下,餐飲行
3、業(yè)取得了非常突出的發(fā)展和進步。傳統(tǒng)的點菜方式由人工來傳遞菜單,不僅浪費時間、效率低下;一旦生意火熱,單據(jù)多,信息量大時,分單、傳菜等環(huán)節(jié)很容易出現(xiàn)錯誤,從而直接影響服務(wù)質(zhì)量。導(dǎo)致企業(yè)造成不必要的損失。而本文介紹的電子點菜系統(tǒng),大大降低人力資源成本,加快各環(huán)節(jié)之間的數(shù)據(jù)流通,對企業(yè)軟環(huán)境的檔次有較大提高。在以特色服務(wù)吸引客戶的同時,有效提高餐飲機構(gòu)的服務(wù)質(zhì)量和工作效率,為餐飲業(yè)創(chuàng)造更多利潤。本系統(tǒng)就是通過無線連接達到了點菜的效果,在電腦終
4、端顯示顧客點的菜,省時省力。隨著我國的餐飲企業(yè)的蓬勃發(fā)展,餐飲行業(yè)成為國內(nèi)最早的一個完 全市場化的行業(yè),個體民營占絕對優(yōu)勢和主導(dǎo)的行業(yè),市場競爭非常充分,在廣大的餐飲企業(yè)的經(jīng)營者的不懈努力下,餐飲行業(yè)取得了非常突出的發(fā)展和進步。</p><p> 傳統(tǒng)的點菜方式由人工來傳遞菜單,不僅浪費時間、效率低下;一旦生意火熱,單據(jù)多,信息量大時,分單、傳菜等環(huán)節(jié)很容易出現(xiàn)錯誤,從而直接影響服務(wù)質(zhì)量。導(dǎo)致企業(yè)造成不必要的
5、損失。</p><p> 而本文介紹的電子點菜系統(tǒng),大大降低人力資源成本,加快各環(huán)節(jié)之間的數(shù)據(jù)流通,對企業(yè)軟環(huán)境的檔次有較大提高。在以特色服務(wù)吸引客戶的同時,有效提高餐飲機構(gòu)的服務(wù)質(zhì)量和工作效率,為餐飲業(yè)創(chuàng)造更多利潤。</p><p><b> 系統(tǒng)設(shè)計</b></p><p> 本實驗要求實現(xiàn)部分:</p><p&g
6、t; 1 按鍵處理函數(shù)OnKey()函數(shù)</p><p> 2 創(chuàng)建串口處理任務(wù)Serial_Receive_Task(void *Id)</p><p> 3 實現(xiàn)串口消息換取,處理(在LCD或數(shù)碼管上顯示)函數(shù)OnReceive(char nRdata)</p><p> 3.1系統(tǒng)運行流程圖 3.2 消息
7、運行的流程圖</p><p> 1菜單記錄的設(shè)計實現(xiàn)</p><p> 在最開始初始化完成之后,創(chuàng)建了文本框在點菜界面右下角用來記錄菜單,具體代碼如下:</p><p> pTextCtrl=CreateTextCtrl(101, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME, NULL, NULL);</p&
8、gt;<p> SetTextCtrlText(pTextCtrl, str,TRUE);//設(shè)置文本框內(nèi)容</p><p> 在定義圖片之前設(shè)置了每道菜的單價:</p><p> int price[6]={50,50,80,280,180,80};</p><p> 之后每點一道菜,系統(tǒng)自動判斷類別并進行菜單記錄,增刪菜價。</p&g
9、t;<p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p><b> 2初始化操作</b></p><p> void initOSGUI()//初始化操作系統(tǒng)的圖形界面</p><p><b> {</b></p><p> i
10、nitOSMessage();</p><p> initOSList();</p><p> initOSDC();</p><p> initOSCtrl();</p><p> initOSFile();</p><p><b> }</b></p><p>
11、; /////////////////////////////////////////////////////</p><p> // Main function. //</p><p> ////////////////////////////////////////////////////</p>&l
12、t;p> int main(void)</p><p><b> {</b></p><p> ARMTargetInit(); //開發(fā)板初始化</p><p> OSInit(); //操作系統(tǒng)初始化 </p><p> uHALr_ResetMMU();//復(fù)位MMU</p>
13、<p> LCD_Init(); //初始化LCD模塊</p><p> LCD_printf("LCD initialization is OK\n");//向液晶屏輸出數(shù)據(jù)</p><p> LCD_printf("320 x 240 Text Mode\n");</p><p> initOSGUI
14、();//初始化圖形界面</p><p> LoadFont();//調(diào)Unicode字庫</p><p> LoadConfigSys();//使用config.sys文件配置系統(tǒng)設(shè)置</p><p> LCD_printf("Create task on uCOS-II...\n");</p><p> OST
15、askCreate(Main_Task,(void*)0,(OS_STK*)&Main_Stack[STACKSIZE*8-1], Main_Task_Prio);// 創(chuàng)建系統(tǒng)任務(wù)</p><p> 設(shè)計思想是讓LCD 顯示屏每頁顯示六道菜,觸摸實現(xiàn)點菜確認(rèn),所以在觸摸屏上安排了九個區(qū)間的觸摸功能用以下代碼完成觸摸區(qū)域。</p><p> recta.left=0;<
16、/p><p> recta.top=0;</p><p> recta.right=320;</p><p> recta.bottom=30;</p><p> //定義觸摸區(qū)域大小</p><p> pTouch_Position=&Touch_Position;</p><p&g
17、t; prect=▭</p><p> precta=&recta;</p><p> prectb=&rectb;</p><p> prectc=&rectc;</p><p> prectd=&rectd;</p><p> precte=&a
18、mp;recte;</p><p> prectf=&rectf;</p><p> 如上,定義上下左右四個區(qū)間的大小來完成觸摸區(qū)域,六道菜六個觸摸區(qū)域</p><p> 區(qū)域大小根據(jù)圖片大小而定。</p><p> 觸摸區(qū)域完成后,就是實現(xiàn)觸摸點菜功能了,在這里,我們用到了消息循環(huán),即在進入點菜界面之前有一個歡迎界面,需
19、要通過按鍵進入點菜界面,這里使用for循環(huán)用來判斷。</p><p><b> for(;;){</b></p><p> pMsg=WaitMessage(0); //等待消息</p><p> switch(pMsg->Message){</p><p> case OSM_KEY:</p>
20、<p> 這里的case OSM_KEY表示按鍵事件,后面用了一個judge函數(shù)來進行判斷</p><p> if(judge==0)</p><p><b> {num=0;</b></p><p><b> state=0;</b></p><p><b> s
21、tatea=0;</b></p><p><b> stateb=0;</b></p><p><b> statec=0;</b></p><p><b> stated=0;</b></p><p><b> statee=0;</b&g
22、t;</p><p><b> statef=0;</b></p><p> if(onKey(pMsg->WParam,pMsg->LParam))</p><p><b> {</b></p><p><b> judge=1;</b></p>
23、;<p> pdc = CreateDC();</p><p> ShowBmp(pdc,bmpnamelogo1, 70, 1);</p><p> ShowBmp(pdc,bmpnamelogo2, 200, 1);</p><p> ShowBmp(pdc,bmpnamelogo3, 70, 80);</p><p&g
24、t; ShowBmp(pdc,bmpnamelogo4, 200, 80);</p><p> ShowBmp(pdc,bmpnamelogo5, 70, 160);</p><p> ShowBmp(pdc,bmpnamelogo6, 200, 160);</p><p> OSTimeDly(100);</p><p> if(
25、judge==1)</p><p><b> {</b></p><p> if(IsInRect2(precta, pTouch_Position))</p><p><b> {</b></p><p> if(statea==0)</p><p><b&g
26、t; {</b></p><p> ShowBmp(pdc,dj_Pict, 20,5);</p><p><b> statea=1;</b></p><p> Uart_Printf("01號桌點了小雞燉蘑菇\t");</p><p> sysnumber=sysnumber
27、+price[0];</p><p> Int2Unicode(sysnumber,str);</p><p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b> }</b></p><p>
28、;<b> Else</b></p><p><b> {</b></p><p> FillRect( pdc, 20,5,40,25, GRAPH_MODE_NORMAL, COLOR_WHITE);</p><p> DrawRectFrame(pdc, 20, 5, 40, 25);</p>
29、<p><b> statea=0;</b></p><p> Uart_Printf("01號桌取消您點了小雞燉蘑菇\t");</p><p> sysnumber=sysnumber-price[0];</p><p> Int2Unicode(sysnumber,str);</p>&l
30、t;p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b> }</b></p><p><b> }</b></p><p> else if(IsInRect2(prectb, pT
31、ouch_Position))</p><p> DeleteMessage(pMsg);//刪除消息,釋放資源</p><p> OSTimeDly(200);</p><p><b> }</b></p><p> DestoryDC(pdc);</p><p><b>
32、}</b></p><p> 用消息循環(huán)來實現(xiàn)點菜和取消點菜的過程,點一下圖片為點菜,再點一下就取消了點菜。judge==1表示發(fā)生了這個事件,進入點菜界面。</p><p> 進入點菜界面后,可以看見每排2道菜,一共六道菜,這是用到了消息循環(huán),同時用用了一次if judge來進行點菜判斷,同時定義IsInRect2(prect1,pTouch_Position)函數(shù)來判斷
33、prect1指向的區(qū)域是否有觸摸動作,有則同樣跳轉(zhuǎn)到菜單畫面,case OSM_TOUCH_SCREEN:表示觸摸屏動作后系統(tǒng)需響應(yīng)的進程。</p><p><b> 系統(tǒng)實現(xiàn)</b></p><p> 在本次系統(tǒng)實現(xiàn)的過程中,所要做到的就是實現(xiàn)觸摸屏點菜和鍵盤點菜功能,并且實現(xiàn)計算所點菜的總價格,在LED燈上顯示所點菜的總價格。</p><p
34、><b> 1 初始化界面</b></p><p> ///*****************事件定義*****************///</p><p> OS_EVENT *Nand_Rw_Sem; //Nand_Flash讀寫控制權(quán)旗語</p><p> //and you can u
35、se it as folloeing:</p><p> // Nand_Rw_Sem=OSSemCreate(1); //創(chuàng)建Nand-Flash讀寫控制權(quán)旗語,初值為1滿足互斥條件//</p><p> // OSSemPend(Nand_Rw_Sem,0,&err);</p><p> // OSSemPost(N
36、and_Rw_Sem);</p><p> OS_EVENT *Uart_Rw_Sem; //Uart讀寫控制權(quán)旗語</p><p> //and you can use it as folloeing:</p><p> // Uart_Rw_Sem=OSSemCreate(1); //創(chuàng)建Uart讀寫
37、控制權(quán)旗語,初值為1滿足互斥條件//</p><p> // OSSemPend(Uart_Rw_Sem,0,&err);</p><p> // OSSemPost(Uart_Rw_Sem);</p><p> //////////////////////////////////////////////////////////</p
38、><p> int main(void)</p><p><b> {</b></p><p> ARMTargetInit(); //開發(fā)板初始化</p><p> OSInit(); //操作系統(tǒng)初始化 </p><p> uHALr_ResetMMU();//復(fù)位MMU<
39、;/p><p> LCD_Init(); //初始化LCD模塊</p><p> LCD_printf("LCD initialization is OK\n");//向液晶屏輸出數(shù)據(jù)</p><p> LCD_printf("320 x 240 Text Mode\n");</p>
40、<p> initOSGUI();//初始化圖形界面</p><p> LoadFont();//調(diào)Unicode字庫</p><p> LoadConfigSys();//使用config.sys文件配置系統(tǒng)設(shè)置</p><p> LCD_printf("Create task on uCOS-II...\n");</p
41、><p> OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_Stack[STACKSIZE*8-1], Main_Task_Prio);// 創(chuàng)建系統(tǒng)任務(wù)</p><p> ////////////////////////////////////////////////////</p><p>&l
42、t;b> // 創(chuàng)建串口任務(wù)</b></p><p> //OSTaskCreate(Dynamic_Display_Task,(void *)0,(OS_STK *)&Dynamic_Display_Task_Stack[STACKSIZE*8-1],Dynamic_Display_Task_Prio); </p><p> ///////////////
43、/////////////////////////////////////</p><p> OSAddTask_Init();//創(chuàng)建系統(tǒng)附加任務(wù)</p><p> LCD_printf("Starting uCOS-II...\n");</p><p> LCD_printf("Entering graph mode...\n
44、");</p><p> LCD_ChangeMode(DspGraMode);//變LCD顯示模式為文本模式</p><p> InitRtc();//初始化系統(tǒng)時鐘</p><p> Nand_Rw_Sem=OSSemCreate(1); //創(chuàng)建Nand-Flash讀寫控制權(quán)旗語,初值為1滿足互斥條件//</p><p&
45、gt; OSStart();//操作系統(tǒng)任務(wù)調(diào)度開始</p><p><b> //不會執(zhí)行到這里</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> /*char *KeyTable[]={"
46、;NumLock","/","*","-","7","8","9","+","4","5","6","1","2","3","Enter","
47、;0","."};</p><p> void onKey(int nkey, int fnkey)</p><p><b> {</b></p><p> PDC pdc;//創(chuàng)建繪圖設(shè)備上下文結(jié)構(gòu)</p><p> U16 ch[10];</p><p>
48、 ClearScreen();//清屏</p><p> pdc=CreateDC();//創(chuàng)建繪圖設(shè)備上下文</p><p> Uart_Printf("key=%s\n", KeyTable[nkey]);</p><p> strChar2Unicode(ch, KeyTable[nkey]);</p><p&g
49、t;<b> 2 主函數(shù)</b></p><p> Uart_Printf("這是01號桌");</p><p><b> //消息循環(huán)</b></p><p><b> for(;;){</b></p><p> pMsg=WaitMessage
50、(0); //等待消息</p><p> switch(pMsg->Message){</p><p> case OSM_KEY:</p><p> //Uart_Printf("%d",pMsg->WParam);</p><p> if(judge==0)</p><p>
51、<b> {num=0;</b></p><p><b> state=0;</b></p><p><b> statea=0;</b></p><p><b> stateb=0;</b></p><p><b> statec=0
52、;</b></p><p><b> stated=0;</b></p><p><b> statee=0;</b></p><p><b> statef=0;</b></p><p> if(onKey(pMsg->WParam,pMsg->
53、;LParam))</p><p><b> {</b></p><p><b> judge=1;</b></p><p> pdc = CreateDC();</p><p> ShowBmp(pdc,bmpnamelogo1, 70, 1);</p><p>
54、 ShowBmp(pdc,bmpnamelogo2, 200, 1);</p><p> ShowBmp(pdc,bmpnamelogo3, 70, 80);</p><p> ShowBmp(pdc,bmpnamelogo4, 200, 80);</p><p> ShowBmp(pdc,bmpnamelogo5, 70, 160);</p>
55、<p> ShowBmp(pdc,bmpnamelogo6, 200, 160);</p><p> OSTimeDly(100);</p><p> SetRect(&rect, 180,205,260,225);//設(shè)置PID參數(shù)軸1P的文本框</p><p> pTextCtrl=CreateTextCtrl(101, &r
56、ect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME, NULL, NULL);//創(chuàng)建文本框</p><p> Int2Unicode(sysnumber,str);//將整形數(shù)據(jù)轉(zhuǎn)換為Unicode數(shù)據(jù)</p><p> //SetWndCtrlFocus(NULL, ID_MainTextCtrl);//將焦點移到文本框中</p><p
57、> SetTextCtrlText(pTextCtrl, str,TRUE);//設(shè)置文本框內(nèi)容</p><p> //EXIO_8255A_CTRL=0x80;</p><p> //EXIO_8255A_PORTC=0xff;</p><p> OSTaskCreate(Dynamic_Display_Task, (void *)0, <
58、/p><p> (OS_ST*)&Dynamic_Display_Task_Stack[STACKSIZE*8-1], </p><p> 3 觸摸屏控制點菜的代碼實現(xiàn)</p><p> Dynamic_Display_Task_Prio);// 1</p><p><b> }}</b><
59、;/p><p> else if(judge==1)</p><p> {//Uart_Printf("%d",pMsg->WParam);</p><p> switch(pMsg->WParam){</p><p> case 15: if(statea==0)</p><p>
60、<b> {</b></p><p> ShowBmp(pdc,dj_Pict, 20,5);</p><p><b> statea=1;</b></p><p> Uart_Printf("01號桌點了小雞燉蘑菇\t");</p><p> sysnumber=sy
61、snumber+price[0];</p><p> Int2Unicode(sysnumber,str);</p><p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b> }</b></p>&
62、lt;p><b> else</b></p><p><b> {</b></p><p> FillRect( pdc, 20,5,40,25, GRAPH_MODE_NORMAL, COLOR_WHITE);</p><p> DrawRectFrame(pdc, 20, 5, 40, 25);</
63、p><p><b> statea=0;</b></p><p> Uart_Printf("01號桌取消了小雞燉蘑菇\t");</p><p> sysnumber=sysnumber-price[0];</p><p> Int2Unicode(sysnumber,str);</p>
64、;<p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b> }</b></p><p><b> break;</b></p><p> case 11: if(stateb
65、==0)</p><p><b> {</b></p><p> ShowBmp(pdc,dj_Pict, 20,37);</p><p><b> stateb=1;</b></p><p> Uart_Printf("01號桌點了酸菜燉粉條\t");</p>
66、;<p> sysnumber=sysnumber+price[1];</p><p> Int2Unicode(sysnumber,str);</p><p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b>
67、 }</b></p><p><b> else</b></p><p><b> {</b></p><p> FillRect( pdc, 20,37,40,57, GRAPH_MODE_NORMAL, COLOR_WHITE);</p><p> DrawRectFram
68、e(pdc, 20, 37, 40, 57);</p><p><b> stateb=0;</b></p><p> Uart_Printf("01號桌取消了酸菜燉粉條\t");</p><p> sysnumber=sysnumber-price[1];</p><p> Int2Unic
69、ode(sysnumber,str);</p><p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b> }</b></p><p><b> break;</b></p>&
70、lt;p> case 14:ClearScreen();</p><p> ShowBmp(pdc,dj_Pict1, 60,40);</p><p><b> judge=2;</b></p><p> OSTimeDly(1500);</p><p> ClearScreen();</p>
71、<p> ShowBmp(pdc,dj_Pict2, 0,0);</p><p><b> judge=0;</b></p><p> sysnumber=0;</p><p><b> break;</b></p><p><b> default:</b&
72、gt;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p> 4 鍵盤控制點菜的代碼實
73、現(xiàn)</p><p> case OSM_LISTCTRL2_SELCHANGE:</p><p> onListCtrl2SelChange(pMsg->WParam,pMsg->LParam);</p><p><b> break;</b></p><p> case OSM_MENU_SELCH
74、ANGE:</p><p> onMenuSelChange(pMsg->WParam,pMsg->LParam);</p><p><b> break;</b></p><p> case OSM_TOUCH_SCREEN://OSM_TOUCH_SCREEN:</p><p> Touch_Po
75、sition.x=pMsg->WParam&0xffff;</p><p> Touch_Position.y=pMsg->WParam>>16;</p><p> if(judge==1)</p><p><b> {</b></p><p> if(IsInRect2(prec
76、ta, pTouch_Position))</p><p><b> {</b></p><p> if(statec==0)</p><p><b> {</b></p><p> ShowBmp(pdc,dj_Pict, 20,69);</p><p><b
77、> statec=1;</b></p><p> Uart_Printf("01號桌點了紅燒獅子頭\t");</p><p> sysnumber=sysnumber+price[2];</p><p> Int2Unicode(sysnumber,str);</p><p> SetTextC
78、trlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
79、 FillRect( pdc, 20,69,40,89, GRAPH_MODE_NORMAL, COLOR_WHITE);</p><p> DrawRectFrame(pdc, 20, 69, 40, 89);</p><p><b> statec=0;</b></p><p> Uart_Printf("01號桌取消了紅燒
80、獅子頭\t");</p><p> sysnumber=sysnumber-price[2];</p><p> Int2Unicode(sysnumber,str);</p><p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p&g
81、t;<p><b> }</b></p><p><b> }</b></p><p> else if(IsInRect2(prectd, pTouch_Position))</p><p><b> {</b></p><p> if(stated=
82、=0)</p><p><b> {</b></p><p> ShowBmp(pdc,dj_Pict, 20,101);</p><p><b> stated=1;</b></p><p> Uart_Printf("01號桌點了烤乳豬\t");</p>
83、<p> sysnumber=sysnumber+price[3];</p><p> Int2Unicode(sysnumber,str);</p><p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b>
84、}</b></p><p><b> else</b></p><p><b> {</b></p><p> FillRect( pdc, 20,101,40,121, GRAPH_MODE_NORMAL, COLOR_WHITE);</p><p> DrawRectFram
85、e(pdc, 20, 101, 40, 121);</p><p><b> stated=0;</b></p><p> Uart_Printf("01號桌取消了烤乳豬\t");</p><p> sysnumber=sysnumber-price[3];</p><p> Int2Unic
86、ode(sysnumber,str);</p><p> SetTextCtrlText(pTextCtrl, str,TRUE);</p><p> num=sysnumber;</p><p><b> }</b></p><p><b> }</b></p><p&
87、gt;<b> default:</b></p><p> OSOnSysMessage(pMsg);</p><p><b> break;</b></p><p><b> }</b></p><p> DeleteMessage(pMsg);//刪除消息,釋放資
88、源</p><p> OSTimeDly(200);</p><p><b> }</b></p><p> DestoryDC(pdc);</p><p><b> }</b></p><p> //////////////////////////////////
89、////////////////////////////////////////////////////////////////////////////////</p><p> void Dynamic_Display_Task(void *Id)</p><p><b> {</b></p><p><b> U32 key
90、;</b></p><p><b> for(;;)</b></p><p> { key=num;</p><p> //PDC pdc;//創(chuàng)建繪圖設(shè)備上下文結(jié)構(gòu)</p><p><b> 5. 總結(jié)</b></p><p> 在本次嵌入式課程設(shè)計
91、課程中,我們學(xué)習(xí)了基本的關(guān)于嵌入式的原理及動手操作內(nèi)容,并且運用平時所學(xué),最后在此次課程設(shè)計中設(shè)計出來我們的電子點菜系統(tǒng),是關(guān)于基于ARM的嵌入式電子點菜系統(tǒng),本系統(tǒng)在硬件實現(xiàn)以及軟件編譯實現(xiàn)過程中相對復(fù)雜,通過參考了基于ARM的嵌入式系統(tǒng)設(shè)計實驗與實踐教程,然后再結(jié)合自己的設(shè)計和改進可以實現(xiàn),通過在做課程設(shè)計的過程中,遇到了一些難以解決的問題和難題,我們通過詢問同學(xué)和老師的幫助,慢慢的得以解決。</p><p>
92、; 雖然沒有大的問題,但是不斷有小的問題產(chǎn)生,他們藏匿在系統(tǒng)的各個細(xì)小的環(huán)節(jié)當(dāng)中,讓你的系統(tǒng)總是不能如你所愿的完美實現(xiàn)。我們在實現(xiàn)這個系統(tǒng)的過程中就遇見了不少問題,比如觸摸屏的問題由于本系統(tǒng)最基本的功能要求實現(xiàn)觸摸屏觸摸點菜的功能,要求實驗臺的觸摸屏功能完好。但是我們所在的倆個實驗室將近四十個實驗臺沒有幾個觸摸屏功能是好的,大多數(shù)觸摸靈敏度不夠或者過于靈敏。我們在書記主要功能即觸摸點菜功能時參考了教科書以及自己的設(shè)計進行了這部分的代碼
93、編譯,但是在觸摸屏上檢測的時候,效果很不理想,觸摸點菜功能時好時壞。我們對代碼進行了許多改進和完善,并且還用坐標(biāo)的方式進行了檢測,發(fā)現(xiàn)在用單個的橫縱坐標(biāo)來實現(xiàn)觸摸功能的時候觸摸功能是好的,但是一轉(zhuǎn)化為包含圖片區(qū)域空間時觸摸功能就又不好用了,換了幾個實驗臺依然如此。當(dāng)然我們也不是很確定是不是觸摸屏的問題,鑒于進度慢慢落后,我們就放棄了繼續(xù)查找原因并改進,希望老師能予以理解。通過我們的努力和多方面尋找原因,最后也不能說完全解決了問題,但是基
94、本上達到了我們的要求。本次課程設(shè)計實驗不僅增強了我們的嵌入式硬件設(shè)計能力,兩人一組的協(xié)同合作也增強了團隊意識,還提升了編碼水平</p><p> 嵌入式技術(shù)是與實踐緊密相結(jié)合的一門技術(shù),把我們學(xué)的知識理論通過實驗應(yīng)用到實踐中去,這樣我們才能真正掌握它們,并能運用它們。這個點菜系統(tǒng)的開發(fā),讓我們掌握了硬件設(shè)計、嵌入式Linux 操作系統(tǒng)編譯、linux驅(qū)動開發(fā)、嵌入式數(shù)據(jù)庫圖形界面開發(fā)等。本文的點菜系統(tǒng)除了應(yīng)用于
95、學(xué)校的食堂,還可以應(yīng)用于飯店,具有很好的市場前景。系統(tǒng)還存在著一些不足,沒有加上無線網(wǎng)卡,在以后的實驗開發(fā)中會將無線加入到系統(tǒng)中。</p><p><b> 6. 參考文獻</b></p><p> [1]武俊鵬、張國印、姚愛紅、趙國東.基于ARM的嵌入式系統(tǒng)設(shè)計實驗與實踐教程.清華大學(xué)出版社.2011.</p><p> [2]王琳,余
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于嵌入式的無線點菜系統(tǒng)課程設(shè)計
- 嵌入式畢業(yè)設(shè)計論文基于arm的嵌入式gui點菜系統(tǒng)
- 基于arm的電子點菜系統(tǒng)設(shè)計
- 基于嵌入式linux的無線點菜系統(tǒng)設(shè)計
- 基于ARM嵌入式無線點菜系統(tǒng)終端的研究與設(shè)計.pdf
- 嵌入式無線點菜系統(tǒng)的實現(xiàn)
- 基于linux的嵌入式點菜系統(tǒng)終端.pdf
- 基于嵌入式linux的無線點菜系統(tǒng)設(shè)計.pdf
- arm嵌入式系統(tǒng)課程設(shè)計-基于嵌入式系統(tǒng)的煙氣檢測監(jiān)控系統(tǒng)
- 基于嵌入式Linux的點菜系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于嵌入式前臺收銀點菜系統(tǒng)的研究.pdf
- vb點菜系統(tǒng)課程設(shè)計
- 嵌入式觸摸屏課程設(shè)計---arm嵌入式系統(tǒng)
- arm9嵌入式系統(tǒng)課程設(shè)計
- 嵌入式課程設(shè)計--基于arm嵌入式圖像處理系統(tǒng)設(shè)計與實現(xiàn)
- vb課程設(shè)計--酒店點菜系統(tǒng)
- 畢業(yè)設(shè)計--基于linux嵌入式點菜系統(tǒng)的設(shè)計(含外文翻譯)
- arm嵌入式系統(tǒng)課程設(shè)計--溫度采集系統(tǒng)的設(shè)計
- 飯店點菜系統(tǒng)-vb課程設(shè)計報告
- 嵌入式課程設(shè)計基于arm9的視頻監(jiān)控系統(tǒng)
評論
0/150
提交評論