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

STC8H4K64的IO中断不能唤醒

[复制链接]

该用户从未签到

14

主题

33

回帖

202

积分

中级会员

积分
202
发表于 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


回复 送花

使用道具 举报

  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 124 天

    [LV.7]常住居民III

    4

    主题

    235

    回帖

    856

    积分

    高级会员

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

    使用道具 举报

  • TA的每日心情
    开心
    17 小时前
  • 签到天数: 80 天

    [LV.6]常住居民II

    13

    主题

    314

    回帖

    708

    积分

    荣誉版主

    热心市民

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

    使用道具 举报

    该用户从未签到

    14

    主题

    33

    回帖

    202

    积分

    中级会员

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

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

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 40 天

    [LV.5]常住居民I

    0

    主题

    156

    回帖

    331

    积分

    中级会员

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

    使用道具 举报

    该用户从未签到

    14

    主题

    33

    回帖

    202

    积分

    中级会员

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

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

    使用道具 举报

    该用户从未签到

    14

    主题

    33

    回帖

    202

    积分

    中级会员

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

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 125 天

    [LV.7]常住居民III

    26

    主题

    1271

    回帖

    3957

    积分

    论坛元老

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

    IO口中断唤醒-汇编.zip

    10.54 KB, 下载次数: 8

    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-27 17:48 , Processed in 0.064751 second(s), 59 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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