标题: 51单片机定时器溢出问题 [打印本页]

作者: 卫是是    时间: 2017-10-15 19:37
标题: 51单片机定时器溢出问题
#include "reg51.h"

sbit LED =P0^0;


void main()
{
        unsigned char cnt =0;
        TMOD =0X01;
        TH0 =0XDB;
        TL0 =0XFF;            //我想这个 TL0 =0XFF;(255),怎么溢出后使得   TF0 ==1的然后进入循环,好像也没什么公式让TL0自加1啊?
        TR0 =1;

        while(1)
        {
         if(1 ==TF0)
         {
          TF0 =0;
          TH0 =0XDB;
          TL0 =0XFF;
          cnt++;
          if(cnt>=100)
          {
                  cnt =0;
                LED = ~LED;
          }
         }
        }
}


作者: yzwzfyz    时间: 2017-10-15 23:52
是由单片机中的硬件系统来完成的,否则,怎么叫定时器呢?
当你需要它+1时,就下令起动它。
当你不需要它+1时,就下令关闭它。
作者: wulin    时间: 2017-10-16 10:16
一旦TR0 =1定时器即开始自动计数:TL0 每一个机器周期+1,加满256即归0并向TH0进位1,待TH0+TL0=65536时 定时器溢出标志TF0 =1,TH0、TL0全部归0,开始下一个定时周期。
作者: apay2004    时间: 2017-10-16 11:21
楼上正解




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1