
当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。
使单片机进入掉电模式的指令将成为休眠前单片机执行的最后一条指令,
进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。
可由外部中断陵伏低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,
需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
可将数字万用表调节到电流档,然后串接入电路中,观察单片机在正常工作模式、休眠模式、空闲模式下流过系统的总电流变化情况,经测试可发现结果如下:正常工作电流>空闲尺亏携模式电流>掉电模式电流。
唤醒的方法:看芯片资料,上电复位,或者外部中断(有些可以,有些不行)可以从掉电模式空衡唤醒。
51单片机, 如 STC 系列单片机 ,可以中棚进入休眠状卖槐则态(或者掉电模式),待机方式(或者空闲模式),\x0d\x0a掉电模式:为 时钟停止的 所有工作状态 全部停止, 可以 有部分 IO 口触发唤醒(连接按键的功能) ,可以 通过 软件 设置 标志位 进入掉电模式\x0d\x0a空闲模式:为除了 CPU 不工作外,其余 都正常工作 如 定时器 等明仔等,可以于 中断 及 部分 IO 口触发唤醒, 可以 通过 软件 设置 标志位 进入空闲模式\x0d\x0a不是 所有 单片机 具有上述功能,要根据 单片机的 数据手册 标示。if(num==6){ET0=0
PCON=0x01
}
这个进入休眠的条件太宽松了,num=6就会或族吵休眠。
经过按键唤醒,显示num=6之后,num仍然是6,马上又会休眠。
建议在前面增加一个控制位:bit p = 0,再把休眠的条件改为即可:
if((num == 6) &&(p == 0)) {
p = 1
ET0=0
PCON=0x01
}
经过测衫侍试,这就好用穗枝了。
呵呵,解答了这么有难度的问题,分数太少了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)