黄金会员
主题
回帖0
积分8141
阅读权限40
注册时间2013-1-5
最后登录1970-1-1
在线时间 小时
|
原来的思路:想让单片机进入掉电状态,休息16秒后,醒来闪一下灯。(灯接在P11端口上),然后再进入到掉电状态。但实际程序运行是,灯在不停的闪烁,根本没有休眠。不知是怎么回事?帮助分析一下原因?所用芯片为STC15W204S,一般的STC芯片应都可以试验。因第一次使用STC的片子,还不太熟悉。
#include "reg51.h"
#include "intrins.h"
sfr WKTCL = 0xaa; //掉电唤醒定时器计时低字节
sfr WKTCH = 0xab; //掉电唤醒定时器计时高字节
sbit P11 = P1^1;
void main()
{
WKTCL = 32000; //设置唤醒周期为488us*(49+1) = 24.4ms
WKTCH = 0x80; //使能掉电唤醒定时器
while (1)
{
PCON = 0x02; //进入掉电模式
_nop_(); //掉电模式被唤醒后,直接从此语句开始向下执行,不进入中断服务程序
_nop_();
P11 = 0; //接LED灯,低电平灯亮。
延时1秒函数——; //延时函数省略了,可以随便加个延时就行。
P11 = 1;
}
|
|