微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么用定时器定的时间不准确

为什么用定时器定的时间不准确

时间:10-02 整理:3721RD 点击:

定时1S,蜂鸣器的间隔明显没有1S;
代码没问题,跟教材一样的.
#include <reg52.h>
sbit fm = P2^3;      //蜂鸣器
sbit led = P1^0;  
typedef unsigned char uint8;
//typedef unsigned int  uint16;
//unsigned int counter ;
//uint8 counter = 0;
void main()
{
    uint8  counter =0;   
   
    TCON=0x1;      // 12(65536-X)/11059200
    TH0 = 0xb8;
    TL0 = 0x00;
    TR0 = 1;                                
       while(1)
       {   
               if (TF0 == 1)      //20ms延时
            {
                counter++;      
                TH0 = 0xb8;
                TL0 = 0x00;
                TF0 = 0;   
            }
            if(counter == 50)     //重复50次,得到1S延时
            {
                fm = ~fm;
                led = ~led;
                counter = 0;   
            }      
       }
}

TMOD没设置,汗

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

网站地图

Top