电子秒表程序仿真时到59秒后,它会闪过60再到00,为什么?

2019-07-15 16:52发布

程序仿真时到59秒后,它会闪过60再到00,为什么不是直接59然后00?谢谢!
电子秒表显示器.rar 下载积分: 积分 -1 分
40.51 KB, 下载次数: 37, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
Jack315
2019-07-15 17:20
本帖最后由 Jack315 于 2015-6-15 19:46 编辑

供 LZ 参考:
  1. // 定时器 0 中断函数
  2. void time0() interrupt 1
  3. {
  4.         u8Timer0Scaler50ms ++;                                // 定时器 0 分频器递增。
  5.         
  6.         if (u8Timer0Scaler50ms >= 20)                // 1 秒。
  7.         {
  8.                 u8Timer0Scaler50ms = 0;                        // 定时器 0 分频器清零。

  9.                 if (u8SecondOnes >= 9)                        // 10 秒。
  10.                 {
  11.                         if (u8SecondTen >= 5)                // 60 秒。
  12.                         {
  13.                                 u8SecondTen = 0;                // 秒十位清零。
  14.                         }
  15.                         else
  16.                         {
  17.                                 u8SecondTen ++;                        // 秒十位递增。
  18.                         }
  19.                         u8SecondOnes = 0;                        // 秒个位清零。
  20.                 }
  21.                 else
  22.                 {
  23.                         u8SecondOnes ++;                        // 秒个位递增。
  24.                 }

  25.                 P2 = led_mod[u8SecondOnes];                // 数码管显示低位计数值。
  26.                 P0 = led_mod[u8SecondTen];      // 数码管显示高位计数值。
  27.         }

  28.         TH0 = 0x3c;                         // T0 重载初值。
  29.         TL0 = 0xb0;
  30. } // time0 ISR
复制代码 最佳答案

一周热门 更多>