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

標(biāo)題: 籃球計(jì)時(shí)計(jì)分器系統(tǒng)設(shè)計(jì) 單片機(jī)源程序 原理圖 論文下載 [打印本頁(yè)]

作者: 51黑專家    時(shí)間: 2016-4-18 15:15
標(biāo)題: 籃球計(jì)時(shí)計(jì)分器系統(tǒng)設(shè)計(jì) 單片機(jī)源程序 原理圖 論文下載

籃球計(jì)時(shí)計(jì)分器系統(tǒng)設(shè)計(jì)原理圖:


籃球計(jì)時(shí)計(jì)分器系統(tǒng)設(shè)計(jì)論文預(yù)覽:


源程序:
  1. #include<reg52.h>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. uchar disbuffer[8]={0};
  8. uchar minute=0,second=0;                                //定義全局變量
  9. uchar Ascore=0,Bscore=0,temp=0;                        //
  10. uchar flage1=0;                                                        //        定義標(biāo)志位
  11. uchar flage=0;                                                        //
  12. uint count,z;                                                   //
  13. sbit bizz=P3^7;                                 //蜂鳴器
  14. sbit add1=P1^0;                                 // 加一分
  15. sbit add2=P1^1;                                 // 加兩分
  16. sbit minus1=P1^2;                         // 減一分
  17. sbit exchange=P1^3;                         // 上下半場(chǎng)換場(chǎng)時(shí)換分
  18. sbit bstop=P1^4;                         //全場(chǎng)結(jié)束 關(guān)閉蜂鳴器
  19. sbit start=P1^5;                         //開始
  20. sbit stopagain=P1^6;             //暫停  開始
  21. sbit turn=P1^7;                                 //切換 加分
  22. sbit timeadd=P3^2;                     //加時(shí)間         設(shè)定時(shí)間
  23. void ininterrupt() interrupt 1         //定時(shí)器T0中斷函數(shù)
  24. {
  25.            TH0=(65536-50000)/256;
  26.         TL0=(65536-50000)%256;
  27.         count++;
  28.         if(count==20)
  29.         {
  30.                 count=0;
  31.                 if(second==0 && minute==0)
  32.                         {
  33.                                 ET0=0;
  34.                          }
  35.                  else if(second==0 && minute!=0)
  36.                          {
  37.                                 second=59;
  38.                                 minute--;
  39.                         }
  40.                  else if(second!=0 )
  41.                          {
  42.                                 second--;
  43.                         }               
  44.         }
  45. }  
  46. void delay( )           //顯示延時(shí)函數(shù)
  47. {
  48.         uint x,y;
  49.         for(x=10;x>0;x--)
  50.                 for(y=10;y>0;y--);               
  51. }
  52. void delay1( ) //延時(shí)消抖函數(shù)16ms
  53. {
  54.         uint x,y;
  55.         for(x=10;x>0;x--)
  56.                 for(y=360;y>0;y--) ;               
  57. }
  58. void display1()
  59. {
  60.         uchar i,j;
  61.         disbuffer[3]=second%10;
  62.         disbuffer[2]=second/10;
  63.         disbuffer[1]=minute%10;       
  64.         disbuffer[0]=minute/10;
  65.         disbuffer[5]=Ascore%10;
  66.         disbuffer[4]=Ascore/10;
  67.         disbuffer[7]=Bscore%10;
  68.         disbuffer[6]=Bscore/10;
  69.         temp=0xfe;
  70.         P2=temp;
  71.         for(i=0;i<8;i++)
  72.         {
  73.                 j=disbuffer[i];
  74.                 P0=table1[j];
  75.                 delay();
  76.                 temp=_crol_(temp,1);          //調(diào)用函數(shù) 移位
  77.                 P2=temp;
  78.                
  79.         }                       
  80. }                                 
  81. void display()                 //顯示函數(shù)
  82. {
  83.         uchar i,j;
  84.         uchar temp;
  85.         disbuffer[3]=second%10;
  86.         disbuffer[2]=second/10;
  87.         disbuffer[1]=minute%10;       
  88.         disbuffer[0]=minute/10;
  89.         disbuffer[5]=Ascore%10;
  90.         disbuffer[4]=Ascore/10;
  91.         disbuffer[7]=Bscore%10;
  92.         disbuffer[6]=Bscore/10;
  93.         temp=0xfe;
  94.         P2=temp;
  95.         for(i=0;i<8;i++)
  96.         {
  97.                 j=disbuffer[i];
  98.                 P0=table[j];
  99.        
  100.                 delay();
  101.                 temp=_crol_(temp,1);                    //調(diào)用函數(shù) 移位
  102.                 P2=temp;                                                 //
  103.        
  104.         }               
  105. }

  106. void bizzer()                                                  // 蜂鳴器函數(shù)  
  107. {
  108.         while(minute==0 && second==0)           //判斷時(shí)間結(jié)束
  109.         {
  110.                 bizz=0;
  111.                 display1();
  112.                 if(!bstop==1)                                   //關(guān)閉蜂鳴器按鍵  
  113.                 {
  114.                         delay1();                                   //延時(shí)消抖
  115.                         if(!bstop==1)
  116.                         {
  117.                                 while(!bstop==1);
  118.                                 while(1)
  119.                                 {
  120.                                         bizz=1;
  121.                                         display();
  122.                                 }
  123.                         }
  124.                 }
  125.          }
  126. }                          
  127. void exinterrupt() interrupt 0                           //中斷
  128. {
  129.                 delay1();
  130.                 if(!timeadd)                                         //按鍵設(shè)置比賽時(shí)間
  131.                 {
  132.                         while(!timeadd);
  133.                         minute++;
  134.                 }       
  135. }
  136. void button()        //按鍵 函數(shù)
  137. {
  138.         if(!turn)
  139.         {
  140.                 delay1();                           //延時(shí)消抖   以下用delay1的都是延時(shí)消抖
  141.                 if(!turn)
  142.                 {
  143.                         while(!turn);
  144.                         flage+=1;                        //標(biāo)志位
  145.                 }
  146.          }
  147.         if(flage%2==0)
  148.         {
  149.                 if(!add1)
  150.                 {
  151.                         delay1();               
  152.                         if(!add1)
  153.                         {
  154.                                 while(!add1);                          //按鍵時(shí) 松手檢測(cè)
  155.                                 Ascore+=1;                                  //  A加  1  分
  156.                         }
  157.                 }
  158.                  if(!add2)
  159.                 {
  160.                         delay1();
  161.                         if(!add2)
  162.                         {
  163.                                 while(!add2);
  164.                                 Ascore+=2;
  165.                         }
  166.                 }
  167.                 if(!minus1)
  168.                 {
  169.                         delay1();
  170.                         if(!minus1)
  171.                         {
  172.                                 while(!minus1);
  173.                                 Ascore-=1;
  174.                         }
  175.                 }

  176.         }
  177.         else
  178.         {
  179.                 if(!add1)
  180.                 {
  181.                         delay1();
  182.                         if(!add1)
  183.                         {
  184.                                 while(!add1);
  185.                                 Bscore+=1;
  186.                         }
  187.                  }
  188.                  if(!add2)
  189.                 {
  190.                         delay1();
  191.                         if(!add2)
  192.                         {
  193.                                 while(!add2);
  194.                                 Bscore+=2;               
  195.                         }
  196.                 }
  197.                          if(!minus1)
  198.                         {
  199.                                 delay1();
  200.                                 if(!minus1)
  201.                                 {
  202.                                         while(!minus1);
  203.                                         Bscore-=1;       
  204.                                 }
  205.                         }
  206.         }
  207.         if(!exchange)                                  //下半場(chǎng)換場(chǎng)切換比分按鍵
  208.         {
  209.                 delay1();
  210.                 if(!exchange)
  211.                 {
  212.                         while(!exchange);
  213.                                 temp=Ascore;
  214.                                 Ascore=Bscore;
  215.                                 Bscore=temp;
  216.                 }
  217.         }
  218.         if(!stopagain)                                                 //暫停    繼續(xù)  按鍵
  219.         {
  220.                 delay1();
  221.                 if(!stopagain)
  222.                 {
  223.                         while(!stopagain);
  224.                                 flage1+=1;
  225.                 }
  226.         }
  227.         if(flage1%2==1)
  228.         {
  229.                 TR0=0;
  230.         }
  231.          else
  232.                  TR0=1;
  233.          if(!bstop==1)
  234.          {
  235.                  delay1();
  236.                 if(!bstop==1)
  237.                 {
  238.                         while(!bstop==1);
  239.                         bizz=0;
  240.                 }
  241.          }               
  242. }
  243. void main()
  244. {
  245.         while(1)
  246.         {
  247.                 display();       
  248.                 TH0=(65536-50000)/256;
  249.                 TL0=(65536-50000)%256;
  250.                 TMOD=0x01;
  251.                 EA=1;
  252.                 ET0=1;
  253.                 EX0=1;
  254.                 IT0=1;
  255.                 if(!start)
  256.                 {
  257.                         delay1();
  258.                         if(!start)
  259.                         {
  260.                                 while(!start);
  261.                                 TR0=1;
  262.                                 while(minute!=0 || second!=0 )
  263.                                 {
  264.                                         display();
  265.                                         button();
  266.                                         bizzer();
  267.                                 }
  268.                     }
  269.                        
  270.         }
  271.         }
  272. }
