找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4336|回复: 6
收起左侧

51单片机篮球计分器有些问题不懂

[复制链接]
ID:169181 发表于 2017-6-15 22:28 | 显示全部楼层 |阅读模式
这个是我的图,想问问有没有什么错误。
还想询问一下,如果想在加分的同时进行24秒复位,就是用一个按键完成这两个任务是否可行
T0计时器进行12分钟的计时,T1计时器同时进行24秒和14秒的倒计时可行吗?
这里我不懂,求帮助。
13864.jpg
回复

使用道具 举报

ID:169181 发表于 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
回复

使用道具 举报

ID:169181 发表于 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]++;
        }
}
回复

使用道具 举报

ID:169181 发表于 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后的数会改变吗
回复

使用道具 举报

ID:123289 发表于 2017-6-16 12:13 | 显示全部楼层
图可以。
所提问题也都能实现,只有一个要注意的地方:“用一个按键完成这两个任务”:
当此键按下时,你有下列四个选择项,你必须有选择或区分的方式。
1、甲乙两件事都不处理;
2、甲乙两件事都处理;
3、做甲不做乙;
4、不做甲做乙。
回复

使用道具 举报

ID:169181 发表于 2017-6-17 21:04 | 显示全部楼层
yzwzfyz 发表于 2017-6-16 12:13
图可以。
所提问题也都能实现,只有一个要注意的地方:“用一个按键完成这两个任务”:
当此键按下时,你 ...

那我要是用T1进行24秒或者14秒的倒计时,打断那里应该怎么写程序?
回复

使用道具 举报

ID:82765 发表于 2017-6-18 12:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表