关于PIC单片机的“休眠”和“唤醒”

2020-02-06 10:13发布

关于PIC单片机的“休眠”和“唤醒”自己还是不太会用。希望各位大虾能给点指导。
现在主要是用PIC12F635单片机。用其中一个引脚GP0做为按键输入,其中一个引脚GP4作为输出。要达到的效果就是:平时都是“休眠”状态,当有按键按下时,单片机立即“唤醒”,GP4开始发出某段波形。就是想问一问这“休眠”与“唤醒”,具体怎么设置,希望有朋友写一小段用C的休眠和唤醒程序。让我能入个门。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
Arsenal
1楼-- · 2020-02-06 15:17
 精彩回答 2  元偷偷看……
yinqiu009
2楼-- · 2020-02-06 16:32
休眠的概念源自低功耗,如果系统没有低功耗需求,应该不要考虑这个问题。
zq186
3楼-- · 2020-02-06 19:18
void goSleep()
{
        asm("MOVLW 9");
        asm("TRIS 6");
        GP0=1;
        GP1=1;
        asm("MOVLW 79");//电平唤醒使能,弱上拉禁用,分频器分配给WDT
        asm("OPTION");
        asm("SLEEP");       
}

手头有个程序,我是这样处理进入休眠的
唤醒的话就是引脚电平变化,程序就从头开始运行
cwl0580
4楼-- · 2020-02-07 00:40
如果有电平变化中断,开启就可以了,我现在用没中断的单片机,唤醒出了点问题,顺便也向大家求教!
cwl0580
5楼-- · 2020-02-07 02:51

12f629关于休眠唤醒的描述 (原文件名:629.jpg)


mcv08关于休眠唤醒的描述 (原文件名:mcv08.jpg)


对比了12F629和MCV08两个中文手册,关于唤醒,发现如下问题:
12F629唤醒后是先进中断(如果中断开),然后从程序休眠处继续往下跑。
MCV08这类没有中断的单片机,是单片机重新复位,程序从头开始跑。
不知道我的理解是否正确!?
现在问题来了,如果MCV08是复位,那我中间运行的一些变量是不是都要重新赋初值,那就实现不了我的预想的目的了,怎么办?
millwood0
6楼-- · 2020-02-07 06:08
 精彩回答 2  元偷偷看……

一周热门 更多>