|
STC8芯片自動(dòng)進(jìn)入外部中斷的原因可能是因?yàn)榇嬖诟蓴_信號(hào)或者噪聲,導(dǎo)致中斷引腳觸發(fā)。即使P3口沒(méi)有連接任何外部設(shè)備,但是由于芯片內(nèi)部的電路特性,可能會(huì)引發(fā)一些干擾信號(hào)。
你的代碼中使用了INT0外部中斷,但在初始化函數(shù)INT0_init()中,只進(jìn)行了相關(guān)的中斷配置,沒(méi)有對(duì)中斷觸發(fā)方式進(jìn)行設(shè)置。根據(jù)你的代碼,INT0的中斷觸發(fā)方式(IT0)并沒(méi)有設(shè)置,默認(rèn)為電平觸發(fā)方式。可能會(huì)因?yàn)橥獠啃盘?hào)的波動(dòng)導(dǎo)致中斷觸發(fā)。
為了解決這個(gè)問(wèn)題,你可以在INT0_init()函數(shù)中添加設(shè)置中斷觸發(fā)方式的代碼。例如,如果你希望使用下降沿觸發(fā)方式,可以修改代碼如下:void INT0_init()
{
EA = 0;
IT0 = 1; // 設(shè)置INT0為下降沿觸發(fā)方式
EX0 = 1; // 允許INT0中斷
EA = 1;
}
這樣設(shè)置后,只有當(dāng)INT0引腳檢測(cè)到下降沿時(shí)才會(huì)觸發(fā)中斷。 |
|