微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 菜鸟关于定时器的问题

菜鸟关于定时器的问题

时间:10-02 整理:3721RD 点击:
各位大神,小弟初学单片机,请教各位,谢谢
型号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;
          }
        }
  }
}

这个可以改的,时间在程序设计中可以慢慢调试出来

调试可以,但原理上应该不会差这么多呀

看是不是什么地方分频了

在该头文件<reg52.h>下    TMOD=0x01//16位定时/计数器 其中(TH0=0x3CB0;TL0=0x00;)改为
TH1=0x3c;
TL1=0xb0;
每计时一次显示0.02秒;0.02X260=5.12s
如果延长时间,可以通过设置(TH1/TL1)的值来改变每计时一次显示时间;

TH0=0x3CB0;TH0现在是八位的  你赋值为16位 肯定有问题,TMOD=0x01;你设置的是模式1,16位定时器,THL0 = 0x3C,TL0=0xB0;

TH0=0x3CB0;     这一行错了!
          TL0=0x00;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top