欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC89單片機定時器比預定值快3倍,不知道程序那里出問題了? [打印本頁]

作者: robinsonlin    時間: 2019-5-13 22:20
標題: STC89單片機定時器比預定值快3倍,不知道程序那里出問題了?
晶振12M沒有問題, 硬件電路一切正常。  val就是自加變量,用來在LED上顯示讀秒的。   主要是為了調定時器,結果就是調不準。時間讀數快出將近3倍。 不知道哪里出問題了。  請職業高手賜教。

void ConfigTimer1(void)  //5ms定時
{
        AUXR &= 0xBF;                //定時器時鐘12T模式
        TMOD &= 0x0F;                //設置定時器模式
        TMOD |= 0x10;                //設置定時器模式
        TL1 = 0xB0;                //設置定時初值
        TH1 = 0x3c;                //設置定時初值
        TF1 = 0;                //清除TF1標志
        TR1 = 1;                //定時器1開始計時
}

void main()
{
   EA=1;
        // ET0=1;
         ET1=1;
         k1=1;
         k2=0;
  // ConfigTimer0();           //10ms
         ConfigTimer1();           //50ms
         while(1)
         {
                 LedRefresh();                 
                 LedBuffUpdate();
         }
}
void InterruptTimer1() interrupt 3
{
TH1 = 0xB0; //加載 T1 重載值
TL1 = 0x3C;
if(tmr1s>=20)
{
        val++;
        if(val>=60)
        {
                val=0;
                k1=~k1;
        }
        tmr1s=0;
}
else tmr1s++;
        
}



作者: wulin    時間: 2019-5-14 06:53
就按普通51的模式設置定時器,下載時不要勾選“使能6T模式”
void ConfigTimer1(void)  //50毫秒@12.000MHz
{
        TMOD= 0x10;                //設置定時器模式
        TL1 = 0xB0;                //設置定時初值
        TH1 = 0x3C;                //設置定時初值
        TF1 = 0;                        //清除TF1標志
        TR1 = 1;                        //定時器1開始計時
}
作者: yzwzfyz    時間: 2019-5-14 07:59
注意一下,主頻時鐘是否設置成取晶振頻率。
作者: robinsonlin    時間: 2019-5-14 11:42
yzwzfyz 發表于 2019-5-14 07:59
注意一下,主頻時鐘是否設置成取晶振頻率。

在哪里設置? 還請詳細說來,這兩天被這個定時器搞暈了。
作者: robinsonlin    時間: 2019-5-14 14:19
問題找到了。  還真是在代碼里面,看花眼了。  低級錯誤。  中斷里面重載初值時,高位和低位搞返了。哎。
作者: 酸葡萄    時間: 2019-5-15 19:14
將主頻時鐘設置成晶振頻率




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1