標題: 51單片機籃球計分器有些問題不懂 [打印本頁]

作者: seven96    時間: 2017-6-15 22:28
標題: 51單片機籃球計分器有些問題不懂
這個是我的圖,想問問有沒有什么錯誤。
還想詢問一下,如果想在加分的同時進行24秒復位,就是用一個按鍵完成這兩個任務是否可行
T0計時器進行12分鐘的計時,T1計時器同時進行24秒和14秒的倒計時可行嗎?
這里我不懂,求幫助。

13864.jpg (205.16 KB, 下載次數(shù): 98)

13864.jpg

作者: seven96    時間: 2017-6-15 22:37
void T0_init()
{
        EA=1;               
        TMOD=0x11;            
        TH0=(65536-46080)/256;
        TL0=(65536-46080)%256;        
        ET0=1;               
        TR0=0;                               
       
        TH1=(65536-46080)/256;
        TL1=(65536-46080)%256;        
        ET1=1;               
        TR1=0;                               
}

void T0_interrupt(void) interrupt 1 using 1
{                 
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;

        T0_num++;                       
        if(T0_num==20)                         
        {
                T0_num=0;                  
                if(second==0)                  
                {
                        minute--;                  
                        second=59;          
                }
                else                          
                {
                        second--;                  
                        if(second==0&&minute==0)
                        {
                                TR0=0;          
                                speaker=0;          
                        }
                }
        }                                        
}

void T1_interrupt(void) interrupt 3        using 0
{                 
        TH1=(65536-50000)/256;
        TL1=(65536-50000)%256;

        T1_num++;                          
        if(T1_num==20)                  
        {
                T1_num=0;                  
                if(second24!=0)          
                        second24--;          
                else                          
                {
                        TR1=0;                 
                        second24=24;         
                        buzzer(1);       
                }
        }                                        
}
#endif
作者: seven96    時間: 2017-6-15 22:39
void chuli(uchar key)
{
        if(key==1)                       
                bifeng[0]++;
        second24=24;
                T1_num=0;       
        if(key==2)                       
                bifeng[0]=bifeng[0]+2;
        second24=24;
                T1_num=0;       
        if(key==3)                       
                bifeng[0]=bifeng[0]+3;
        second24=24;
                T1_num=0;       
        if(key==5)                       
                bifeng[1]++;
        second24=24;
                T1_num=0;       
        if(key==6)                       
                bifeng[1]=bifeng[1]+2;
        second24=24;
                T1_num=0;       
        if(key==7)                       
                bifeng[1]=bifeng[1]+3;
        second24=24;
                T1_num=0;       
        if(key==4)                       
                if(bifeng[0]!=0)
                        bifeng[0]--;
  if(key==8)                       
                if(bifeng[1]!=0)
                        bifeng[1]--;
        if(key==14)
        {                       
                if(jieshu<4)       
                        jieshu++;       
                else
                        jieshu=1;
        }
        if(key==13)
        {                       
                TR0=~TR0;            
                if(TR0==1&&second==0&&minute==0&&T0_num==0)
                {
                        speaker=1;
                        T0_num=0;
                        second=0;       
                        minute=12;       
                }               
        }
        if(key==12)
        {                       
                TR1=~TR1;       
        }
        if(key==11)
        {
                foul[0]++;
        }
        if(key==12)
        {
                foul[1]++;
        }
        if(key==9)
        {
                pause[0]++;
        }
        if(kry==10)
        {
                pause[1]++;
        }
}
作者: seven96    時間: 2017-6-15 22:41
uchar jiema(unsigned char key)
{
   uchar n;
   switch(key)
   {
           case 24: n= 1; break;
           case 40: n= 2; break;
           case 72: n= 3; break;
           case 136: n= 4; break;
           case 20: n= 5; break;
           case 36: n= 6; break;
           case 68: n= 7; break;
           case 132: n= 8; break;
           case 18: n= 9; break;
           case 34: n= 10; break;
           case 66: n= 11; break;
           case 130: n= 12; break;
           case 17: n= 13; break;
           case 33: n= 14; break;
           case 65: n= 15; break;
           case 129: n= 16; break;
           default: break;
   }

   return n;
}
還想問一下,這里是如何定義的鍵盤號?
鍵盤換到P1口的話,case后的數(shù)會改變嗎
作者: yzwzfyz    時間: 2017-6-16 12:13
圖可以。
所提問題也都能實現(xiàn),只有一個要注意的地方:“用一個按鍵完成這兩個任務”:
當此鍵按下時,你有下列四個選擇項,你必須有選擇或區(qū)分的方式。
1、甲乙兩件事都不處理;
2、甲乙兩件事都處理;
3、做甲不做乙;
4、不做甲做乙。
作者: seven96    時間: 2017-6-17 21:04
yzwzfyz 發(fā)表于 2017-6-16 12:13
圖可以。
所提問題也都能實現(xiàn),只有一個要注意的地方:“用一個按鍵完成這兩個任務”:
當此鍵按下時,你 ...

那我要是用T1進行24秒或者14秒的倒計時,打斷那里應該怎么寫程序?
作者: cjjcjj1    時間: 2017-6-18 12:39
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1