单片机源程序如下:
- /*
- ==========================
- #头文件
- 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)
|