復(fù)制代碼

所有文件程序及其論文原理圖下載: 籃球計(jì)時(shí)計(jì)分器系統(tǒng)設(shè)計(jì).zip (1.59 MB, 下載次數(shù): 192)

作者: 小畫啊    時(shí)間: 2016-5-16 17:09
51黑有你更精彩!!!
作者: stand    時(shí)間: 2016-5-18 10:04
新人圍觀,支持支持
作者: 張恒    時(shí)間: 2016-12-2 17:54
樓主,這個(gè)為什么要設(shè)置減分系統(tǒng)啊,我覺(jué)得沒(méi)必要吧?
作者: 丁莞修    時(shí)間: 2017-2-21 21:02
這個(gè)設(shè)計(jì)說(shuō)是有記憶功能,實(shí)際上并沒(méi)有記憶時(shí)間功能,并且display1的存在沒(méi)有必要,可以刪除
作者: 丁莞修    時(shí)間: 2017-2-22 15:20
并且 時(shí)間記憶功能無(wú)法實(shí)現(xiàn),坑人
作者: 丁莞修    時(shí)間: 2017-2-22 21:36
樓主的程序沒(méi)有記憶功能是因?yàn)榉澍Q器函數(shù)循環(huán)嵌套過(guò)多,跳不出循環(huán)建議使用中斷,將蜂鳴器打開
作者: 潘廣紅    時(shí)間: 2017-4-19 17:20
樓主好人啊

