菜鸟关于定时器的问题

2019-07-15 16:37发布

各位大神,小弟初学单片机,请教各位,谢谢
型号STC89C52RC,晶振12M

设计是亮13秒熄灭
问题1、为什么只亮5秒多就熄灭,几乎是13秒的一半?在register里,每计时一次显示0.02秒


程序如下:
#include<reg52.h>

sbit LED=P0^0;
unsigned int cnt=0;

void mian()
{
  TMOD=0x01;
  TH0=0x3CB0;
  TL0=0x00;
  TR0=1;
  LED=0;

  while(1)
  {
    if(TF0==1)
        {
          TF0=0;
          TH0=0x3CB0;
          TL0=0x00;
          cnt++;
          if(cnt>=260)
          {
            cnt=0;
            LED=1;
          }
        }
  }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
15773135291
1楼-- · 2019-07-15 20:46
这个可以改的,时间在程序设计中可以慢慢调试出来
luanqun1
2楼-- · 2019-07-15 23:20
 精彩回答 2  元偷偷看……
yifeng2030
3楼-- · 2019-07-16 04:53
看是不是什么地方分频了
小代码
4楼-- · 2019-07-16 10:25
在该头文件<reg52.h>下    TMOD=0x01//16位定时/计数器 其中(TH0=0x3CB0;TL0=0x00;)改为
TH1=0x3c;
TL1=0xb0;

每计时一次显示0.02秒;0.02X260=5.12s
如果延长时间,可以通过设置(TH1/TL1)的值来改变每计时一次显示时间;


xp3539989
5楼-- · 2019-07-16 15:46
TH0=0x3CB0;TH0现在是八位的  你赋值为16位 肯定有问题,TMOD=0x01;你设置的是模式1,16位定时器,THL0 = 0x3C,TL0=0xB0;
LYGOK
6楼-- · 2019-07-16 19:58
TH0=0x3CB0;     这一行错了!!
          TL0=0x00;

一周热门 更多>