51单片机之外部中断拙见
?外部中斷需要注意的點(diǎn)
???????? 1. 外部中斷其實(shí)是包含在中斷系統(tǒng)中的,STC89Cx系列單片機(jī)提供4個(gè)外部中斷:外部中斷0(INT0),外部中斷1(INT1),外部中斷2(INT2),外部中斷3(INT3) 。一般的基礎(chǔ)型單片機(jī)外部中斷提供前兩個(gè)外部中斷(INT0)和(INT1),增強(qiáng)型單片機(jī)多加后面兩個(gè)。
????????2. 51單片機(jī)外部中斷0(INT0)的引腳是P3^2,外部中斷1(INT1)的引腳是P3^3,這是單片機(jī)已經(jīng)固定好的,一般的套件51單片機(jī)這兩個(gè)口剛好接的按鍵KEY,所以可以使用按鍵的按下有一個(gè)下降的過(guò)程,剛好可以下降沿方式觸發(fā)外部中斷。
????????3. 在外部中斷服務(wù)程序里面不要寫(xiě)復(fù)雜的代碼,printf()函數(shù),添加比較長(zhǎng)的延時(shí),因?yàn)橐WC中斷的快進(jìn)快出,這樣可以主程序就不會(huì)受中斷的頻繁侵入而影響。中斷服務(wù)程序中關(guān)鍵字interrupt是不可以寫(xiě)錯(cuò)的,要有外部中斷1(INT1)的中斷號(hào)是2。
? ? ? ? 4.我使用按鍵來(lái)觸發(fā)外部中斷,控制LED的狀態(tài)。這是一個(gè)很不錯(cuò)的例子。
void exti0_init() {EA=1; //打開(kāi)總中斷開(kāi)關(guān)EX0=1; //中斷允許位為1IT0=1; //設(shè)置外部中斷的觸發(fā)方式,下降沿觸發(fā) }void exti0() interrupt 0 {//編寫(xiě)用戶(hù)所需功能代碼 }????????最后,這幾點(diǎn)是我個(gè)人覺(jué)得需要注意的點(diǎn),關(guān)于中斷的理論知識(shí)CSDN已經(jīng)有許多資料了,而且我也不希望浪費(fèi)大家太多時(shí)間。這是我第一次寫(xiě)CSDN博客,只是分享自己所學(xué)的知識(shí),略抒拙見(jiàn),還望海涵,若有錯(cuò)誤,及時(shí)指正,萬(wàn)分感謝,共同進(jìn)步。之所以寫(xiě)CSDN,是想給以后的自己留些痕跡。這次因?yàn)橐o學(xué)弟講課,而我是負(fù)責(zé)講51單片機(jī)的外部中斷的,所以就深入學(xué)習(xí)了一番,覺(jué)得它是很有趣的,在STM32F1和F4中都是比較重要的功能,初學(xué)者從51單片機(jī)學(xué)起確實(shí)是不錯(cuò)的選擇,我剛接觸51的時(shí)候,什么都不會(huì)的,那時(shí)候我也是學(xué)弟。現(xiàn)在從原理上講解外部中斷真的是豁然開(kāi)朗。現(xiàn)在我也是一個(gè)初學(xué)者,有問(wèn)題可以互相幫助和探討,同時(shí)希望和大家一同進(jìn)步,學(xué)習(xí)是一個(gè)持之以恒的過(guò)程,所以要堅(jiān)持下去!!!
?
?
總結(jié)
以上是生活随笔為你收集整理的51单片机之外部中断拙见的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 孤独的狼
- 下一篇: scanpy和umap版本不匹配问题总结