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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5473|回復: 7
打印 上一主題 下一主題
收起左側

單片機籃球計分系統Proteus仿真圖+代碼設計

  [復制鏈接]
跳轉到指定樓層
樓主
籃球計分系統設計仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)




單片機源程序:
  1. #include<reg52.h>        
  2. #include<absacc.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar code table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x77,0x7c,0x39,0x5e,0x79,0x71,0X00,0X40};//0-9
  6. uchar code wei[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};
  7. uchar fen=12,miao=0,miao_24=24,bf_miao=99;
  8. uchar stand_1[4]=0,stand_2[4]=0;
  9. uchar shijian[4]=0;

  10. uchar c1=20;  //20次1ms
  11. uchar jie=1;
  12. uint gole_1=0,gole_2=0;

  13. sbit A8=P2^0;  //段選
  14. sbit A9=P2^1; //位選 wei0-7
  15. sbit A10=P2^2;//位選 wei8-15

  16. sbit key_1=P1^0; //         計時+
  17. sbit key_2=P1^1; //                 -
  18. sbit key_3=P1^2; //         復位
  19. sbit key_4=P1^3; //          中斷
  20. sbit key_5=P1^4; //          恢復計時
  21. sbit key_6=P1^5;  //          計分+
  22. sbit key_7=P1^6;  //        計分—
  23. sbit key_8=P1^7;  //           3

  24. sbit key_9=P3^7; //         2
  25. sbit key_10=P3^6; //         1分
  26. sbit key_11=P3^5;//         A/B
  27. //sfr P00=0x80;
  28. void delay_ms(uint z)
  29. {
  30.         uint x,y;
  31.         for(x=z;x>0;x--)
  32.         {
  33.                 for(y=110;y>0;y--);
  34.         }
  35. }
  36. void IO_init()
  37. {
  38.         A8=0;A9=0;
  39. }
  40. void time_init()
  41. {
  42.         TMOD=0x01;
  43.         TH0=(65536-50000)/256;
  44.         TL0=(65536-50000)%256;
  45.         TR0 = 1;
  46.   ET0 = 1;
  47.   EA = 1;
  48. }
  49. void display2()        //bf
  50. {
  51.         uchar i,n;
  52.         for(i=0;i<=3;i++)
  53.         {
  54.                 P0=wei[i];
  55.                 A9=1;A9=0;
  56.                 P0=table[stand_1[i]];
  57.                 A8=1;A8=0;
  58.                 delay_ms(3);
  59.                 P0=0;
  60.                 A9=1;A9=0;
  61.                 A8=1;A8=0;
  62.         }
  63.         for(n=4;n<=7;n++)
  64.         {
  65.                 P0=wei[n];
  66.                 A9=1;A9=0;
  67.                 P0=table[stand_2[n-4]];
  68.                 A8=1;A8=0;
  69.                 delay_ms(3);
  70.                 P0=0;
  71.                 A9=1;A9=0;
  72.                 A8=1;A8=0;
  73.         }
  74. }

  75. void display1()        //sj
  76. {
  77.         //uchar shijian[4];
  78.         uchar i;
  79.         for(i=0;i<=3;i++)
  80.         {
  81.                 P0=wei[i];
  82.                 A10=1;A10=0;
  83.                 P0=table[shijian[i]];
  84.                 A8=1;A8=0;
  85.                 delay_ms(3);
  86.                 P0=0;
  87.                 A10=1;A10=0;
  88.                 A8=1;A8=0;
  89.         }
  90. }               
  91. void display3()
  92. {
  93.         P0=wei[6];        //jieci
  94.         A10=1;A10=0;
  95.         P0=table[jie];
  96.         A8=1;A8=0;
  97.         delay_ms(3);
  98.         P0=0;
  99.         A10=1;A10=0;
  100.         A8=1;A8=0;

  101.         P0=wei[4];
  102.         A10=1;A10=0;
  103.         P0=table[miao_24/10%10];
  104.         A8=1;A8=0;
  105.         delay_ms(3);
  106.         P0=0;
  107.         A10=1;A10=0;
  108.         A8=1;A8=0;
  109.         P0=wei[5];        
  110.         A10=1;A10=0;
  111.         P0=table[miao_24%10];
  112.         A8=1;A8=0;
  113.         delay_ms(3);
  114.         P0=0;
  115.         A10=1;A10=0;
  116.         A8=1;A8=0;
  117. }

  118. uchar temp_AorB=0,jia_jian=0;  //默認為加

  119. void keyscan()
  120. {
  121.         if(key_4==0)EA=0;//中斷
  122.         if(key_5==0)EA=1;//恢復計時
  123.         if(key_6==0)jia_jian=0;//jia
  124.         if(key_7==0)jia_jian=1;//jian

  125.         if(key_3==0)//復位
  126.         {
  127.            delay_ms(10);
  128.            if(key_3==0)
  129.            {
  130.                            while(!key_3);
  131.                         miao_24=24;
  132.            }
  133.         }
  134.         if(key_11==0)//a/b
  135.         {
  136.            delay_ms(10);
  137.            if(key_11==0)
  138.            {
  139.                            while(!key_11);
  140.                         temp_AorB=!temp_AorB;
  141.            }
  142.         }

  143.         if(temp_AorB==0)//A操作
  144.         {
  145.                 if(jia_jian==0)//+
  146.                 {
  147.                         if(key_8==0)//3
  148.                         {
  149.                                  delay_ms(10);
  150.                                  if(key_8==0)
  151.                                  {
  152.                                          while(!key_8);
  153.                                         gole_1+=3;//jia
  154.                                  }
  155.                         }
  156.                         if(key_9==0)//2
  157.                         {
  158.                                  delay_ms(10);
  159.                                  if(key_9==0)
  160.                                  {
  161.                                          while(!key_9);
  162.                                         gole_1+=2;//jia
  163.                                  }
  164.                         }
  165.                         if(key_10==0)//1
  166.                         {
  167.                                  delay_ms(10);
  168.                                  if(key_10==0)
  169.                                  {
  170.                                          while(!key_10);
  171.                                         gole_1+=1;//jia
  172.                                  }
  173.                         }
  174.                 }
  175.                 else{         //-
  176.                         if(jia_jian==1)//+
  177.                         {
  178.                                 if(key_8==0)//3
  179.                                 {
  180.                                          delay_ms(10);
  181.                                          if(key_8==0)
  182.                                          {
  183.                                                  while(!key_8);
  184.                                                 gole_1-=3;//jia
  185.                                          }
  186.                                 }
  187.                                 if(key_9==0)//2
  188.                                 {
  189.                                          delay_ms(10);
  190.                                          if(key_9==0)
  191.                                          {
  192.                                                  while(!key_9);
  193.                                                 gole_1-=2;//jia
  194.                                          }
  195.                                 }
  196.                                 if(key_10==0)//1
  197.                                 {
  198.                                          delay_ms(10);
  199.                                          if(key_10==0)
  200.                                          {
  201.                                                  while(!key_10);
  202.                                                 gole_1-=1;//jia
  203.                                          }
  204.                                 }
  205.                         }
  206.                 }
  207.         }
  208.         else{ //B操作
  209.                 if(jia_jian==0)//+
  210.                 {
  211.                         if(key_8==0)//3
  212.                         {
  213.                                  delay_ms(10);
  214.                                  if(key_8==0)
  215.                                  {
  216.                                          while(!key_8);
  217.                                         gole_2+=3;//jia
  218.                                  }
  219.                         }
  220.                         if(key_9==0)//2
  221.                         {
  222.                                  delay_ms(10);
  223.                                  if(key_9==0)
  224.                                  {
  225.                                          while(!key_9);
  226.                                         gole_2+=2;//jia
  227.                                  }
  228.                         }
  229.                         if(key_10==0)//1
  230.                         {
  231.                                  delay_ms(10);
  232.                                  if(key_10==0)
  233.                                  {
  234.                                          while(!key_10);
  235.                                         gole_2+=1;//jia
  236.                                  }
  237.                         }
  238.                 }
  239.                 else{         //-
  240.                         if(jia_jian==1)//+
  241.                         {
  242.                                 if(key_8==0)//3
  243.                                 {
  244.                                          delay_ms(10);
  245.                                          if(key_8==0)
  246.                                          {
  247.                                                  while(!key_8);
  248.                                                 gole_2-=3;//jia
  249.                                          }
  250.                                 }
  251.                                 if(key_9==0)//2
  252.                                 {
  253.                                          delay_ms(10);
  254.                                          if(key_9==0)
  255.                                          {
  256.                                                  while(!key_9);
  257.                                                 gole_2-=2;//jia
  258.                                          }
  259.                                 }
  260.                                 if(key_10==0)//1
  261.                                 {
  262.                                          delay_ms(10);
  263.                                          if(key_10==0)
  264.                                          {
  265.                                                  while(!key_10);
  266.                                                 gole_2-=1;//jia
  267.                                          }
  268.                                 }
  269.                         }
  270.                 }
  271.         }
  272. }
  273. void main()
  274. {
  275.         IO_init();
  276.         time_init();
  277.         while(1)
  278.         {
  279.                 if(jie==4)if(fen==0&&bf_miao==0&&miao==0)while(1)EA = 0;//結束
  280.                 if(gole_1<=0)gole_1=0;
  281.                 if(gole_2<=0)gole_2=0;
  282.                 keyscan();
  283.                 if(miao_24==0)EA=0;
  284.                 if(miao==0)
  285.                 {
  286.                         fen--;
  287.                         miao=59;
  288.                         if(fen==0)
  289.                         {
  290.                                 jie++;
  291.                                 if(jie==5)jie=0;
  292.                                 if(fen==0)fen=12;
  293.                         }
  294.                 }


  295.                 stand_1[0]=gole_1/1000%10;
  296.                 stand_1[1]=gole_1/100%10;
  297.                 stand_1[2]=gole_1/10%10;
  298.                 stand_1[3]=gole_1%10;
  299.                
  300.                 stand_2[0]=gole_2/1000%10;
  301.                 stand_2[1]=gole_2/100%10;
  302.                 stand_2[2]=gole_2/10%10;
  303.                 stand_2[3]=gole_2%10;

  304.                 shijian[0]=fen/10%10;
  305.                 shijian[1]=fen%10;
  306.                 shijian[2]=miao/10%10;
  307.                 shijian[3]=miao%10;

  308.                 display2();
  309.                   display1();
  310.                 display3();
  311.         }
  312. }
  313. void t0_time() interrupt 1 using 1
  314. {
  315.         TH0=(65536-50000)/256;
  316.         TL0=(65536-50000)%256;
  317.         c1=c1-1;
  318.         if(c1==0)
  319.         {
  320.                 miao--;
  321.                 miao_24--;
  322.                   c1=20;
  323.         }

  324. }
  325.         
  326.         

  327.                         
  328.                
