找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4948|回复: 3
收起左侧

51单片机定时器溢出问题

[复制链接]
ID:239716 发表于 2017-10-15 19:37 | 显示全部楼层 |阅读模式
#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;
          }
         }
        }
}

回复

使用道具 举报

ID:123289 发表于 2017-10-15 23:52 | 显示全部楼层
是由单片机中的硬件系统来完成的,否则,怎么叫定时器呢?
当你需要它+1时,就下令起动它。
当你不需要它+1时,就下令关闭它。

评分

参与人数 1黑币 +5 收起 理由
卫是是 + 5

查看全部评分

回复

使用道具 举报

ID:213173 发表于 2017-10-16 10:16 | 显示全部楼层
一旦TR0 =1定时器即开始自动计数:TL0 每一个机器周期+1,加满256即归0并向TH0进位1,待TH0+TL0=65536时 定时器溢出标志TF0 =1,TH0、TL0全部归0,开始下一个定时周期。

评分

参与人数 1黑币 +5 收起 理由
卫是是 + 5

查看全部评分

回复

使用道具 举报

ID:239850 发表于 2017-10-16 11:21 | 显示全部楼层
楼上正解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表