找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 419|回复: 8
收起左侧

请教大神STC单片机的8A8K64D4的IO中断怎么使用?

[复制链接]
ID:465279 发表于 2022-5-4 12:39 | 显示全部楼层 |阅读模式
01.JPG

02.JPG


按照手册的例程编译,但后面这个不能理解或是说如何把这个ISP.ASM文件加入到项目中呢?
回复

使用道具 举报

ID:94031 发表于 2022-5-4 14:20 | 显示全部楼层
可以找到相关例程。
回复

使用道具 举报

ID:624769 发表于 2022-5-4 17:07 | 显示全部楼层
给你一个,我写的例子做参考吧.


EX_INT_TEST.rar (17.45 KB, 下载次数: 15)
回复

使用道具 举报

ID:220661 发表于 2022-5-4 19:21 | 显示全部楼层
这是汇编例程带中断入口地址的,可以加到汇编程序里,如果你是用C语言,就用C语言的中断函数那种。
回复

使用道具 举报

ID:514254 发表于 2022-5-4 19:24 | 显示全部楼层
比如使能P16中断
回复

使用道具 举报

ID:514254 发表于 2022-5-4 19:26 | 显示全部楼层
  1.         //使能P1.6口上升沿中断
  2.         P_SW2 |= 0x80;
  3.         P1IM0 = 0xff; //上升沿中断
  4.         P1IM1 = 0x00;
  5.         P1INTE |= 0x40; //使能 P1.6 口中断
  6.         P_SW2 &= ~0x80;
复制代码

中断定义以及函数:
  1. //使能P1.6口上升沿中断
  2. #define P1INTE (*(unsigned char volatile xdata *)0xfd01)
  3. #define P1INTF (*(unsigned char volatile xdata *)0xfd11)
  4. #define P1IM0 (*(unsigned char volatile xdata *)0xfd21)
  5. #define P1IM1 (*(unsigned char volatile xdata *)0xfd31)
  6. void common_isr() interrupt 38
  7. {
  8.         unsigned char psw2_st;
  9.         psw2_st = P_SW2;
  10.         P_SW2 |= 0x80;
  11.         P1INTE &= 0xbf;                                //关闭P1.6口中断
  12.        
  13.        

  14.         P1INTE |= 0x40;                                //使能P1.6口中断
  15.         P1INTF = 0x00;
  16.         P_SW2 = psw2_st;
  17. }
复制代码
回复

使用道具 举报

ID:514254 发表于 2022-5-4 19:27 | 显示全部楼层
对了中断号超大,需要安装这个补丁或者用中断13作为跳转,具体STC官方说明文档很详细,以上程序也参考官方

拓展Keil的C代码中断号.rar

6.01 KB, 下载次数: 14

回复

使用道具 举报

ID:465279 发表于 2022-5-4 20:36 | 显示全部楼层
xuyaqi 发表于 2022-5-4 14:20
可以找到相关例程。

我的第张图片就是例程写的,可怎么加进项目呢?
回复

使用道具 举报

ID:961114 发表于 2022-5-5 09:04 | 显示全部楼层
4444.png 55.png
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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