關(guān)于51單片機(jī)外部中斷響應(yīng)
外部中斷方式最好設(shè)為下降沿方式,特別是中斷引腳接按鍵的情況。
外部下降沿中斷:SETB IT0。每個(gè)機(jī)器周期都由硬件對(duì)引腳自動(dòng)采樣,若連續(xù)在2個(gè)周期采樣到電平從高到低,則認(rèn)定有中斷請(qǐng)求,IE0=1。IE0會(huì)一直保持到該中斷請(qǐng)求被CPU響應(yīng),響應(yīng)前都不會(huì)自動(dòng)清零,只有在響應(yīng)后硬件才自動(dòng)將IE0清零IE0=0。
外部低電平中斷:CLR IT0。當(dāng)中斷引腳為低電平時(shí),并保持一個(gè)機(jī)器周期,硬件自動(dòng)置IE0=1。如果在下一個(gè)周期采樣到中斷引腳為高電平時(shí),硬件自動(dòng)將IE0清0。中斷標(biāo)志位自動(dòng)清0條件:下降沿中斷只有CPU響應(yīng)中斷同時(shí)才會(huì)清0,否則一直保持。低電平中斷:任何時(shí)候當(dāng)外部中斷引腳為低電平時(shí),IE0=1;為高電平時(shí),IE0=0,所以不需要響應(yīng)中斷才會(huì)清0,與引腳狀態(tài)有關(guān)。注意:當(dāng)EA=0時(shí),中斷引腳為低電平也不會(huì)將IE0自動(dòng)置1,只有EA=1時(shí)才會(huì)自動(dòng)置1
單片機(jī)設(shè)計(jì)中有兩個(gè)CPU時(shí),主CPU控制副CPU中斷時(shí)應(yīng)注意:主CPU發(fā)出中斷信號(hào)的時(shí)候,副CPU能夠及時(shí)接收到,也就是副CPU工作狀態(tài)不允許在關(guān)中斷CLR EA的程序中運(yùn)行。只要副CPU不工作在關(guān)中斷的程序中運(yùn)行,主CPU發(fā)出的中斷信號(hào)副CPU都能夠及時(shí)響應(yīng)中斷。還有就是如果采用下降沿方式,主CPU發(fā)出的高低電平之間間隔時(shí)間只需一條NOP指令。所以應(yīng)該盡可能考慮這個(gè)時(shí)差問(wèn)題。有時(shí)候就是副CPU還沒(méi)有運(yùn)行完屏蔽中斷的程序的時(shí)候,主CPU就發(fā)出了中斷信號(hào),造成副CPU無(wú)法中斷或時(shí)好時(shí)壞。
鍵盤(pán)中斷到今天為止終于可以告一段落了。
現(xiàn)在才知道,程序架構(gòu)有了并不代表程序就容易完成,更多的時(shí)間在于調(diào)試,防真,再調(diào)試,如此循環(huán)。所以遇到問(wèn)題要有耐心,信心,細(xì)心。做到這三點(diǎn),不行也得行?。。?!
51單片機(jī)相關(guān)文章:51單片機(jī)教程
評(píng)論