找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于51单片机掉电唤醒

  [复制链接]
跳转到指定楼层
楼主
ID:378990 发表于 2021-10-29 13:58 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果单片机进入掉电模式,设置了下降沿中断,那么出现下降沿信号时,是从“进入掉电模式”之后开始执行,还是执行中断程序,然后再执行“进入掉电模式”之后的语句?。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:398094 发表于 2021-10-29 14:28 | 只看该作者
还是执行中断程序
回复

使用道具 举报

板凳
ID:959346 发表于 2021-10-29 15:02 | 只看该作者
如果开了中断,一般都是先进中断。之前也碰到过有些配置可以不进中断的,具体要看规格书,里面肯定有说明的。
回复

使用道具 举报

地板
ID:276663 发表于 2021-10-29 15:10 | 只看该作者
STC说他说要在休眠后面加两个nop,先运行nop再进入中断,STM8L是先进中断
回复

使用道具 举报

5#
ID:624769 发表于 2021-10-29 16:55 | 只看该作者
会先执行  PCON = 0x02;  这条语句之后紧跟着的一条语句,极端情况下会两条,然后才会执行中断语句。所以,为了防止误伤,PCON = 0x02; 之后会加两个nop
回复

使用道具 举报

6#
ID:213173 发表于 2021-10-29 16:58 | 只看该作者
下降沿中断唤醒首先执行掉电模式后一条指令再执行中断程序。为了保证不因此出错,所以在掉电模式语句后加两条空指令。
回复

使用道具 举报

7#
ID:378990 发表于 2021-10-30 07:52 来自手机 | 只看该作者
188610329 发表于 2021-10-29 16:55
会先执行  PCON = 0x02;  这条语句之后紧跟着的一条语句,极端情况下会两条,然后才会执行中断语句。所以, ...

原来如此,nop的作用是这样啊
回复

使用道具 举报

8#
ID:123289 发表于 2021-10-30 16:08 | 只看该作者
1、什么是掉电模式?它置起了一个标记,而这个标记切断了CPU运行的时钟,使得CPU停摆。
2、CPU在执行完成一条指令后,PC会指向下一条指令。
3、当CPU执行到此条(掉电)指令后,已指向了下一条指令,但由于掉电模式标记切断了时钟,所以无发继续取指。
4、什么是唤醒?唤醒即去除【被置起的掉电标记】,即CPU重新得到CLOCK,于是继续运行。
5、如果是中断“申请”唤醒了掉电模式,则CPU解封,将继续运行,也即执行下一条指令。
6、中断源首先是申请中断(置起中断标记),是否响应,还需要判定其它条件,判断需要时间(几个时钟周期),所以中断响应会在下个(至少是下个)指令周期的开始。
然而,由于传统的51CPU执行一条指令需要12个CLOCK(一个机器周期或指令周期),而中断申请是随机发生的,不确定它发生于第几个CLOCK,这就可能废掉几个时钟周期,再从下个指令周期开始响应(即执行一条指令后响应中断)。
所以,手册建议在掉电模式后写一、两条NOP指令。NOP指令只消耗时间,先执行,后执行无关大局。
结论:先执行掉电后的指令,再进入中断。
也可以这样理解:中断服务如果被执行,必定需要运行程序,就必须解封CPU的CLOCK,CPU一但解封,它将接续之先的运行,即进入下一条指令。而中断响应还要“领导审批”后才进行,会慢一拍。
回复

使用道具 举报

9#
ID:879348 发表于 2021-10-30 16:38 | 只看该作者
唤醒不需要开中断
回复

使用道具 举报

10#
ID:619604 发表于 2021-10-31 18:05 | 只看该作者
还是执行中断程序
回复

使用道具 举报

11#
ID:975054 发表于 2023-1-2 02:31 | 只看该作者
今天碰到个问题:
STC8 INT0和INT1设为边沿中断,一个已内部上拉,1个已外部下拉, 掉电后仍会几秒1个周期自动唤醒,不知道是被什么中断还是干扰误唤醒??????? 仍在查找问题中,其他都很正常了,就剩这个问题;
回复

使用道具 举报

12#
ID:1034262 发表于 2023-1-2 15:32 | 只看该作者
ax6808 发表于 2023-1-2 02:31
今天碰到个问题:
STC8 INT0和INT1设为边沿中断,一个已内部上拉,1个已外部下拉, 掉电后仍会几秒1个周期自动 ...

还是仔细检查下程序或外部干扰吧,多个唤醒源我很常用的。注意,一些睡眠前就允许的中断可能会唤醒,比如串口中断允许,睡眠后,串口接收脚有下降沿就会唤醒。
回复

使用道具 举报

13#
ID:823677 发表于 2023-1-7 13:30 | 只看该作者
要加两个nop,先运行nop再进入中断
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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