復制代碼

所有資料51hei提供下載:
籃球計分系統.7z (69.71 KB, 下載次數: 120)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:156220 發表于 2019-1-5 11:06 | 只看該作者
謝謝樓主的資料
回復

使用道具 舉報

板凳
ID:478509 發表于 2019-2-20 15:37 | 只看該作者
感謝分享
回復

使用道具 舉報

地板
ID:478509 發表于 2019-2-20 18:15 來自手機 | 只看該作者
紫色的云 發表于 2019-1-5 11:06
謝謝樓主的資料

你打開了?  我打不開啊
回復

使用道具 舉報

5#
ID:747742 發表于 2020-5-9 16:16 | 只看該作者
感謝分享
回復

使用道具 舉報

6#
ID:757215 發表于 2020-5-21 22:47 | 只看該作者
感謝分享!!!
回復

使用道具 舉報

7#
ID:759035 發表于 2020-5-23 19:03 | 只看該作者
感謝分享
回復

使用道具 舉報

8#
ID:1009301 發表于 2022-3-11 19:12 | 只看該作者
需要用Proteus8.8版本打開
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本精品视频在线观看 | 久久91精品国产 | 中文字幕一区二区三区精彩视频 | zzzwww在线看片免费 | 国产高清视频 | 亚洲九九精品 | 亚洲精品久久久久久久久久久 | 日韩精品免费看 | 中文字幕一区在线 | 中文字幕加勒比 | 97超碰成人| 欧美一区免费 | 少妇特黄a一区二区三区88av | 成人av一区二区三区 | 美女艹b| 91免费看片| 99精品一级欧美片免费播放 | 精品96久久久久久中文字幕无 | 亚洲永久字幕 | 亚洲欧美另类在线 | 成人在线视频免费观看 | 一区二区精品电影 | 久草网站 | 中文字幕在线一 | 日本中文在线视频 | 日韩av在线一区 | 国产精品久久久久久久久 | 欧美成人性生活 | 99精品久久 | 99精品国产一区二区三区 | 自拍偷拍第一页 | 亚洲综合免费 | 男人电影天堂 | 成人在线电影在线观看 | 日韩在线观看一区 | 日韩a| 99精品一区二区 | 麻豆视频在线免费观看 | 久久国产一区二区三区 | 亚洲精品一区二区在线观看 | 黑色丝袜三级在线播放 |