找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC15W408AS单片机外部中断2如何使用?

[复制链接]
跳转到指定楼层
楼主
各位大佬下午好!請教 STC15W408AS 外部中斷2如何使用? 我的編譯沒通過。


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

使用道具 举报

沙发
ID:388197 发表于 2019-7-23 23:28 | 只看该作者
提示是IT2没有定义,你看看有没有写错.或者说IT2所在寄存器不支持位寻址,只能用位操作来置1和清零.
回复

使用道具 举报

板凳
ID:155507 发表于 2019-7-23 23:58 | 只看该作者
没有IT2

  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC15W401AS 系列 INT2中断举例----------------------------------*/
  4. /* --- Mobile: (86)13922805190 ----------------------------------------*/
  5. /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
  6. /* --- Tel: 86-0513-55012928,55012929,55012966-------------------------*/
  7. /* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序        */
  8. /* 如果要在文章中应用此代码,请在文章中注明使用了STC的资料及程序        */
  9. /*---------------------------------------------------------------------*/

  10. //本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
  11. //若无特别说明,工作频率一般为11.0592MHz


  12. #include "reg51.h"
  13. #include "intrins.h"

  14. //-----------------------------------------------

  15. sfr P1M1 = 0x91;
  16. sfr P1M0 = 0x92;
  17. sfr P2M1 = 0x95;
  18. sfr P2M0 = 0x96;
  19. sfr P3M1 = 0xb1;
  20. sfr P3M0 = 0xb2;
  21. sfr P5M1 = 0xC9;
  22. sfr P5M0 = 0xCA;


  23. sfr INT_CLKO = 0x8f;                //外部中断与时钟输出控制寄存器
  24. sbit P10 = P1^0;

  25. //-----------------------------------------------
  26. //中断服务程序
  27. void exint2() interrupt 10          //INT2中断入口
  28. {
  29.     P10 = !P10;                     //将测试口取反
  30.    
  31. //  INT_CLKO &= 0xEF;               //若需要手动清除中断标志,可先关闭中断,此时系统会自动清除内部的中断标志
  32. //  INT_CLKO |= 0x10;               //然后再开中断即可
  33. }

  34. void main()
  35. {

  36.     P1M0 = 0x00;
  37.     P1M1 = 0x00;
  38.     P2M0 = 0x00;
  39.     P2M1 = 0x00;
  40.     P3M0 = 0x00;
  41.     P3M1 = 0x00;
  42.     P5M0 = 0x00;
  43.     P5M1 = 0x00;


  44.     INT_CLKO |= 0x10;               //(EX2 = 1)使能INT2中断
  45.     EA = 1;

  46.     while (1);
  47. }



复制代码
回复

使用道具 举报

地板
ID:213173 发表于 2019-7-24 05:28 | 只看该作者
cjm82 发表于 2019-7-23 23:28
提示是IT2没有定义,你看看有没有写错.或者说IT2所在寄存器不支持位寻址,只能用位操作来置1和清零.


回复

使用道具 举报

5#
ID:480680 发表于 2019-7-24 16:51 | 只看该作者
EX2 : 外部中断2(INT2)中断允许位,EX2=1允许中断,EX2=0禁止中断。外部中断2(INT2)同
样只能部降沿下降触发。ITN是控制是上沿还是下沿触发,比如外部中断1.
IT1:外部中断1中断源类型选择位。IT1=0,INT1/P3.3引脚上的上升沿或下降沿信号均可触发
外部中断1。IT1=1,外部中断1为下降沿触发方式
回复

使用道具 举报

6#
ID:973749 发表于 2022-8-17 10:30 | 只看该作者
官方例程有,初始化INT2只需要如下:
  1. INT_CLKO |= 0x10; //(EX2 = 1)使能INT2中断
  2. EA = 1;
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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