找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1463|回复: 0
打印 上一主题 下一主题
收起左侧

单片机的中断,左键右键可切换LED显示源码

[复制链接]
跳转到指定楼层
楼主
ID:333480 发表于 2018-5-19 14:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  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)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表