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