如何啓用8051的外部中斷?8051外部中斷
Q
8051外部中斷
6
A
回答
7
每個8051s中斷在中斷使能(IE
)特殊功能寄存器(SFR)中都有自己的位,並通過設置相應的位使能。下面的代碼示例在8051程序集中以及C中,以提供正在發生的一般性概念。
要啓用外部中斷0(EX0
),您需要設置位0的IE
。
SETB EX0
或ORL IE,#01
或MOV IE,#01
啓用外部中斷1(EX1
),你需要設置IE
第3位。
SETB EX1
或ORL IE,#08
或MOV IE,#08
中斷然後需要通過設置IE
第7位,它是全球interupt啓用/禁用位(EA
)全局啓用。如有必要,可以通過中斷優先級(IP
)SFR將外部中斷的優先級設置爲高。
SETB EA
或ORL IE,#80
實施例C:
#define IE (*(volatile unsigned char *)0xA8)
#define BIT(x) (1 << (x))
...
IE &= ~BIT(7); /* clear bit 7 of IE (EA) to disable interrupts */
...
IE |= BIT(0); /* set bit 0 of IE (EX0) to enable external interrupt 0 */
...
IE |= BIT(1); /* set bit 3 of IE (EX1) to enable external interrupt 1 */
...
IE ^= BIT(7) /* toggle bit 7 of IE (EA) to re-enable interrupts */
或
IE = 0x89; /* enable both external interrupts and globally enable interrupts */
各種8051個C編譯器供應商經常定義他們自己的設置中斷功能的方法。您可能需要查閱特定編譯器的文檔。
要使用Keil C51編譯器(pdf link to application note)定義中斷功能,可以指定一箇中斷號和寄存器組,其中中斷號對應於特定的中斷向量地址。
void my_external_interrupt_0_routine(void) interrupt 0 using 2
{
/* do something */
}
要使用8051 IAR C/C++編譯器(icc8051)(pdf link to reference guide),則__interrupt
關鍵字和#pragma vector
指令定義了一箇中斷功能可以使用。
#pragma vector=0x03
__interrupt void my_external_interrupt_0_routine(void)
{
/* do something */
}
如果你是新來的8051,也可在www.8052.com豐富的信息。我還建議The 8051/8052 Microcontroller: Architecture, Assembly Language, and Hardware Interfacing由網站管理員Craig Steiner和8052.com的作者撰寫。
2
很好的教程,它幫了我很多。 http://www.8052.com/tutint.phtml
相關問題
- 1. STM32外部中斷不斷觸發
- 2. ATMega AVR外部中斷
- 3. 關於客戶在kvm中處理外部中斷和外部中斷
- 4. 有沒有辦法讓外部中斷在8051微處理器的上升沿時有效?
- 5. 引腳電平變化中斷 - 帶內部中斷的外部中斷
- 6. 外部中斷0不起作用
- 7. 外部數字中斷和dht11
- 8. 如何在8051
- 9. com.thinkaurelius.titan.diskstorage.PermanentBackendException:意外中斷
- 10. 簡單的8051 C中斷事件計數器演示,不增加。
- 11. 斷開外部附件而無需斷開連接
- 12. 如何在Firebug中的外部JS腳本中設置斷點
- 13. C - 在C中增加18位8051
- 14. 8051 MCU的SHA1實現?
- 15. 8051未連接引腳
- 16. Firebug可以在外部JavaScript文件中設置斷點嗎?
- 17. STM32L1上的外部中斷設置現在不運行ISR
- 18. Highcharts條形圖在外部js中斷時
- 19. 來自主Gui模塊外部的PyQt5中斷關閉事件
- 20. Silverlight 3斷點在啓動外部程序時未命中
- 21. 在斷點被擊中後編輯外部JavaScript文件
- 22. 所有對外部模塊/ DLL的調用中斷
- 23. 如何在powerpc處理器上引導外部中斷?
- 24. 「I/O設備請求」是外部中斷還是內部異常?
- 25. 在宏內部或外部定義一個函數(高中斷)C
- 26. MOsquitto意外斷開
- 27. 外部可變外部XMLHttpRequest
- 28. VisualSVNServer中的外部
- 29. 8051串行調試監視器
- 30. 8051 UART,串行接收字節
你可能在http://chiphacker.com有更好的運氣。 – Earlz 2010-04-30 19:51:17