找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1026|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机食堂自助打饭系统程序与电路原理图

[复制链接]
跳转到指定楼层
楼主
两个板,一号板一个显示屏十一个按键,二号板一个显示屏一个LED两个按键,一个类似传送带的部分。一号板通过显示屏显示物品用按键选择,确认后二号板LED亮,显示屏显示物品准备中状态,按下二号板按键灯灭,按另一个按键物品传送出去。

十一个按键,上一页 下一页 确认选择 取消选择 确认 ,剩下六个是对应显示屏的六个物品按哪个选哪个

制作出来的实物图如下:

电路原理图如下:


点菜端一共  11个按键
左边的  5个按键是功能按键

    上一页
       选择      付    取消
    下一页
右边的6个按键是菜品按键

菜品 1   菜品 2  菜品 3
菜品 4   菜品 5  菜品 6
开机的时候显示

点菜端系统
可通过按键更改桌号
当前桌号 【01】号
按【ok】确定

确定桌号后点

进入点菜环节
界面显示菜单  选取时在后面做好标记

附件包含点菜端和厨房端的程序和电路

单片机源程序如下:
  1. #include "main.h"

  2. int t0_time,t0_time_5ms,t0_time_50ms;
  3. int price;
  4. unsigned char table_num=1,Dishes_num;
  5. short mod,set_f,menu_f;
  6. char menu_b[7],Uart_dat[9];
  7.   char code  menu[7][13] =        {
  8.           {"鱼香肉丝 15 "},//1
  9.           {"番茄炒蛋 15 "},
  10.           {"红烧牛肉 30 "},
  11.           {"糖醋排骨 30 "},
  12.           {"清炒白菜 10 "},
  13.           {"紫菜蛋汤 10 "}
  14.         };
  15.    


  16. void display()
  17. {
  18.   char cose_temp[17] = 0;
  19.   int i;
  20.                    switch (mod)
  21.                 {
  22.                         case 0:        //在等待模式下显示
  23.                                   LCD12864_display_string(0,1,"  后厨端系统    ");
  24.                                   LCD12864_display_string(0,2,"暂无菜品....");
  25.                                   LCD12864_display_string(0,3,"                ");
  26.                                   LCD12864_display_string(0,4,"                ");
  27.                                  

  28.                         break;

  29.                         case 1 ://菜品信息界面
  30.                                         LCD12864_display_string(0,1,"桌号");
  31.                                         LCD12864_display_string(4,1,"总量");
  32.                                         cose_temp[0] = ':';
  33.                                         cose_temp[1] = table_num/10%10 + '0';
  34.                                     cose_temp[2] = table_num/1%10 + '0';
  35.                                         cose_temp[3] = ' ';
  36.                                     cose_temp[4] = '\0';
  37.                                         LCD12864_display_string(2,1,cose_temp);
  38.                                         cose_temp[1] = Dishes_num/10%10 + '0';
  39.                                     cose_temp[2] = Dishes_num/1%10 + '0';
  40.                                         LCD12864_display_string(6,1,cose_temp);

  41.                                         if(Dishes_num<3)
  42.                                         {
  43.                                                 for(i=0;i<Dishes_num;i++)
  44.                                                 {
  45.                                                         LCD12864_display_string(1,i+2,menu[menu_b[i]]);
  46.                                                 }
  47.                                                 LCD12864_display_string(0,4,"  ==没有了哦==  ");        
  48.                                         }
  49.                                         else
  50.                                         {
  51.                                                 if(menu_f == 0)         //显示第一页
  52.                                                 {
  53.                                                         for(i=0;i<3;i++)
  54.                                                         {
  55.                                                                 LCD12864_display_string(1,i+2,menu[menu_b[i]]);
  56.                                                         }        
  57.                                                 }
  58.                                                 else  //显示第二页
  59.                                                 {
  60.                                                         for(i=3;i<Dishes_num;i++)
  61.                                                         {
  62.                                                                 LCD12864_display_string(1,i-1,menu[menu_b[i]]);
  63.                                                         }
  64.                                                         if((Dishes_num-3)<3) LCD12864_display_string(0,Dishes_num-1,"  ==没有了哦==  ");
  65.                                                 }
  66.                                         }
  67.                                        

  68.                         break;
  69.                         
  70.                         case 2:        //结算界面
  71.                                         LCD12864_display_string(0,1,"桌号");
  72.                                         LCD12864_display_string(4,1,"总量");
  73.                                         cose_temp[0] = ':';
  74.                                         cose_temp[1] = table_num/10%10 + '0';
  75.                                     cose_temp[2] = table_num/1%10 + '0';
  76.                                         cose_temp[3] = ' ';
  77.                                     cose_temp[4] = '\0';
  78.                                         LCD12864_display_string(2,1,cose_temp);
  79.                                         cose_temp[1] = Dishes_num/10%10 + '0';
  80.                                     cose_temp[2] = Dishes_num/1%10 + '0';
  81.                                         LCD12864_display_string(6,1,cose_temp);

  82.                                         LCD12864_display_string(0,3,"====出餐成功====");
  83.                                         LCD12864_display_string(0,4,"==等侯客户取餐==");
  84.                                         led = 0;
  85.                                         while(cgq==0)
  86.                                         {
  87.                                                 Motor(100,10,1);
  88.                                         }
  89.                                         led = 1;
  90.                                         LCD12864_display_string(0,3,"====取餐成功====");
  91.                                         LCD12864_display_string(0,4,"==即将返回首页==");
  92.                                         Delay1ms(3000);
  93.                                         mod = 0;
  94.                         break;
  95.                 }
  96. }





  97. void main()
  98. {
  99.          init();//开机初始化
  100.          led = 1;
  101.         ClrScreen();//清屏               
  102.         LCD12864_display_string(0,1,"》》欢迎使用《《");
  103.         Delay1ms(500);
  104.         LCD12864_display_string(0,2,"==智能点菜系统==");
  105.         Delay1ms(500);
  106.         LCD12864_display_string(0,4,"姓名:某某某    ");
  107.         Delay1ms(500);
  108.         LCD12864_display_string(0,3,"1636100103");
  109.         Delay1ms(1000);
  110.         ClrScreen();                          //清除屏幕显示
  111.         while(1)
  112.          {

  113.                 key_scan();
  114.                 display();
  115.                
  116.          }
  117.         
  118. }

  119. void t0() interrupt 1 using 1           //这个是定时中断函数
  120. {
  121.         TL0 = 0x20;                //设置定时初值
  122.         TH0 = 0xD1;                //设置定时初值
  123.     t0_time++;
  124.                
  125.         if(5 == t0_time)//5ms
  126.         {
  127.                 t0_time = 0;
  128.                 t0_time_5ms++;
  129. //======此处为5毫秒执行一次======
  130.                   


  131.                                          
  132. //================================
  133.                 if(8 == t0_time_5ms)
  134.                 {
  135.                         t0_time_5ms = 0;
  136.                         t0_time_50ms++;
  137. //=====此处为50毫秒执行一次=======
  138.                           
  139. //================================
  140.                         if(2 == t0_time_50ms)        //此处为一秒进入一次
  141.                         {
  142.                                 t0_time_50ms = 0;

  143.                         }
  144.                 }        
  145.         }

  146. }
复制代码

Keil代码与电路图下载: 程序和原理图.7z (264.71 KB, 下载次数: 24)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表