找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机入门教程源码,猿始部落官方代码正式版,第七课,外部中断。

[复制链接]
跳转到指定楼层
楼主
ID:129246 发表于 2016-7-9 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原理图在第一课中,请自行下载观看。

  1. /*************************猿始部落官方代码********************************/
  2. /*************************************************************************
  3. File name: main.c ;                                                        文件名
  4. Author: shield;                                                                作者
  5. Date: 2015.2.1;                                                                日期
  6. Email: 2842481126@qq.com;                                        邮箱地址
  7. Description: 外部中断0、1使能LED0、1亮;                        功能描述
  8. Version: V1.0.0;                                                        版本号
  9. Hardware&IDE AT89S52单片机&KEIL UVISION4;        软硬件平台
  10. Copyright (C), source code clan  Co., Ltd.;        版权
  11. History: 无;                                                                修改记录
  12. **************************************************************************/
  13. #include <reg52.h>                                //包含底层寄存器定义
  14. #define uchar unsigned char                //定义无符号字符型 8位数据 0-127
  15. #define uint  unsigned int                //定义无符号整形 16位数据 0-65535
  16. sbit LED_RUN  = P0^0;
  17. sbit LED_RUN1 = P0^1;
  18. /************************************************************************
  19. Subroutine: ex_interrupt_init;                                                子程序名称
  20. Description: 外部中断0、1初始化;                                        子程序功能的描述
  21. Principium: 外部中断0、1相关寄存器配置;                                程序设计原理
  22. Calls: 无;                                                                                        被本子程序调用的子程序清单
  23. Variables: 无;                                                                                本子程序中所用到的临时变量
  24. Input: 无;                                                                                        子程序调用所需要基本参数的说明
  25. Output: 无;                                                                                        子程序调用后运算结果的说明
  26. Stack: ;                                                                                        占用的堆栈层数
  27. History: 无;                                                                                修改记录
  28. ************************************************************************/
  29. void ex_interrupt_init()
  30. {
  31.         EA  = 1;                                //开总中断
  32.         EX1 = 1;                                //开外部中断1
  33.         EX0 = 1;                                //开外部中断0
  34.         IT1 = 1;                                //下降沿触发
  35.         IT0 = 1;                                //下降沿触发
  36.         //IT1 = 0;                                //低电平触发
  37.         //IT0 = 0;                                //低电平触发
  38. }
  39. void main()
  40. {
  41.         ex_interrupt_init();
  42.         while(1);
  43. }
  44. /************************************************************************
  45. Subroutine: ex_interrupt_service;                                        子程序名称
  46. Description: 外部中断服务程序;                                                子程序功能的描述
  47. Principium: 进入一次中断,led翻转一次;                                程序设计原理
  48. Calls: 无;                                                                                        被本子程序调用的子程序清单
  49. Variables: 无;                                                                                本子程序中所用到的临时变量
  50. Input: 无;                                                                                        子程序调用所需要基本参数的说明
  51. Output: 无;                                                                                        子程序调用后运算结果的说明
  52. Stack: ;                                                                                        占用的堆栈层数
  53. History: 无;                                                                                修改记录
  54. ************************************************************************/
  55. void ex0_interrupt_service() interrupt 0 using 1                //interrupt关键字为中断号,using为寄存器组
  56. {
  57.         LED_RUN = ~LED_RUN;                                                                        //亮灭循环
  58. }
  59. /******************************同上*************************************/
  60. void ex1_interrupt_service() interrupt 2 using 1                //interrupt关键字为中断号,using为寄存器组
  61. {
  62.         LED_RUN1 = ~LED_RUN1;                                                                //亮灭循环
  63. }
复制代码



联系方式:
QQ:2842481126
QQ群: 375907913

任何关于此文件技术类问题可以在上述QQ中交流探讨!!!谢谢!!!

key_interrupt.rar

22.75 KB, 下载次数: 5, 下载积分: 黑币 -5

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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