熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-10-6 10:36
正文摘要:我用兩個(gè)按鍵控制LED,一個(gè)K1控制亮滅,一個(gè)按鍵K2接外部中斷2控制啟動(dòng)閃爍,當(dāng)K1控制燈亮?xí)r打開外部中斷2,關(guān)閉外部中斷2,燈時(shí)滅的,但是再按一下燈還是滅的,因?yàn)槲铱刂频氖堑碗娖剑瑹袅粒伊窟^引腳電壓,中斷結(jié) ... |
zhlf200212 發(fā)表于 2019-10-9 09:36 好像是我自己的思路錯(cuò)了,我想著按一下進(jìn)中斷觸發(fā)燈不斷閃爍,再按一下退出,這種思路是錯(cuò)的,中斷按一下進(jìn)去,處理結(jié)束就出來(lái)了,沒有循環(huán),那個(gè)循環(huán)亮燈也是主程序中的一部分,所以我所以為的退出中斷后,那個(gè)引腳的電平會(huì)和閃爍最后的電平一樣,也會(huì)受到主程序按鍵的影響 |
中斷觸發(fā)方式中把低電平觸發(fā)改為下降沿觸發(fā)。你用低電平觸發(fā)可能會(huì)使中斷多次發(fā)生。 |
csmyldl 發(fā)表于 2019-10-7 11:04 寫錯(cuò)了 不是外部中斷2,是外部中斷1,標(biāo)號(hào)是2,還有低電平觸發(fā)方式也是,IT1.可是這現(xiàn)象還是保持,燈亮,進(jìn)中斷閃爍之后就不亮了,在按一下還是滅的 說(shuō)明循環(huán)沒錯(cuò),回到主程序了,進(jìn)中斷之前引腳低電平,進(jìn)中斷之后,引腳自動(dòng)拉高, |
51單片機(jī)有外部中斷2沒有?K2接在P30應(yīng)該不是外部中斷,K3接在P33應(yīng)該是外部中斷1,中斷程序SHANSHUO()只有在按下K3時(shí)才進(jìn)去,在該中斷程序中又判斷K3,邏輯混亂.主程序中IT0=0是控制外部中斷0下降沿觸發(fā),這樣外部中斷1默認(rèn)是低電平觸發(fā),當(dāng)按下K3時(shí)是不斷產(chǎn)生中斷,但一旦松開,進(jìn)入中斷后,修改的EA=0可能無(wú)法回到EA=1,從而關(guān)閉了所有中斷 |
一泓秋 發(fā)表于 2019-10-7 09:58 好的 謝謝你的建議 我會(huì)改正的,剛學(xué)沒多久 ,有點(diǎn)省時(shí)間了,本來(lái)以為邏輯沒問題就搞定了,,沒想到結(jié)果出了問題 忘記修改了 |
版主這樣的程序令人看著就頭疼,我們定義的時(shí)候不僅要讓自己看明白,還得讓別人看明白 |
Powered by 單片機(jī)教程網(wǎng)