想用51单片机的外部中断0设置单片机的空闲或者掉电模式,同时再用该中断唤醒单片机,请问程序该如何写?

想用51单片机的外部中断0设置单片机的空闲或者掉电模式,同时再用该中断唤醒单片机,请问程序该如何写?写了好几遍没调试出来(触发元件我用的是红外避障,手碰下电平由高变低)... 想用51单片机的外部中断0设置单片机的空闲或者掉电模式,同时再用该中断唤醒单片机,请问程序该如何写?写了好几遍没调试出来(触发元件我用的是红外避障,手碰下电平由高变低) 展开
 我来答
wolf_lhy
推荐于2016-09-19 · TA获得超过6609个赞
知道大有可为答主
回答量:1090
采纳率:66%
帮助的人:556万
展开全部
单片机进入空闲模式的方法:
PCON |= (1<<0);
单片机进入掉电模式的方法:
PCON |= (1<<1);
单片机允许外部中断0的程序:
EX0 = 1;
IT0 = 1;//----IT0 = 0也可以,前者是下降沿触发,后者是低电平触发,随便你.
EA = 1;

如果你允许了外部断0中断,那么,即使单片机进入空闲模式,一旺有中断,单片机就可以被唤醒继续执行.

如果你的单片机进入了掉电模式,则单片机不会响应外部中断的,或者说单片机就等于是彻底关机了.
,所以,即使你有外部中断,单片机也醒不了.

因为空闲模式,其实是让单片机的CPU睡着了,而掉电模式,则是让整个单片机睡觉,而外部中断属于单片机的一部分,因此,掉电模式使得整个单片机睡着了,那么外部中断0自然也睡着了,既然睡着了,就不会响应中断.
更多追问追答
追问
书上说掉电模式唤醒的方法有外部中断和硬件复位,外部中断应该是工作的吧
追答
是这样的,我不知道你具体用的是哪个51单片机,所谓51单片机是指,以51系列的CPU为内核,加上外围设备组成的单片机.
如果你用的是AT89C51,或者SH88F516,这个我可以保证的告诉你,掉电只有硬件复位能唤醒,外部中断是无法唤醒的,因为外部中断也是需要系统的时钟的支持才工作的,掉电模式是把整个系统的时钟全部关闭了,那么,外部中断也不例外.

如果是其他的,我就不一定保证了,但是空闲模式则是任何中断都可以使之退出的.

这样,你可以写个程序验证一下:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式