單片機源程序如下:
- /*
- ==========================
- #頭文件
- void中斷初始化函數()
- {
- 關閉全局中斷;
- 配置中斷(觸發方式等);
- 使能需要的外部中斷;
- 開啟全局中斷;
- };
- 中斷服務函數程序;
- 中斷服務函數()
- {
- 中斷服務函數內容
- }
- ==========================
- 主函數()
- {
- 端口配置
- 死循環
- {
- 執行等待進入
- 中斷;
- }
- }
- ===========================
- */
- #include <macros.h>
- #include <iom16v.h>
- void Interrupt_init(void)
- {
- CLI(); //關閉全局中斷
- MCUCR &= ~((1 << ISC10)|(1 << ISC00));//配置外部中斷的觸發方式
- MCUCR |= ((1 << ISC11)|(1 << ISC01));
- GICR |= ((1 << INT0)|(1 << INT1));//使能中斷INT0和INT1
- SEI(); //打開全局中斷
- }
- #pragma interrupt_handler int1_isr:iv_INT1
- void int1_isr(void)
- {
- PORTC = 0b01010101;
- }
- #pragma interrupt_handler int0_isr:iv_INT0
- void int0_isr(void)
- {
- PORTC = 0b10101010;
- }
- void main (void)
- {
- DDRC = 0xff;//C端口配置為輸出
- PORTC = 0xff;//全滅
- MCUCSR = 0x80; //取消C端口的復用功能
- MCUCSR = 0x80;
- Interrupt_init(); //中斷初始化
- while(1); //死循環,等待進中斷
- }
復制代碼
所有資料51hei提供下載:
中斷.zip
(8.85 KB, 下載次數: 5)
2018-5-19 14:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|