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

QQ登錄

只需一步,快速開始

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

求籃球計(jì)分器程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:155192 發(fā)表于 2016-12-16 10:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如題,求籃球計(jì)分器程序
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2017-1-6 18:50 | 只看該作者
單片機(jī)籃球計(jì)分器程序http://www.torrancerestoration.com/bbs/dpj-33685-1.html
回復(fù)

使用道具 舉報(bào)

板凳
ID:577269 發(fā)表于 2020-6-11 00:48 | 只看該作者
#include <reg51.h>  #define uchar unsigned char uchar code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF}/*1~9、空格和-的字型碼*/                         ,display[8]={1,2,4,8,16,32,64,128};//動(dòng)態(tài)顯示數(shù)碼管 uchar score[2]={0,0},time[2]={12,0},byte[8]={0},j=0,h=0;//score數(shù)組記錄A、B兩隊(duì)份數(shù)time //數(shù)組記錄倒計(jì)時(shí)分、秒時(shí)間,byte //數(shù)組記錄八個(gè)數(shù)碼管的顯示字,j記 //錄按鍵s0按下的次數(shù),h記錄時(shí)間 //中斷1的次數(shù); bit start=0;                                                                //start為12分倒計(jì)時(shí)是否開始時(shí)的標(biāo)志位; sbit alrm=P3^0;                                                        //alrm為響鈴脈沖輸出端 unsigned int t=0;                                                        //響鈴脈沖個(gè)數(shù) void delay1(uchar t)                                                //延時(shí)程序,最短5ms {         unsigned char m,n,k;          for(m=t;m>0;m--)          for(n=10;n>0;n--)          for(k=250;k>0;k--);  }   void jishi()                                        //倒計(jì)時(shí)程序 {   if(start==1)                                                //如果倒計(jì)時(shí)標(biāo)志有效,則開始倒計(jì)時(shí)   {   if(time[1]==0)                                           {   if(time[0]==0)                        //如果分秒位都為0時(shí),開啟時(shí)間中斷0,輸出響鈴脈沖   {   start=0;   ET0=1;   TR0=1;   }   else                                        //如果秒位為0,分位不為0,則秒位跳為59,分位減1   {   time[0]--;   time[1]=59;   }    }   else time[1]--;                        //如果分秒位都不為0,則秒位減1   } } void TIMER0() interrupt 1 using 0                        //時(shí)間中斷0;用于產(chǎn)生響鈴脈沖 {                  TH0=0xfc;                                                //1ms的計(jì)數(shù)初始狀態(tài)         TL0=0x18;         t++;         alrm=!alrm;         if(t==5000)                                                //如果輸出5000個(gè)脈沖,則停止響鈴         {         t=0;         ET0=0;         TR0=0;         } } void TIMER1() interrupt 3 using 1 {         TH1=0x63;         TL1=0xc0;                        //50ms初始值;         if((h++)==20)         {                            // 一秒是否到,如果到,則進(jìn)行倒計(jì)時(shí)程序         h=0;         jishi();         } } void INT_0() interrupt 0 using 2                //外部中斷0,記錄按鍵按下次數(shù) {                 ET0=0;         delay1(1);                        //延時(shí)消抖         j++;         if(j==5)                                //如果按鍵s0按下五次,則歸零         j=0;         ET0=1; }  void jiaohuan()                        //分?jǐn)?shù)交換,AB兩隊(duì)換場(chǎng)程序 {         uchar temp;         temp=score[0];         score[0]=score[1];         score[1]=temp; }  void INT_1() interrupt 2 using 3                //外部中斷1 {                 ET1=0;                                                //延時(shí)消抖         delay1(1);         if(j==1)                                                //如果s0按下的次數(shù)為1次,則score[1]加1         {                 score[1]++;                 if(score[1]==100)                        //分?jǐn)?shù)到100后歸零                 score[1]=0;         }         else if(j==2)                 {                 score[0]++;                                //如果s0按下的次數(shù)為2次,則score[0]加1                 if(score[0]==100)                        //分?jǐn)?shù)到100后歸零                 score[0]=0;                 }         else if(j==3)                                //如果s0按下的次數(shù)為3次,則兩隊(duì)分?jǐn)?shù)交換                 jiaohuan();         else  if(j==4)                 //如果s0按下的次數(shù)為4次        ,則打開倒計(jì)時(shí)或關(guān)閉倒計(jì)時(shí)         start=!start;         else;         ET1=1;          } void by(void) {                         byte[5]=11;                        //第五個(gè)數(shù)碼管一直顯示為"-"                 if(j==4)                                //如果s0按下的次數(shù)為4,則顯示倒計(jì)時(shí)                 {                          byte[3]=time[0]/10;                         byte[4]=time[0]%10;                         byte[6]=time[1]/10;                         byte[7]=time[1]%10;                  }                 else                         //否則顯示比分                 {                                 byte[3]=score[0]/10;                         byte[4]=score[0]%10;                         byte[6]=score[1]/10;                         byte[7]=score[1]%10;                         }  } void blank() {         if(j==1)                //如果s0按下1次;第7、8個(gè)數(shù)碼管閃爍跳動(dòng)         {                 byte[7]=10,byte[6]=10;         }         else if(j==2)        //如果s0按下2次;第4、5個(gè)數(shù)碼管閃爍跳動(dòng)         {                 byte[3]=10,byte[4]=10;         }          else if(j==3)        //如果s0按下3次;第4、5、7、8個(gè)數(shù)碼管閃爍跳動(dòng)         {         byte[7]=10,byte[6]=10;         byte[4]=10,byte[3]=10;         }         else;  } void bitshow() {        if(h<=10)                //前半秒正常顯示,后半秒根據(jù)s0按下的次數(shù)相應(yīng)的數(shù)碼管閃爍                 by();                 else                 blank(); } void dis() {        uchar  i;            while(1)                        //        死循環(huán)顯示         {                         bitshow();                        //求每一位的顯示                 for(i=3;i<=7;i++)                 {                 P0=~display[i];                //P0口控制掃描顯示的數(shù)碼管                 P1=tab[byte[i]];                //P1口輸出字型碼                 delay1(1);                        //延時(shí)5ms,增加顯示亮度                 }         }  }         void main(void) {                 TMOD=0x11;         EA=1;         EX0=1;         EX1=1;         ET1=1;         IT1=1;         IT0=1;         TR1=1;                                        //開啟時(shí)間中斷1,兩個(gè)外部中斷         IP=5;                                        //中斷優(yōu)先級(jí)控制         dis();                                        //顯示子程序  }
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表