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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3626|回復(fù): 2
收起左側(cè)

基于51單片機(jī)的乒乓球游戲源碼

[復(fù)制鏈接]
ID:311903 發(fā)表于 2018-4-26 08:52 | 顯示全部樓層 |閱讀模式
資料有點(diǎn)老了,但發(fā)現(xiàn)最近挺多人找51單片機(jī)的乒乓球游戲系統(tǒng)設(shè)計(jì),所以找出來(lái)上傳到論壇里

單片機(jī)源程序如下:
  1. #define uchar unsigned char
  2. #define uint unsigned int
  3. //sbit BALL=P1;
  4. sbit key1=P3^1;
  5. sbit key2=P3^2;
  6. sbit BUZZER = P3^3;
  7. int red=0,green=0,aa;
  8. uint nms;
  9. void Delay(int z)
  10. {
  11.         int x;
  12.         for(x=z;x>0;x--);
  13. }
  14. void Buzzer()
  15. {
  16.         int i;
  17.         while(1)
  18.         {
  19.                 BUZZER = 0;
  20.                 Delay(5);
  21.                 BUZZER = 1;
  22.                 Delay(5);
  23.                 i++;
  24.                 if(i>500)
  25.                 {
  26.                         i = 0;
  27.                         break;
  28.                 }
  29.         }
  30. }
  31. int beatscan()
  32. {
  33.         if(key1==0)
  34.         {
  35.                 delayms(10);
  36.                 if(key1==0)
  37.                 {       
  38.                         Buzzer();
  39.                         Buzzer();
  40.                         Buzzer();
  41.                         while(!key1);
  42.                         return 1;
  43.                 }
  44.         }
  45.         if(key2==0)
  46.         {
  47.                 delayms(10);
  48.                 if(key2==0)
  49.                 {       
  50.                         Buzzer();
  51.                         Buzzer();
  52.                         Buzzer();
  53.                         while(!key1);
  54.                         return 2;
  55.                 }
  56.         }
  57.         return 0;
  58. }
  59. int left()
  60. {
  61.         uint i;
  62.         aa=0xfe;
  63.         while(1)
  64.         {
  65.                 P1=aa;
  66.                 for(i=0;i<nms;i++)
  67.                         {
  68.                                 if(beatscan()==2)
  69.                                         {
  70.                                                 if(aa!=0x7f)
  71.                                                         return 0;
  72.                                                 else
  73.                                                         return 1;
  74.                                         }
  75.                                 delayms(10);
  76.                         }
  77.                 aa=_crol_(aa,1);
  78.                 if(aa==0xfe)
  79.                         return 0;
  80.         }       
  81. }
  82. int right()
  83. {
  84.         uint i;
  85.         aa=0x7f;
  86.         while(1)
  87.         {
  88.                 P1=aa;
  89.                 for(i=0;i<nms;i++)
  90.                         {
  91.                                 if(beatscan()==1)
  92.                                         {
  93.                                                 if(aa!=0xfe)
  94.                                                         return 0;
  95.                                                 else
  96.                                                         return 1;
  97.                                         }
  98.                                 delayms(10);
  99.                         }
  100.                 aa=_cror_(aa,1);
  101.                 if(aa==0x7f)
  102.                                 return 0;
  103.         }       
  104. }
  105. void left1()
  106. {
  107.         P1=0xfe;
  108.         delayms(200);
  109.         P1=0xff;
  110.         Buzzer();
  111.         Buzzer();
  112.         P1=0xfe;
  113.         while(1)
  114.         {
  115.                 if(beatscan()==1)
  116.                         break;
  117.                 delayms(20);
  118.         }
  119.         while(1)
  120.         {
  121.                 if(left())
  122.                 {
  123.                         if(right())
  124.                                 continue;
  125.                         else
  126.                         {
  127.                                 green++;
  128.                                 break;
  129.                         }
  130.                 }
  131.                 else
  132.                 {
  133.                         red++;
  134.                         break;
  135.                 }
  136.         }
  137.         Write_1602Score(red,green);
  138. }
  139. void right1()
  140. {
  141.         P1=0x7f;
  142.         delayms(200);
  143.         P1=0xff;
  144.         Buzzer();
  145.         Buzzer();
  146.         P1=0x7f;
  147.         while(1)
  148.         {
  149.                 if(beatscan()==2)
  150.                         break;
  151.                 delayms(20);
  152.         }
  153.         while(1)
  154.         {
  155.                 if(right())
  156.                 {
  157.                         if(left())
  158.                                 continue;
  159.                         else
  160.                         {
  161.                                 red++;
  162.                                 break;
  163.                         }
  164.                 }
  165.                 else
  166.                 {
  167.                         green++;
  168.                         break;
  169.                 }
  170.         }
  171.         Write_1602Score(red,green);
  172. }
  173. void pingpang()
  174. {
  175.         uint i,j;
  176.         Write_1602String(1,1,"    Welcome!     ");
  177.         delayms(10);
  178.         Write_1602String(2,1,"Wish you happy!! ");
  179. /*        for(i=0;i<16;i--)
  180.         {
  181.                 Write_1602Com(0x18);
  182.                 delayms(500);
  183.         }
  184.         delayms(2000);
  185.         for(i=0;i<16;i--)
  186.         {
  187.                 Write_1602Com(0x18);
  188.                 delayms(500);
  189.         }*/
  190.         aa=0xfe;
  191.         for(i=0;i<7;i++)
  192.         {
  193.                 P1=aa;
  194.                 BUZZER=0;
  195.                 delayms(50);
  196.                 BUZZER=1;
  197.                 delayms(50);
  198. //                Buzzer();
  199. //                Buzzer();
  200.                 P1=0xff;
  201.                 delayms(20);
  202.                 aa=_crol_(aa,1);
  203.         }
  204.         //aa=0x7f;
  205.         for(i=0;i<7;i++)
  206.         {
  207.                 P1=aa;
  208.                 BUZZER=0;
  209.                 delayms(50);
  210.                 BUZZER=1;
  211.                 delayms(50);
  212.         //        Buzzer();
  213.         //        Buzzer();
  214.                 P1=0xff;
  215.                 delayms(20);
  216.                 aa=_cror_(aa,1);
  217.         }       
  218.         for(i=0;i<7;i++)
  219.         {
  220.                 P1=aa;
  221.                 BUZZER=0;
  222.                 delayms(50);
  223.                 BUZZER=1;
  224. //                Buzzer();
  225. //                Buzzer();
  226.                 P1=0xff;
  227.                 delayms(10);
  228.                 aa=_crol_(aa,1);
  229.         }
  230.         //aa=0x7f;
  231.         for(i=0;i<8;i++)
  232.         {
  233.                 P1=aa;
  234.                 BUZZER=0;
  235.                 delayms(50);
  236.                 BUZZER=1;
  237. //                Buzzer();
  238. //                Buzzer();
  239.                 P1=0xff;
  240.                 delayms(10);
  241.                 aa=_cror_(aa,1);
  242.         }
  243.         while(1)
  244.         {
  245.         red=0;green=0;
  246.         Write_1602Com(0x01);
  247.         Write_1602String(1,1,"        Please select:  ");
  248.         Write_1602String(2,1,"1.Low 2.Mid 3.Hi");
  249.         while(1)
  250.         {
  251.                 if(Key_Scan()==1)
  252.                 {
  253.                         delayms(10);
  254.                         if(Key_Scan()==1)
  255.                         {
  256.                                 nms=60;
  257.                                 for(i=0;i<3;i++)
  258.                                 {
  259.                                         Write_1602String(1,1,"Please select:  ");
  260.                                         Write_1602String(2,1,"      2.Mid 3.Hi");
  261.                                         delayms(500);
  262.                                         Write_1602String(1,1,"Please select:  ");
  263.                                         Write_1602String(2,1,"1.Low 2.Mid 3.Hi");
  264.                                         delayms(500);
  265.                                 }
  266.                                 Write_1602String(1,1,"                ");
  267.                                 break;
  268.                         }
  269.                 }
  270.                 if(Key_Scan()==2)
  271.                 {
  272.                         delayms(10);
  273.                         if(Key_Scan()==2)
  274.                         {
  275.                                 nms=30;
  276.                                 for(i=0;i<3;i++)
  277.                                 {
  278.                                         Write_1602String(1,1,"Please select:  ");
  279.                                         Write_1602String(2,1,"1.Low       3.Hi");
  280.                                         delayms(500);
  281.                                         Write_1602String(1,1,"Please select:  ");
  282.                                         Write_1602String(2,1,"1.Low 2.Mid 3.Hi");
  283.                                         delayms(500);
  284.                                 }
  285.                                 Write_1602String(1,1,"                ");
  286.                                 break;
  287.                         }
  288.                 }
  289.                 if(Key_Scan()==3)
  290.                 {
  291.                         delayms(10);
  292.                         if(Key_Scan()==3)
  293.                         {
  294.                                 nms=10;
  295.                                 for(i=0;i<3;i++)
  296.                                 {
  297.                                         Write_1602String(1,1,"Please select:  ");
  298.                                         Write_1602String(2,1,"1.Low 2.Mid     ");
  299.                                         delayms(500);
  300.                                         Write_1602String(1,1,"Please select:  ");
  301.                                         Write_1602String(2,1,"1.Low 2.Mid 3.Hi");
  302.                                         delayms(500);
  303.                                 }
  304.                                 Write_1602String(1,1,"                ");
  305.                                 break;
  306.                         }
  307.                 }
  308.                 delayms(10);
  309.         }
  310.         Write_1602String(2,1,"   Begin now!   ");
  311.         delayms(1000);
  312.         Write_1602Com(0x01);
  313.         delayms(500);
  314.         Write_1602String(1,1,"Scores   G:R   ");
  315.         Write_1602Score(red,green);
  316.         while(1)
  317.         {
  318.                 if(((red-green>1)&&(red>=11))||((green-red>1)&&(green>=11)))
  319.                 {
  320.                         Write_1602String(1,1,"Congratulations!");
  321.                         delayms(1000);                       
  322.                         if(red>green)
  323.                         {
  324.                                 for(i=0;i<3;i++)
  325.                                 {
  326.                                 Write_1602String(1,1,"    Red Win!    ");       
  327.                                 Write_1602Score(red,green);       
  328.                                 P1=0xaa;
  329.                                 for(j=0;j<10;j++)
  330.                                         Buzzer();
  331. //                                delayms(500);
  332. //                                Buzzer1();
  333. ……………………

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

所有資料51hei提供下載:
51單片機(jī)-乒乓球游戲.zip (51.13 KB, 下載次數(shù): 41)


回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2018-4-26 18:43 | 顯示全部樓層
樓主您好 能分享個(gè)原理圖嗎?
回復(fù)

使用道具 舉報(bào)

ID:311903 發(fā)表于 2018-4-26 20:54 | 顯示全部樓層
admin 發(fā)表于 2018-4-26 18:43
樓主您好 能分享個(gè)原理圖嗎?

原理圖我再找找,不一定能找到了很久以前的了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产成人av好男人在线观看 | 四虎影视一区二区 | 国产一级网站 | 美国黄色毛片 | 日韩成人在线播放 | 日本欧美在线 | 国产午夜精品一区二区三区在线观看 | 超碰精品在线 | 一区二区三区视频在线 | 色婷婷综合久久久久中文一区二区 | 天天干天天玩天天操 | 成人精品国产免费网站 | 日本在线视频一区二区 | 黄色免费av| 成人在线视频一区 | h漫在线观看 | 在线一区视频 | 国产精品久久久久久影视 | 欧美激情免费在线 | 伊人春色在线观看 | 亚洲欧洲成人 | av天天操 | 天天干天天爱天天操 | 国产精品日本一区二区不卡视频 | 精品免费国产一区二区三区四区介绍 | 成人在线不卡 | 久久久一区二区三区四区 | 中文成人在线 | 99免费在线视频 | 成人不卡视频 | 国产精品69久久久久水密桃 | 日韩成人av在线播放 | 精品中文在线 | 亚洲日韩中文字幕一区 | 婷婷色国产偷v国产偷v小说 | 国产成人精品一区二区三区 | 免费观看a级毛片在线播放 黄网站免费入口 | 国产成人精品免费视频大全最热 | 国产成人叼嘿视频在线观看 | 亚洲视频欧美视频 | 亚洲在线成人 |