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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1353|回復: 5
收起左側

中斷點亮led燈為什么會亮

[復制鏈接]
ID:1041297 發表于 2022-8-10 11:04 | 顯示全部樓層 |閱讀模式
本帖最后由 1314love 于 2022-8-10 17:29 編輯

程序1://led燈長亮
void Timer0_Init()
{
TMOD&=0xF0; //設置定時器模式
TMOD|=0x01; //設置定時器模式TH0=64535/256; //設置定時器初值
TL0=64535%256; //設置定時器初值
TF0=0;  //清除TF0標志位
TR0=1;   //定時器0開始計時
EA=1;PT0=0;
}
int main()
{
Timer0_Init();
while(1)
{
;
}
}
void Timer0_Rountine() interrupt 1
{
P0_0=0;
}

程序2://led每隔1s閃爍
void Timer0_Init()
{
TMOD&=0xF0; //設置定時器模式
TMOD|=0x01; //設置定時器模式TH0=64535/256; //設置定時器初值
TL0=64535%256; //設置定時器初值
TF0=0;  //清除TF0標志位
TR0=1;   //定時器0開始計時
EA=1;PT0=0;
}
int main()
{
Timer0_Init();
while(1)
{
;
}
}
unsigned int T0count;
void Timer0_Rountine() interrupt 1
{
TH0=64535/256; //設置定時器初值
TL0=64535%256; //設置定時器初值
T0count++;
if(T0count>=1000)
{
T0count=0;
P2_0=~P2_0;
}
}




第一段程序的led燈為什么會長亮,就定時器不是要計數到溢出然后然后才會產生中斷才進入到中斷函數執行這條中斷函數的語句嗎?而且進去了為什么還是一直亮著的,難道是因為主函數里面的while函數沒語句才一直亮著嗎?

第二段程序的中斷函數是會自己不斷+1嗎?然后等到加到溢出了,T0count初始化為0,然后led燈就點亮,再跳到主函數的while循環,這里是不是while循環和中斷函數同時執行,等到中斷函數的值加到溢出,主函數就跳到中斷函數點亮燈。還有那個中斷給個TH0=64535/256; //設置定時器初值
TL0=64535%256; 沒想明白,有點亂呀,大伙請幫幫我.謝謝

回復

使用道具 舉報

ID:1023753 發表于 2022-8-10 13:36 | 顯示全部樓層
初始化設置燈滅,看下
回復

使用道具 舉報

ID:401564 發表于 2022-8-10 15:43 | 顯示全部樓層
為什么要搞個..........呢?
其它代碼沒有了?還是商業機密?
EA0=1;這是什么意思?
定時器啟動了嗎?
定時器中斷開啟了嗎?新手寫程序,它得是這個樣子的:有注釋,代碼完整
51hei截圖20220810154043.png

回復

使用道具 舉報

ID:121859 發表于 2022-8-10 15:45 | 顯示全部樓層
你的設置來看,定時器中斷服務程序是根本進不去的,TR0還沒有置1,也就是定時器0還沒有工作。至于燈被點亮,應該是硬件上高有效的結果。缺省狀態,IO口狀態是“高”
回復

使用道具 舉報

ID:123289 發表于 2022-8-10 16:50 | 顯示全部樓層
仔細閱讀定時器章節。
回復

使用道具 舉報

ID:1041297 發表于 2022-8-10 17:29 | 顯示全部樓層
Y_G_G 發表于 2022-8-10 15:43
為什么要搞個..........呢?
其它代碼沒有了?還是商業機密?
EA0=1;這是什么意思?

恩恩,啟動了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表