森狼藤野 2025-03-30 19:10 采纳率: 63.6%
浏览 7
已结题

51单片机定时器中断


void TO()   //计时
{ 
    TMOD&=0xf0;//选择工作模式    00110001
    TMOD|=0x01;
    TH0=0;
    TL0=0;
    TF0=0;
    TR0=0;   //停止计数
}

void TC(char i)
{
    if(i)
  TR0=1;    //开始计时
    else
    TR0=0;     //停止计时
}

unsigned int Count()   //得到计时
{
    return (TH0<<8)|TL0;
}

void Settime(int time)    //设置计时器
{
    TH0=0;
    TL0=0;
}


void main()
{
          TO();
          LCD_Init();
    while(1)
    {
    Settime(0);       // 重置定时器
          TC(1);            // 启动
         Delay(100);        // 延时100毫秒
         TC(0);            // 停止
          LCD_ShowNum(1,1,Count(),10); //LCD显示屏显示
    }

}

显示屏显示的数值大于65535,为什么会大于65535

img

  • 写回答

5条回答 默认 最新

  • 森狼藤野 2025-03-31 07:41
    关注

    应该在65535以内,但现在超过了,16位的寄存器最大就65535

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月8日
  • 修改了问题 3月30日
  • 创建了问题 3月30日