標題: stc52單片機定時器1,運行不了是什么問題? [打印本頁]

作者: sr861126    時間: 2023-7-10 14:22
標題: stc52單片機定時器1,運行不了是什么問題?
/*-----------------------------------------------
  名稱:定時器1
  修改:無
  內(nèi)容:通過定時讓LED燈閃爍
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

sbit LED=P1^0;    //定義LED端口
char n;
/*------------------------------------------------
                    定時器初始化子程序
------------------------------------------------*/
void Init_Timer1(void)
{
TMOD |= 0x10;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
TH1=65535-10000/256;
TL1=65535-10000%6; //定時器0的,寫入數(shù)值寄存器的低8位
EA=1;            //總中斷打開
ET1=1;           //定時器中斷打開
TR1=1;           //定時器開關(guān)打開
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
Init_Timer1();
while(1);
}
/*------------------------------------------------
                 定時器中斷子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3 using 1
{
TH1=65535-10000/256;
TL1=65535-10000%6; //定時器0的,寫入數(shù)值寄存器的低8位
   if(n>=20)
   {
             n=0;
      LED=~LED;       //LED閃爍
   }


}

作者: 13534874028    時間: 2023-7-10 15:28
不是你定時器沒有運行,是你的中斷函數(shù)里的變量n沒有自加操作呀,你的n就不可能大于20
作者: 13534874028    時間: 2023-7-10 15:29
你中斷函數(shù)里的變量n沒有自加操作,就一直是0
作者: sbskywalker    時間: 2023-7-10 15:33
這不是定時器沒有運行,而是中斷服務(wù)函數(shù)寫錯了,應(yīng)加上n++;
作者: wulin    時間: 2023-7-10 16:00
TH1、TL1賦值錯誤

TH1=65535-10000/256;
TL1=65535-10000%6;


void Init_Timer1(void)
{
        TMOD |= 0x10;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
        TH1=(65535-10000)/256;
        TL1=(65535-10000)%256; //定時器0的,寫入數(shù)值寄存器的低8位
        EA=1;            //總中斷打開
        ET1=1;           //定時器中斷打開
        TR1=1;           //定時器開關(guān)打開
}

void Timer1_isr(void) interrupt 3 using 1
{
        TH1=(65535-10000)/256;
        TL1=(65535-10000)%256; //定時器0的,寫入數(shù)值寄存器的低8位
        if(n>=20)
        {
                n=0;
                LED=~LED;       //LED閃爍
   }
}

作者: man1234567    時間: 2023-7-10 17:01
1、TH1、TL1賦值錯誤,樓上正解;
2、對于TH1、TL1賦值方式有多種樣式,具體可百度。

作者: sr861126    時間: 2023-7-11 09:15
13534874028 發(fā)表于 2023-7-10 15:29
你中斷函數(shù)里的變量n沒有自加操作,就一直是0

++了,也是一樣的

作者: coody_sz    時間: 2023-7-11 13:39
在中斷里取反一個IO,示波器看看。




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