找回密码
 立即注册
查看: 781|回复: 7

STC8H4K64的IO中断不能唤醒

[复制链接]

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-23 15:09:19 | 显示全部楼层 |阅读模式
有没有老师指导下,用IO做中断唤醒不成功,项目中用P3.2=KEY1,P1.6=DC-IN,两个IO做唤醒,其中KEY1为按键,低电平有效,DC_IN为充电输入检测,高电平有效,中断唤醒配置到主程序初始化或者睡眠子程序里面中都试过,P3.2可以唤醒,但是P1.6不行,不知道问题出在哪里,代码如下:

;休眠子程序



SLEEP:

                DJNZ    SleepDelay, SLEEP_END ;10秒未到, 循环显示秒计数
                MOV     SleepDelay, #0FFH

                JNB     KEY1, SLEEP_END     ;高电平时才进入睡眠
                JB DC_IN ,SLEEP_END   ;DC_IN低电平才进入睡眠
                LCALL   DELAY10MS  
                JNB     KEY1, SLEEP_END     ;高电平时才进入睡眠
                JB DC_IN ,SLEEP_END   ;DC_IN低电平才进入睡眠
                MOV POWER_DATA,#0H
                CLR TR0    ;


                MOV A,#40H ;P1.6上升沿中断
                MOV DPTR,#P1IM0
                MOVX @DPTR,A;
                MOV A,#00H  ;
                    MOV DPTR,#P1IM1
                MOVX @DPTR,A; P1.6上升沿中断

                MOV A,#40H    ;P1.6允许中断唤醒
                MOV DPTR,#P1WKUE
                MOVX @DPTR,A;

                MOV A,#40H;使能P1.6中断       
                MOV DPTR,#P1INTE
                MOVX @DPTR,A ;

                SETB    EX0     ;INT0 Enable
                SETB    IT0     ;INT0 下降沿中断        

                MOV     PCON, #02H     ;Sleep
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
               
L_cnt1000_NotZero:
                LJMP    Loop  ;唤醒后,进入主程序
SLEEP_END:


              RET

;P1中断子程序,在中断中关闭中断,和标志清零
P1INT_Interrupt: ;DC_IN输入中断

                PUSH PSW
                PUSH ACC
                PUSH DPL
                PUSH DPH
               
               
                MOV A,#00H;关闭能P1.6中断       
                MOV DPTR,#P1INTE
                MOVX @DPTR,A ;
               
                MOV A,#0H  ;中断标志位清零
                MOV DPTR,#P1INTF
                MOVX @DPTR,A
               
                POP DPH
                POP DPL
                POP ACC
                POP PSW
                RETI


回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:419
  • 最近打卡:2025-05-07 08:43:30

5

主题

296

回帖

2084

积分

金牌会员

积分
2084
发表于 2024-3-23 16:14:14 | 显示全部楼层
现在用汇编的越来越少了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:421
  • 最近打卡:2025-05-07 00:05:44
已绑定手机

35

主题

2107

回帖

2247

积分

荣誉版主

积分
2247
发表于 2024-3-23 16:58:06 | 显示全部楼层
你试试把边沿中断改为电平中断看能不能唤醒,疑似手册中提到的IO中断瑕疵问题,请仔细查看一下手册的内容。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-23 17:03:45 | 显示全部楼层
晓*** 发表于 2024-3-23 16:58
你试试把边沿中断改为电平中断看能不能唤醒,疑似手册中提到的IO中断瑕疵问题,请仔细查看一下手册的内容。 ...

试过了,改为高电平唤醒也不行
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:408
  • 最近打卡:2025-05-07 09:34:59

0

主题

170

回帖

1029

积分

金牌会员

积分
1029
发表于 2024-3-23 20:14:19 | 显示全部楼层
汇编代码不太懂,数据手册第686页有例子,stc-isp软件里面也 int.png 与例程。
回复 支持 反对

使用道具 举报 送花

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-23 22:35:22 | 显示全部楼层
yja*** 发表于 2024-3-23 20:14
汇编代码不太懂,数据手册第686页有例子,stc-isp软件里面也与例程。

这些是本身就是带中断唤醒功能的管脚,是可以的,比如P3.2就是可以唤醒的,我现在是用的普通IO口,P1.6,要求高电平或者上升沿唤醒,实现不了
回复 支持 反对

使用道具 举报 送花

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-25 16:54:25 | 显示全部楼层
没有哪位老师帮忙看看吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:416
  • 最近打卡:2025-05-06 08:57:51
已绑定手机

39

主题

2010

回帖

6859

积分

论坛元老

积分
6859
发表于 2024-3-25 18:19:36 | 显示全部楼层
普通IO口中断,P16唤醒休眠模式汇编例程,有需要的可参考附件:

IO口中断唤醒-汇编.zip

10.54 KB, 下载次数: 65

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-7 14:27 , Processed in 0.139761 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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