标题: 单片机的中断,左键右键可切换LED显示源码 [打印本页]

作者: 回老家结婚    时间: 2018-5-19 14:44
标题: 单片机的中断,左键右键可切换LED显示源码
单片机源程序如下:
  1. /*
  2. ==========================
  3. #头文件
  4. void中断初始化函数()
  5. {
  6. 关闭全局中断;
  7.         配置中断(触发方式等);
  8.         使能需要的外部中断;
  9. 开启全局中断;
  10. };

  11. 中断服务函数程序;
  12. 中断服务函数()
  13. {
  14. 中断服务函数内容
  15. }

  16. ==========================
  17. 主函数()
  18. {
  19.     端口配置
  20.     死循环
  21.         {
  22.             执行等待进入
  23.     中断;
  24.         }
  25. }
  26. ===========================
  27. */
  28. #include <macros.h>
  29. #include <iom16v.h>

  30. void Interrupt_init(void)
  31. {
  32. CLI(); //关闭全局中断
  33. MCUCR &= ~((1 << ISC10)|(1 << ISC00));//配置外部中断的触发方式
  34. MCUCR |= ((1 << ISC11)|(1 << ISC01));
  35. GICR |= ((1 << INT0)|(1 << INT1));//使能中断INT0和INT1
  36. SEI(); //打开全局中断
  37. }

  38. #pragma interrupt_handler int1_isr:iv_INT1
  39. void int1_isr(void)
  40. {
  41. PORTC = 0b01010101;
  42. }


  43. #pragma interrupt_handler int0_isr:iv_INT0
  44. void int0_isr(void)
  45. {
  46.         PORTC = 0b10101010;
  47. }

  48. void main (void)
  49. {
  50.     DDRC = 0xff;//C端口配置为输出
  51.     PORTC = 0xff;//全灭
  52.     MCUCSR = 0x80; //取消C端口的复用功能
  53.     MCUCSR = 0x80;
  54.     Interrupt_init(); //中断初始化
  55.     while(1); //死循环,等待进中断
  56. }
复制代码

所有资料51hei提供下载:
中断.zip (8.85 KB, 下载次数: 5)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1