作者: 6620680    時(shí)間: 2020-12-9 16:43
張恒 發(fā)表于 2016-12-2 17:54
樓主,這個(gè)為什么要設(shè)置減分系統(tǒng)啊,我覺(jué)得沒(méi)必要吧?

按錯(cuò)了的話要減回來(lái)

作者: 6620680    時(shí)間: 2020-12-9 16:47
實(shí)際上使用還是一方一個(gè)電路板好,含時(shí)間和一方分?jǐn)?shù)(都用2寸以上數(shù)碼管,尺寸已經(jīng)比較大了),做產(chǎn)品的話銷量也能翻倍
作者: zxopenljx    時(shí)間: 2020-12-11 20:18
謝謝分享
作者: 仔aa    時(shí)間: 2021-3-14 13:43
有沒(méi)有加分1.2.3的
作者: 仔aa    時(shí)間: 2021-3-14 14:15
贊贊贊有沒(méi)有24秒進(jìn)攻倒計(jì)時(shí)的




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 另类在线 | 精品一区国产 | 欧美精品一 | 日本在线免费看最新的电影 | 日韩在线播放一区 | 99久久99| 国产精品性做久久久久久 | 欧美激情精品久久久久久 | 亚洲aⅴ精品 | 欧美三级三级三级爽爽爽 | 日本在线看片 | 国产精品亚洲精品日韩已方 | 欧美1区2区 | 久久久久久久久久久高潮一区二区 | 91社区视频 | 一级片免费视频 | 成人影院免费视频 | 日韩精品久久一区二区三区 | 中文字幕 在线观看 | 精品欧美| 一本一道久久a久久精品蜜桃 | 欧美亚洲国产日韩 | 欧美猛交| av三级在线观看 | 成人国内精品久久久久一区 | 久久中文字幕一区 | 亚洲国产精品久久 | 天堂一区二区三区四区 | 在线观看国产wwwa级羞羞视频 | 国产精品久久久久久久岛一牛影视 | 午夜精品一区二区三区在线观看 | 成人啊啊啊 | 欧美日韩中文字幕在线播放 | 国产成人小视频 | 一区二区三区欧美 | 日韩一区二区福利视频 | 狠狠干天天干 | 天天弄天天操 | 国产综合网址 | 日韩av在线一区二区 | 色播99|