桐小桐 2023-06-04 21:25 采纳率: 20%
浏览 76
已结题

八路抢答器倒计时设计时显示器不输出,只能显示0

img


八路抢答器设计时,倒计时数字不动,只能显示0,无法自主变动。

  • 写回答

5条回答 默认 最新

  • cyjbj 2023-06-05 09:05
    关注
    获得2.40元问题酬金

    检查一下是不是A1的输出没有波形啊?另外,为啥不整个单片机来做昵?成本低,逻辑还好控制。

    评论
  • qllaoda 2023-06-05 09:13
    关注
    获得2.40元问题酬金

    肯定是因为没有计数脉冲过来,检查一下U14A的输出是否有脉冲

    评论 编辑记录
  • 还有头发的程序员- 2023-06-05 10:37
    关注
    获得0.45元问题酬金

    51单片机的八路抢答器设计
    可以参考下

    void main()
    {
    int djs1=60;
    Timer0_init();     //初始化定时器中断
    spk=1;              //蜂鸣器不响
            djs=60;        //倒计时赋值
    while(1)
    {
     
    LOOP1:   
    djs=djs1;
    djsxs22();    //LOOP1是标号,显示 -  --
     
    if(key1==0)         //在定时器运行状态下,key1==0 则说明1号选手按下按键
    {
       delayms(3);
       if(key1==0)
       { 
          while(!key1);      //去除按键抖动后,重新在判断,是否确实按下
          djs=60;
          while(1)
          {
             TR0=0;          //定时器停止
             djsxs();      
             if(key2==0)      //复位按下按下
             {    
                 delayms(8);           //去除抖动
                 if(key2==0)       //再次判断是否按下复位按键
                 {
                     do
                     { 
                         while(!key2); //如果按下复位键,则回到- --状态
                         delayms(5);
                     }
                     while(key2!=1);
                     djs++;
                     djs1=djs;
                 }
              }
              if(key3==0)      //复位按下按下
              {    
                 delayms(8);           //去除抖动
                 if(key3==0)       //再次判断是否按下复位按键
                 { 
                    do
                    {
                        while(!key3); //如果按下复位键,则回到- --状态
                        delayms(5);    
                    }
                    while(key3!=1);
                    djs--;
                    djs1=djs;
                 }
               }
               if(key1==0)      //复位按下按下
               {    
                  delayms(3);           //去除抖动
                  if(key1==0)       //再次判断是否按下复位按键
                  { 
                     while(!key1); //如果按下复位键,则回到- --状态
                     goto LOOP1;          //goto语句,回到loop1表号处
                  }
               }                                           
             }
           }
         }
         if(keyks==0)
         {           
            //spk=0;
            delayms(3);         //去除按键抖动
            if(keyks==0)
            { 
               while(!keyks);      //以上表示按下开始按键 
               //spk=1;               //蜂鸣器不响
               TR0=1;               //启动定时器 开始倒计时
               while(1)
               {
                  djsxs();
                  if(keytz==0)
                  {
                      delayms(3);             //此处表示出去抖动, 以后不一一标出
                      if(keytz==0)
                      { 
                         while(!keytz);       //以上表示按下停止按键后 
                         {
                            TR0=0;           //定时器停止
                            flag=0;//
                            spk=1;
                         }
     
                       }
                   }
                   if(keyks==0)
                   {
                      //spk=0;
                      delayms(3);
                      if(keyks==0)
                      { 
                         while(!keyks);       //以上表示按下清楚按键后 
                         //spk=1;               //蜂鸣器不响
                         TR0=1;           //定时器启动
     
                      }
                    }
                    .......
                  } 
     
                }
     
             }
          }
       }
    }
    
    
    评论
  • GIS工具开发 2023-06-11 10:28
    关注
    获得1.95元问题酬金

    倒计时模板工作不正常,检查一下时钟信号、硬件连接、程序代码等是否正常

    评论
  • 辞轩. 2023-06-05 08:55
    关注

    八路抢答器常见的倒计时数字不动或只显示0,通常是由以下原因导致的:

    1. 程序中计时器未被启用。在八路抢答器中,需要使用计时器控制倒计时数字的变化。如果程序中未启用计时器或计时器不正确,则可能导致倒计时数字不动或只显示0。

    2. 程序中的倒计时逻辑不正确。在八路抢答器中,通过倒计时器倒计时到0来结束抢答。如果程序中倒计时逻辑有误,则可能导致倒计时数字不动或只显示0。

    3. 倒计时数字的显示控件未正确初始化。在八路抢答器中,需要在程序中使用控件来显示倒计时数字。如果控件未正确初始化或初始化方法不正确,则可能导致倒计时数字不动或只显示0。

    针对以上原因,建议您逐一排查和检查程序中的相关部分,例如启用计时器、检查倒计时逻辑、对显示控件进行正确的初始化和使用等。同时,您也可以提供更多程序和环境上下文信息,以便可以为您提供更具体和有针对性的解决方案。

    评论

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 创建了问题 6月4日

悬赏问题

  • ¥60 PCDN如何使用宽带的电视业务通道拨号叠加带宽?
  • ¥15 遇到这种校园宽带网络应该怎么样解决?
  • ¥30 AXI VIP验证多余打印问题
  • ¥15 利用加权最小二乘法求某品牌手机价格指标,已按照总销量计算出权重,各类型号手机价格已知,如何求得价格指标?
  • ¥15 如何自制一个硬件钱包,有兴趣的朋友一起交流
  • ¥15 (关键词-聊天软件)
  • ¥15 求大家看看这个编程的编法没有思路啊
  • ¥20 WSL打开图形化程序子窗口无法点击
  • ¥15 Jupyter Notebook 数学公式不渲染
  • ¥20 ERR_CACHE_MISS 确认重新提交表单