找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1122|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

中斷點(diǎn)亮led燈為什么會(huì)亮

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 1314love 于 2022-8-10 17:29 編輯

程序1://led燈長(zhǎng)亮
void Timer0_Init()
{
TMOD&=0xF0; //設(shè)置定時(shí)器模式
TMOD|=0x01; //設(shè)置定時(shí)器模式TH0=64535/256; //設(shè)置定時(shí)器初值
TL0=64535%256; //設(shè)置定時(shí)器初值
TF0=0;  //清除TF0標(biāo)志位
TR0=1;   //定時(shí)器0開(kāi)始計(jì)時(shí)
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; //設(shè)置定時(shí)器模式
TMOD|=0x01; //設(shè)置定時(shí)器模式TH0=64535/256; //設(shè)置定時(shí)器初值
TL0=64535%256; //設(shè)置定時(shí)器初值
TF0=0;  //清除TF0標(biāo)志位
TR0=1;   //定時(shí)器0開(kāi)始計(jì)時(shí)
EA=1;PT0=0;
}
int main()
{
Timer0_Init();
while(1)
{
;
}
}
unsigned int T0count;
void Timer0_Rountine() interrupt 1
{
TH0=64535/256; //設(shè)置定時(shí)器初值
TL0=64535%256; //設(shè)置定時(shí)器初值
T0count++;
if(T0count>=1000)
{
T0count=0;
P2_0=~P2_0;
}
}




第一段程序的led燈為什么會(huì)長(zhǎng)亮,就定時(shí)器不是要計(jì)數(shù)到溢出然后然后才會(huì)產(chǎn)生中斷才進(jìn)入到中斷函數(shù)執(zhí)行這條中斷函數(shù)的語(yǔ)句嗎?而且進(jìn)去了為什么還是一直亮著的,難道是因?yàn)橹骱瘮?shù)里面的while函數(shù)沒(méi)語(yǔ)句才一直亮著嗎?

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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1023753 發(fā)表于 2022-8-10 13:36 | 只看該作者
初始化設(shè)置燈滅,看下
回復(fù)

使用道具 舉報(bào)

板凳
ID:401564 發(fā)表于 2022-8-10 15:43 | 只看該作者
為什么要搞個(gè)..........呢?
其它代碼沒(méi)有了?還是商業(yè)機(jī)密?
EA0=1;這是什么意思?
定時(shí)器啟動(dòng)了嗎?
定時(shí)器中斷開(kāi)啟了嗎?新手寫程序,它得是這個(gè)樣子的:有注釋,代碼完整


回復(fù)

使用道具 舉報(bào)

地板
ID:121859 發(fā)表于 2022-8-10 15:45 | 只看該作者
你的設(shè)置來(lái)看,定時(shí)器中斷服務(wù)程序是根本進(jìn)不去的,TR0還沒(méi)有置1,也就是定時(shí)器0還沒(méi)有工作。至于燈被點(diǎn)亮,應(yīng)該是硬件上高有效的結(jié)果。缺省狀態(tài),IO口狀態(tài)是“高”
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2022-8-10 16:50 | 只看該作者
仔細(xì)閱讀定時(shí)器章節(jié)。
回復(fù)

使用道具 舉報(bào)

6#
ID:1041297 發(fā)表于 2022-8-10 17:29 | 只看該作者
Y_G_G 發(fā)表于 2022-8-10 15:43
為什么要搞個(gè)..........呢?
其它代碼沒(méi)有了?還是商業(yè)機(jī)密?
EA0=1;這是什么意思?

恩恩,啟動(dòng)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表