標(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