欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
請問這個單片機程序定時器中斷為什么沒有被執(zhí)行?
[打印本頁]
作者:
Kawhi灬
時間:
2020-4-13 11:38
標(biāo)題:
請問這個單片機程序定時器中斷為什么沒有被執(zhí)行?
這是一個溫度報警的程序,想實現(xiàn)一個5s的計時器中斷,在中斷的時候?qū)?dāng)前溫度temp的值賦給變量T。
T用作溫度報警的判斷。
在中斷里加了一個LED,仿真的時候LED沒有亮,LCD輸出的T值也一直是0,好像是因為沒有進入中斷。
請問大佬
單片機源程序如下:
/*********************************************************/
// 報警判斷
/*********************************************************/
void AlarmJudge(int dat2)
{
if((dat2-T)>5)
{
Led2_P=0;
}
else
{
Led2_P=1;
}
/*蜂鳴器報警判斷*/
if(Led2_P==0)
Buzzer_P=0;
else
Buzzer_P=1;
}
void Timer0Init() //定時器0初始化
{
TMOD=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
TH0=0X3C; //給定時器賦初值,定時1ms
TL0=0XB0;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
}
void main(void)
{
uchar i; // 循環(huán)變量
Timer0Init() ; //定時器0初始化
LcdInit(); // 液晶功能初始化
LcdShowInit(); // 液晶顯示內(nèi)容初始化
while(DS18B20_ReadTemp()==85) // 等待傳感器初始化完成
{
DelayMs(10);
}
while(1)
{
temp=DS18B20_ReadTemp(); // 讀取溫度值
LcdGotoXY(1,5); // 液晶光標(biāo)定位到第1行第5列
LcdPrintNum2(temp); // 顯示溫度值
LcdGotoXY(1,11); // 光標(biāo)定位
LcdPrintNum2(T); //顯示中間變量T
AlarmJudge(temp); // 報警判斷
for(i=0;i<15;i++) // 執(zhí)行15次循環(huán)(延時0.15秒,并在這個時間段進行按鍵掃描)
{
DelayMs(10); // 延時
}
}
}
void Timer0() interrupt 1
{
static u16 j;
TH0=0X3C; //給定時器賦初值,定時50ms
TL0=0XB0;
j++;
if(j>=500)
{
j=0;
T=temp;
Led3_P=0;
}
}
復(fù)制代碼
問題出在哪兒了?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1