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

2019-07-15 16:52发布

程序仿真时到59秒后,它会闪过60再到00,为什么不是直接59然后00?谢谢!
电子秒表显示器.rar 下载积分: 积分 -1 分
40.51 KB, 下载次数: 37, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
Jack315
1楼-- · 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
复制代码 最佳答案
Jack315
2楼-- · 2019-07-15 22:35
过程:
(1) 计时器 —— 59 -> 60
(2) 计时器 —— 60 -> 00
(3) 显示器 —— 显示计时器数据

(1) 和 (2) 应该合并为 59 -> 00
andy_wsj
3楼-- · 2019-07-15 22:54
 精彩回答 2  元偷偷看……
single凌风
4楼-- · 2019-07-16 01:32
Jack315 发表于 2015-6-9 16:34
过程:
(1) 计时器 —— 59 -> 60
(2) 计时器 —— 60 -> 00

噢明白了谢谢大神
single凌风
5楼-- · 2019-07-16 07:20
andy_wsj 发表于 2015-6-9 18:03
应该判断大于等于59的时候进位清零
而不是判断小于60的时候进位

对就是这个问题,刚才修改了可以了
shanshushan0
6楼-- · 2019-07-16 08:47
明显是程序问题,把程序中<60进位改为<61进位就行了

一周热门 更多>