標(biāo)題: IAP15F2定時(shí)器模式 [打印本頁(yè)]

作者: 風(fēng)景第三    時(shí)間: 2017-9-16 21:00
標(biāo)題: IAP15F2定時(shí)器模式
各位大佬,我想用定時(shí)器0來設(shè)置10S讀取一次溫度并顯示在數(shù)碼管上,
當(dāng)我用IAP15單片機(jī)的定時(shí)器0的模式1(16位)時(shí)代碼如下:

void Timer0Init(void)                //1毫秒@11.0592MHz
{
        AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
        TMOD &= 0xF0;                //設(shè)置定時(shí)器模
        TMOD |= 0x01;
        TL0 = 0xCD;                    //設(shè)置定時(shí)初值
        TH0 = 0xD4;                    //設(shè)置定時(shí)初值
        TF0 = 0;                    //清除TF0標(biāo)志
        TR0 = 1;                    //定時(shí)器0開始計(jì)時(shí)
        EA=1;
        ET0=1;
}
void Time0 () interrupt 1
{
  u16 T;
          TL0 = 0xCD;                    //設(shè)置定時(shí)初值
        TH0 = 0xD4;                    //設(shè)置定時(shí)初值
  i++;
  if(i==10000)     //10s
  {
   i=0;
   T=Ds18b20ReadTemp();                                 //讀取溫度
   Tempdatapros(T);                         //數(shù)據(jù)轉(zhuǎn)換
   TF0=0;                                     //清除中斷標(biāo)志位
  }
}
啥反應(yīng)都沒有。

但是換成模式1(16位自動(dòng)重裝載時(shí)),代碼如下:

void Timer0Init(void)                //1毫秒@11.0592MHz
{
        AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
        TMOD &= 0xF0;                //設(shè)置定時(shí)器模式(16位自動(dòng)重裝載)
        TL0 = 0xCD;                    //設(shè)置定時(shí)初值
        TH0 = 0xD4;                    //設(shè)置定時(shí)初值
        TF0 = 0;                    //清除TF0標(biāo)志
        TR0 = 1;                    //定時(shí)器0開始計(jì)時(shí)
        EA=1;
        ET0=1;
}


void Time0 () interrupt 1
{
  u16 T;
  i++;
  if(i==10000)     //10s
  {
   i=0;
   T=Ds18b20ReadTemp();                                 //讀取溫度
   Tempdatapros(T);                         //數(shù)據(jù)轉(zhuǎn)換
   TF0=0;                                     //清除中斷標(biāo)志位
  }
}


結(jié)果就正確了,

有大佬知道這是為什么嗎?










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