兩個板,一號板一個顯示屏十一個按鍵,二號板一個顯示屏一個LED兩個按鍵,一個類似傳送帶的部分。一號板通過顯示屏顯示物品用按鍵選擇,確認后二號板LED亮,顯示屏顯示物品準備中狀態,按下二號板按鍵燈滅,按另一個按鍵物品傳送出去。
十一個按鍵,上一頁 下一頁 確認選擇 取消選擇 確認 ,剩下六個是對應顯示屏的六個物品按哪個選哪個
制作出來的實物圖如下:
51hei截圖_20230420201704.png (843.75 KB, 下載次數: 58)
下載附件
2023-4-20 20:20 上傳
電路原理圖如下:
51hei截圖_20230420201751.png (71.33 KB, 下載次數: 56)
下載附件
2023-4-20 20:20 上傳
51hei截圖_20230420201833.png (21.96 KB, 下載次數: 61)
下載附件
2023-4-20 20:20 上傳
01.png (975.79 KB, 下載次數: 59)
下載附件
2023-4-20 20:25 上傳
02.png (862.13 KB, 下載次數: 52)
下載附件
2023-4-20 20:25 上傳
03.png (692.6 KB, 下載次數: 53)
下載附件
2023-4-20 20:25 上傳
04.png (954.97 KB, 下載次數: 55)
下載附件
2023-4-20 20:25 上傳
點菜端一共 11個按鍵
左邊的 5個按鍵是功能按鍵
上一頁
選擇 付 取消
下一頁
右邊的6個按鍵是菜品按鍵
菜品 1 菜品 2 菜品 3
菜品 4 菜品 5 菜品 6
開機的時候顯示
點菜端系統
可通過按鍵更改桌號
當前桌號 【01】號
按【ok】確定
確定桌號后點
進入點菜環節
界面顯示菜單 選取時在后面做好標記
附件包含點菜端和廚房端的程序和電路
單片機源程序如下:- #include "main.h"
- int t0_time,t0_time_5ms,t0_time_50ms;
- int price;
- unsigned char table_num=1,Dishes_num;
- short mod,set_f,menu_f;
- char menu_b[7],Uart_dat[9];
- char code menu[7][13] = {
- {"魚香肉絲 15 "},//1
- {"番茄炒蛋 15 "},
- {"紅燒牛肉 30 "},
- {"糖醋排骨 30 "},
- {"清炒白菜 10 "},
- {"紫菜蛋湯 10 "}
- };
-
- void display()
- {
- char cose_temp[17] = 0;
- int i;
- switch (mod)
- {
- case 0: //在等待模式下顯示
- LCD12864_display_string(0,1," 后廚端系統 ");
- LCD12864_display_string(0,2,"暫無菜品....");
- LCD12864_display_string(0,3," ");
- LCD12864_display_string(0,4," ");
-
- break;
- case 1 ://菜品信息界面
- LCD12864_display_string(0,1,"桌號");
- LCD12864_display_string(4,1,"總量");
- cose_temp[0] = ':';
- cose_temp[1] = table_num/10%10 + '0';
- cose_temp[2] = table_num/1%10 + '0';
- cose_temp[3] = ' ';
- cose_temp[4] = '\0';
- LCD12864_display_string(2,1,cose_temp);
- cose_temp[1] = Dishes_num/10%10 + '0';
- cose_temp[2] = Dishes_num/1%10 + '0';
- LCD12864_display_string(6,1,cose_temp);
- if(Dishes_num<3)
- {
- for(i=0;i<Dishes_num;i++)
- {
- LCD12864_display_string(1,i+2,menu[menu_b[i]]);
- }
- LCD12864_display_string(0,4," ==沒有了哦== ");
- }
- else
- {
- if(menu_f == 0) //顯示第一頁
- {
- for(i=0;i<3;i++)
- {
- LCD12864_display_string(1,i+2,menu[menu_b[i]]);
- }
- }
- else //顯示第二頁
- {
- for(i=3;i<Dishes_num;i++)
- {
- LCD12864_display_string(1,i-1,menu[menu_b[i]]);
- }
- if((Dishes_num-3)<3) LCD12864_display_string(0,Dishes_num-1," ==沒有了哦== ");
- }
- }
-
- break;
-
- case 2: //結算界面
- LCD12864_display_string(0,1,"桌號");
- LCD12864_display_string(4,1,"總量");
- cose_temp[0] = ':';
- cose_temp[1] = table_num/10%10 + '0';
- cose_temp[2] = table_num/1%10 + '0';
- cose_temp[3] = ' ';
- cose_temp[4] = '\0';
- LCD12864_display_string(2,1,cose_temp);
- cose_temp[1] = Dishes_num/10%10 + '0';
- cose_temp[2] = Dishes_num/1%10 + '0';
- LCD12864_display_string(6,1,cose_temp);
- LCD12864_display_string(0,3,"====出餐成功====");
- LCD12864_display_string(0,4,"==等侯客戶取餐==");
- led = 0;
- while(cgq==0)
- {
- Motor(100,10,1);
- }
- led = 1;
- LCD12864_display_string(0,3,"====取餐成功====");
- LCD12864_display_string(0,4,"==即將返回首頁==");
- Delay1ms(3000);
- mod = 0;
- break;
- }
- }
- void main()
- {
- init();//開機初始化
- led = 1;
- ClrScreen();//清屏
- LCD12864_display_string(0,1,"》》歡迎使用《《");
- Delay1ms(500);
- LCD12864_display_string(0,2,"==智能點菜系統==");
- Delay1ms(500);
- LCD12864_display_string(0,4,"姓名:某某某 ");
- Delay1ms(500);
- LCD12864_display_string(0,3,"1636100103");
- Delay1ms(1000);
- ClrScreen(); //清除屏幕顯示
- while(1)
- {
- key_scan();
- display();
-
- }
-
- }
- void t0() interrupt 1 using 1 //這個是定時中斷函數
- {
- TL0 = 0x20; //設置定時初值
- TH0 = 0xD1; //設置定時初值
- t0_time++;
-
- if(5 == t0_time)//5ms
- {
- t0_time = 0;
- t0_time_5ms++;
- //======此處為5毫秒執行一次======
-
-
- //================================
- if(8 == t0_time_5ms)
- {
- t0_time_5ms = 0;
- t0_time_50ms++;
- //=====此處為50毫秒執行一次=======
-
- //================================
- if(2 == t0_time_50ms) //此處為一秒進入一次
- {
- t0_time_50ms = 0;
- }
- }
- }
- }
復制代碼
Keil代碼與電路圖下載:
程序和原理圖.7z
(264.71 KB, 下載次數: 29)
2023-4-25 18:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|