久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3962|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的無線餐飲管理設(shè)計(jì) NRF2401加LCD12864顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:234581 發(fā)表于 2017-11-10 23:10 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
基于51單片機(jī)的餐飲管理設(shè)計(jì) NRF2401加LCD12864

發(fā)送端原理圖:



接收端原理圖:


發(fā)送端單片機(jī)源程序如下:
  1. /*****************************************

  2. *****************************************/
  3. #include"reg52.h"
  4. #include"Allhead.h"
  5.   sbit LCD_RS=P3^5;
  6.   sbit LCD_RW=P3^6;
  7.   sbit LCD_EN=P3^4;
  8.   sbit LCD_PSB=P3^7;
  9.   sbit wela=P2^6;
  10.   sbit dula=P2^7;
  11.   sbit k1=P1^0;
  12.   sbit k2=P1^1;
  13.   sbit k3=P1^2;
  14.   sbit k4=P3^3;
  15.   sbit led2=P0^0;
  16.   unchar code dis1[]={"----請(qǐng)您點(diǎn)菜----"};
  17.   unchar code dis2[]={"魚香肉絲  7 元"};
  18.   unchar code dis3[]={"宮保雞丁  8 元"};
  19.   unchar code dis4[]={"回鍋肉    10元"};
  20.   unchar code dis5[]={"京醬肉絲  8 元"};
  21.   unchar code dis6[]={"紅燒肉    9 元"};
  22.   unchar code dis7[]={"------已點(diǎn)------"};
  23.   unchar code dis8[]={"------結(jié)賬------"};
  24.   unchar code dis9[]={"共計(jì)"};
  25.   unchar code dis10[]={"元"};

  26.   unchar k=1,j=1,u=1,n=0,m=0;
  27.   char TxDate[4],sum=0;
  28.   void lcd_display3();
  29. /*********************主函數(shù)***************************/

  30.   void delay_1ms(unint x)
  31.   {
  32.     unint i,j;
  33.         for(j=0;j<x;j++)
  34.            for(i=0;i<110;i++);
  35.   }
  36.   void write_cmd(unchar cmd)
  37.   {
  38.      LCD_RS=0;
  39.          LCD_RW=0;
  40.          LCD_EN=0;
  41.          P0=cmd;
  42.          delay_1ms(5);
  43.          LCD_EN=1;
  44.          delay_1ms(5);
  45.          LCD_EN=0;

  46.   }
  47.   void write_dat(unchar dat)
  48.   {
  49.     LCD_RS=1;
  50.         LCD_RW=0;
  51.         LCD_EN=0;
  52.         P0=dat;
  53.         delay_1ms(5);
  54.         LCD_EN=1;
  55.         delay_1ms(5);
  56.         LCD_EN=0;

  57.   }
  58.   void lcd_pos(unchar X,unchar Y)
  59.   {
  60.      unchar pos;
  61.          if(X==0)
  62.            {X=0X80;}
  63.          else if(X==1)
  64.             {X=0X90;}                 
  65.          else if(X==2)
  66.             {X=0X88;}
  67.          else if(X==3)
  68.             {X=0X98;}
  69.          pos=X+Y;
  70.          write_cmd(pos);
  71.           
  72.   }


  73. /************屏幕顯示***************/
  74.   void lcd_display()  //點(diǎn)菜界面
  75.   {
  76.     unchar i;
  77.     lcd_pos(0,0);
  78.     i=0;
  79.         while(dis1[i]!='\0')
  80.         {
  81.       write_dat(dis1[i]);
  82.           i++;
  83.     }


  84.         if(u==1) //第一頁
  85.         {
  86.         lcd_pos(1,1);
  87.         i=0;
  88.         while(dis2[i]!='\0')
  89.         {
  90.           write_dat(dis2[i]);
  91.           i++;
  92.         }

  93.         lcd_pos(2,1);
  94.         i=0;         
  95.         while(dis3[i]!='\0')
  96.         {
  97.           write_dat(dis3[i]);
  98.           i++;
  99.         }

  100.         lcd_pos(3,1);
  101.         i=0;           
  102.         while(dis4[i]!='\0')
  103.         {
  104.           write_dat(dis4[i]);
  105.           i++;
  106.         }
  107.           }



  108.         else if(u==2) //第二頁
  109.    {

  110.         lcd_pos(1,1);
  111.         i=0;
  112.         while(dis3[i]!='\0')
  113.         {
  114.           write_dat(dis3[i]);
  115.           i++;
  116.         }

  117.         lcd_pos(2,1);
  118.         i=0;           
  119.         while(dis4[i]!='\0')
  120.         {
  121.           write_dat(dis4[i]);
  122.           i++;
  123.         }

  124.         lcd_pos(3,1);
  125.         i=0;           
  126.         while(dis5[i]!='\0')
  127.         {
  128.           write_dat(dis5[i]);
  129.           i++;
  130.         }
  131.                
  132.    }

  133.    else if(u==3)  //第三頁
  134.    {

  135.         lcd_pos(1,1);
  136.         i=0;
  137.         while(dis4[i]!='\0')
  138.         {
  139.           write_dat(dis4[i]);
  140.           i++;
  141.         }

  142.         lcd_pos(2,1);
  143.         i=0;           
  144.         while(dis5[i]!='\0')
  145.         {
  146.           write_dat(dis5[i]);
  147.           i++;
  148.         }

  149.         lcd_pos(3,1);
  150.         i=0;           
  151.         while(dis6[i]!='\0')
  152.         {
  153.           write_dat(dis6[i]);
  154.           i++;
  155.         }
  156.                
  157.    }



  158.   }



  159.   void lcd_display2()  //看菜界面
  160.   {
  161.           unchar i;
  162.     lcd_pos(0,0);
  163.     i=0;
  164.         while(dis7[i]!='\0')
  165.         {
  166.       write_dat(dis7[i]);
  167.           i++;
  168.     }

  169.         lcd_pos(1,0);
  170.     i=0;
  171.         switch(TxDate[0])
  172.         {
  173.         case 1 :       
  174.         while(dis2[i]!='\0')
  175.         {
  176.       write_dat(dis2[i]);
  177.           i++;
  178.     }break;

  179.         case 2 :       
  180.         while(dis3[i]!='\0')
  181.         {
  182.       write_dat(dis3[i]);
  183.           i++;
  184.     }break;

  185.         case 3 :       
  186.         while(dis4[i]!='\0')
  187.         {
  188.       write_dat(dis4[i]);
  189.           i++;
  190.     }break;

  191.         case 4 :       
  192.         while(dis5[i]!='\0')
  193.         {
  194.       write_dat(dis5[i]);
  195.           i++;
  196.     }break;
  197.   
  198.         case 5 :       
  199.         while(dis6[i]!='\0')
  200.         {
  201.       write_dat(dis6[i]);
  202.           i++;
  203.     }break;

  204.         default : break;

  205.         }

  206.         lcd_pos(2,0);
  207.     i=0;
  208.         switch(TxDate[1])
  209.         {
  210.         case 1 :       
  211.         while(dis2[i]!='\0')
  212.         {
  213.       write_dat(dis2[i]);
  214.           i++;
  215.     }break;

  216.         case 2 :       
  217.         while(dis3[i]!='\0')
  218.         {
  219.       write_dat(dis3[i]);
  220.           i++;
  221.     }break;

  222.         case 3 :       
  223.         while(dis4[i]!='\0')
  224.         {
  225.       write_dat(dis4[i]);
  226.           i++;
  227.     }break;

  228.         case 4 :       
  229.         while(dis5[i]!='\0')
  230.         {
  231.       write_dat(dis5[i]);
  232.           i++;
  233.     }break;
  234.   
  235.         case 5 :       
  236.         while(dis6[i]!='\0')
  237.         {
  238.       write_dat(dis6[i]);
  239.           i++;
  240.     }break;

  241.         default : break;

  242.         }


  243.         lcd_pos(3,0);
  244.     i=0;
  245.         switch(TxDate[2])
  246.         {
  247.         case 1 :       
  248.         while(dis2[i]!='\0')
  249.         {
  250.       write_dat(dis2[i]);
  251.           i++;
  252.     }break;

  253.         case 2 :       
  254.         while(dis3[i]!='\0')
  255.         {
  256.       write_dat(dis3[i]);
  257.           i++;
  258.     }break;

  259.         case 3 :       
  260.         while(dis4[i]!='\0')
  261.         {
  262.       write_dat(dis4[i]);
  263.           i++;
  264.     }break;

  265.         case 4 :       
  266.         while(dis5[i]!='\0')
  267.         {
  268.       write_dat(dis5[i]);
  269.           i++;
  270.     }break;
  271.   
  272.         case 5 :       
  273.         while(dis6[i]!='\0')
  274.         {
  275.       write_dat(dis6[i]);
  276.           i++;
  277.     }break;

  278.         default : break;

  279.         }
  280.   
  281.   }


  282.   void         lcd_display3()         //算賬
  283.   {       
  284.     char a,b;
  285.     unchar i;
  286.         sum = 0;

  287.        
  288.     lcd_pos(0,0);
  289.     i=0;
  290.         while(dis8[i]!='\0')
  291.         {
  292.       write_dat(dis8[i]);
  293.           i++;
  294.     }

  295.           switch(TxDate[0])
  296.         {
  297.         case 1 :       
  298.     sum=sum+7;break;

  299.         case 2 :       
  300.         sum=sum+8;break;

  301.         case 3 :       
  302.         sum=sum+10;break;

  303.         case 4 :       
  304.         sum=sum+8;break;
  305.   
  306.         case 5 :       
  307.         sum=sum+9;break;

  308.         default : break;

  309.     }

  310.         switch(TxDate[1])
  311.         {
  312.         case 1 :       
  313.     sum=sum+7;break;

  314.         case 2 :       
  315.         sum=sum+8;break;

  316.         case 3 :       
  317.         sum=sum+10;break;

  318.         case 4 :       
  319.         sum=sum+8;break;
  320.   
  321.         case 5 :       
  322.         sum=sum+9;break;

  323.         default : break;

  324.     }

  325.           switch(TxDate[2])
  326.         {
  327.         case 1 :       
  328.     sum=sum+7;break;

  329.         case 2 :       
  330.         sum=sum+8;break;

  331.         case 3 :       
  332.         sum=sum+10;break;

  333.         case 4 :       
  334.         sum=sum+8;break;
  335.   
  336.         case 5 :       
  337.         sum=sum+9;break;

  338.         default : break;

  339.     }



  340.           a=sum/10;
  341.         b=sum%10;


  342.         lcd_pos(1,0);
  343.     i=0;
  344.         while(dis9[i]!='\0')
  345.         {
  346.       write_dat(dis9[i]);
  347.           i++;
  348.     }

  349.         write_dat(a+0x30);
  350.         write_dat(b+0x30);

  351.         i=0;
  352.         while(dis10[i]!='\0')
  353.         {
  354.       write_dat(dis10[i]);
  355.           i++;
  356.     }


  357.   }

  358.   void lcd_init()
  359.   {
  360.         LCD_PSB=1;
  361.         write_cmd(0x30);
  362.         delay_1ms(5);
  363.         write_cmd(0x0C);
  364.         delay_1ms(5);
  365.         write_cmd(0x01);
  366.         delay_1ms(5);

  367.   }

  368. /***************鍵盤掃描************/
  369.   void keyscan()
  370.   {
  371.           if(k1==0)//向下移動(dòng)光標(biāo)鍵
  372.         {
  373.                    delay_1ms(1);
  374.                 if(k1==0)
  375.                 {
  376.                    k++;
  377.                    j++;
  378.                    if(k>3)
  379.                    {
  380.                              k=3;
  381.                           u++;
  382.                           if(u==4)
  383.                           {
  384.                                    u=1;
  385.                           }
  386.                    }
  387.                    if(j==6)
  388.                    {
  389.                       k=1;
  390.                           j=1;
  391.                    }

  392.                    while(!k1);
  393.                    write_cmd(0x01);
  394.                    delay_1ms(1);
  395.                 }
  396.         }


  397.         if(k2==0)//向上移動(dòng)光標(biāo)鍵
  398.         {
  399.                    delay_1ms(1);
  400.                 if(k2==0)
  401.                 {
  402.                    k--;
  403.                    j--;
  404.                   if(k<1)
  405.                    {
  406.                              k=1;
  407.                           u--;
  408.                           if(u==0)
  409.                           {
  410.                                    u=3;
  411.                           }
  412.                    }
  413.                    if(j==0)
  414.                    {
  415.                       k=3;
  416.                           j=5;
  417.                    }

  418.                    while(!k2);
  419.                    write_cmd(0x01);
  420.                    delay_1ms(1);
  421.                 }
  422.         }


  423.         if(k3==0)//選菜
  424.         {
  425.                    delay_1ms(10);
  426.                 if(k3==0)
  427.                 {
  428.                    if(m==0)
  429.                    {
  430.                    TxDate[n]=j;
  431.                    n++;
  432.                   
  433.                    }
  434.                    else
  435.                    {
  436.                     NRFSetTxMode(TxDate);//發(fā)送菜單
  437.             while(CheckACK());        //檢測(cè)是否發(fā)送完畢         
  438.                     while(!k3);
  439.                     delay_1ms(5);
  440.                }
  441. ……………………

  442. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


所有資料51hei提供下載:
基于單片機(jī)的餐飲管理系統(tǒng)設(shè)計(jì).rar (181.91 KB, 下載次數(shù): 91)




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:101808 發(fā)表于 2017-11-26 17:27 | 只看該作者
很棒的程序,支持作者!
回復(fù)

使用道具 舉報(bào)

板凳
ID:105206 發(fā)表于 2018-6-7 19:48 | 只看該作者
學(xué)習(xí)了,謝謝分享。
回復(fù)

使用道具 舉報(bào)

地板
ID:92810 發(fā)表于 2018-9-25 11:13 | 只看該作者
這個(gè)真要支持了,感覺挺有創(chuàng)意的
回復(fù)

使用道具 舉報(bào)

5#
ID:92810 發(fā)表于 2018-9-25 11:14 | 只看該作者
很棒的程序,支持作者!
回復(fù)

使用道具 舉報(bào)

6#
ID:92810 發(fā)表于 2018-9-25 11:14 | 只看該作者
這個(gè)真的是要好好學(xué)習(xí)了,真心的覺得不錯(cuò)
回復(fù)

使用道具 舉報(bào)

7#
ID:65956 發(fā)表于 2018-10-9 17:20 | 只看該作者
這種項(xiàng)目顯示如果用串口觸摸屏檔次就上去了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美亚洲国产一区二区三区 | 久久久婷 | 亚洲另类视频 | www.蜜桃av | 精品一区二区三区在线观看国产 | 香蕉91| 欧美日韩一区在线观看 | 日韩午夜电影在线观看 | 亚洲精品福利视频 | 插插宗合网 | a在线视频| 国产精品久久久久久久久久免费看 | 久久久久久亚洲精品 | 日本久草 | 日韩成人在线网址 | 国产大学生情侣呻吟视频 | 男女午夜免费视频 | 国产成人精品一区二区 | 成人精品久久日伦片大全免费 | 成人在线视频一区二区三区 | 天天操夜夜操免费视频 | 精品国产99 | 日日草夜夜草 | 欧美日韩中文国产一区发布 | 日韩欧美三级电影在线观看 | 91黄色片免费看 | 综合另类 | 欧美黄色片 | 日本午夜一区二区三区 | 91av视频| 国产精品欧美一区二区 | 天天看逼 | 国产精品 欧美精品 | 国产成人精品一区二区三区 | 日韩av高清| h视频免费观看 | 青青久久久 | 视频在线一区二区 | 久久精品一区二区视频 | 国产精品网页 | 99视频在线免费观看 |