找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请教STC15W408AS单片机专用定时器为啥唤不醒掉电状态

[复制链接]
跳转到指定楼层
楼主
我在X宝买了很厉害的一块的STC15W408AS单片机核心板,原理图如下,烧了ISP中的STC15X系列的定时唤醒掉电模式,然后傻傻的烧录了下,现在芯片醒不过来了,请问如何解决?


单片机源码:
  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC15F4K60S4 系列 掉电唤醒定时器举例----------------------------*/
  4. /* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序        */
  5. /* 如果要在文章中应用此代码,请在文章中注明使用了STC的资料及程序        */
  6. /*---------------------------------------------------------------------*/

  7. //本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
  8. //若无特别说明,工作频率一般为11.0592MHz


  9. #include "reg51.h"
  10. #include "intrins.h"

  11. //-----------------------------------------------

  12. sfr P0M1 = 0x93;
  13. sfr P0M0 = 0x94;
  14. sfr P1M1 = 0x91;
  15. sfr P1M0 = 0x92;
  16. sfr P2M1 = 0x95;
  17. sfr P2M0 = 0x96;
  18. sfr P3M1 = 0xb1;
  19. sfr P3M0 = 0xb2;
  20. sfr P4M1 = 0xb3;
  21. sfr P4M0 = 0xb4;
  22. sfr P5M1 = 0xC9;
  23. sfr P5M0 = 0xCA;
  24. sfr P6M1 = 0xCB;
  25. sfr P6M0 = 0xCC;
  26. sfr P7M1 = 0xE1;
  27. sfr P7M0 = 0xE2;

  28. sfr WKTCL = 0xaa;                   //掉电唤醒定时器计时低字节
  29. sfr WKTCH = 0xab;                   //掉电唤醒定时器计时高字节

  30. sbit P10 = P1^0;

  31. //-----------------------------------------------

  32. void main()
  33. {
  34.     P0M0 = 0x00;
  35.     P0M1 = 0x00;
  36.     P1M0 = 0x00;
  37.     P1M1 = 0x00;
  38.     P2M0 = 0x00;
  39.     P2M1 = 0x00;
  40.     P3M0 = 0x00;
  41.     P3M1 = 0x00;
  42.     P4M0 = 0x00;
  43.     P4M1 = 0x00;
  44.     P5M0 = 0x00;
  45.     P5M1 = 0x00;
  46.     P6M0 = 0x00;
  47.     P6M1 = 0x00;
  48.     P7M0 = 0x00;
  49.     P7M1 = 0x00;

  50.     WKTCL = 49;                     //设置唤醒周期为488us*(49+1) = 24.4ms
  51.     WKTCH = 0x80;                   //使能掉电唤醒定时器
  52.    
  53.     while (1)
  54.     {
  55.         PCON = 0x02;                //进入掉电模式
  56.         _nop_();                    //掉电模式被唤醒后,直接从此语句开始向下执行,不进入中断服务程序
  57.         _nop_();
  58.         P10 = !P10;                 //掉电唤醒后,取反测试口
  59.     }
  60. }

复制代码

原理图.pdf

8.96 KB, 下载次数: 23

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2018-9-18 20:38 | 只看该作者
现在芯片醒不过来了, 这个问题太笼统了

你检查一下 P1^0 接口, 有没有输出

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:241423 发表于 2018-9-20 20:25 | 只看该作者
angmall 发表于 2018-9-18 20:38
现在芯片醒不过来了, 这个问题太笼统了

你检查一下 P1^0 接口, 有没有输出

谢谢您的回复,我已经查到原因了,是板子焊锡太少,虚焊了,导致供电时灵时不灵,如今已经好了,下次买的时候我一定检查焊的东西
回复

使用道具 举报

地板
ID:975054 发表于 2021-10-31 21:12 | 只看该作者
刚碰到同样情况,不是虚焊,研究ing。。。
回复

使用道具 举报

5#
ID:401564 发表于 2021-10-31 21:20 | 只看该作者
ax6808 发表于 2021-10-31 21:12
刚碰到同样情况,不是虚焊,研究ing。。。

如果单片机一直在供电,那单片机就是掉电状态
这个时候,没有断电功能的下载器是无法下载的
有免冷启动功能的下载器是会自动断电的,上电第一件事就是烧录,就是可以下载的
超过太长时间的话,单片机又会再次进入掉电,又不能下载了
回复

使用道具 举报

6#
ID:975054 发表于 2021-10-31 21:32 | 只看该作者
Y_G_G 发表于 2021-10-31 21:20
如果单片机一直在供电,那单片机就是掉电状态
这个时候,没有断电功能的下载器是无法下载的
有免冷启动功 ...

谢谢!刚才不小心接反了,一个U口可能烧坏了,继续ing。。。
回复

使用道具 举报

7#
ID:975054 发表于 2021-10-31 21:50 | 只看该作者
Sanada 发表于 2018-9-20 20:25
谢谢您的回复,我已经查到原因了,是板子焊锡太少,虚焊了,导致供电时灵时不灵,如今已经好了,下次买的 ...

我上次买了一块,也是接LED的那个电阻虚焊,led 时亮时不亮,焊好了就好,还好MCU没虚焊
回复

使用道具 举报

8#
ID:956872 发表于 2021-10-31 22:09 来自手机 | 只看该作者
408as有必要买这板吗,直接买直插的,插面包板就能用
回复

使用道具 举报

9#
ID:975054 发表于 2021-10-31 22:58 | 只看该作者
Y_G_G 发表于 2021-10-31 21:20
如果单片机一直在供电,那单片机就是掉电状态
这个时候,没有断电功能的下载器是无法下载的
有免冷启动功 ...

感谢指导!刚才检查了一下,省电掉电状态时间设置太短了,才1秒,确实就如你说的一样原因,后来注意时间、放电干净后,先点识别或下载其他熟悉的程序后,再上电就OK了。下次设置掉电时间长一点。
另外刚才一不小心,将地线接到5V针上了,造成负压2伏,经检测,把MCUvcc脚都烧短路了,还好买了几块板子,不影响试验进度。
还有,PL2303下载器时不时识别不了,设备管理器里显示“已停产。。。。”,经常要重装驱动,还好现在都才几块钱一个,我有几个,其中有一个免冷启动的。
这段时间超低功耗改进需求,得用掉电模式。。。+硬件I2C传感器+后面控制装置。。。
回复

使用道具 举报

10#
ID:975054 发表于 2021-10-31 23:04 | 只看该作者
PEB188 发表于 2021-10-31 22:09
408as有必要买这板吗,直接买直插的,插面包板就能用

嗯,也是,我一般也先插面包板试。。。不过,现在芯片都SOP、TSSOP封装为主了,就极少买直插的了还贵。。。小核心板带点插口和LED等好用也便宜,必要时好直接焊线带走,面包板就可不带走了。。。
回复

使用道具 举报

11#
ID:975054 发表于 2021-10-31 23:07 | 只看该作者
最后一句:P10 = !P10;                 //掉电唤醒后,取反测试口
回复

使用道具 举报

12#
ID:975054 发表于 2021-10-31 23:12 | 只看该作者
最后一句:P10 = !P10;      //掉电唤醒后,取反测试口??不太清楚作用,P10是P1.0脚呀?
我搬用的是P6 = ~P6;   就是再次循环计数吧,但不明白 sfr P6 = 0xE8;  //E8H(P6)为可位寻址的数据存储器 干什么用?
回复

使用道具 举报

13#
ID:975054 发表于 2021-10-31 23:18 | 只看该作者
void main()                  
{
        unsigned char i;     //长时间休眠只有重复进入掉电模式,单次最大设置32766+1约16秒
        WKTCL = 0x99;        //原来fe,设置唤醒周期为488us*(32766+1)≈16s ,先试0999约0.5秒
        WKTCH = 0x89;        //原来ff,使能掉电唤醒定时器  1+高7位值A0
        
        while(1)
        {
                i=2;      //0.5s*i=1s  i:0.5s的倍数可调;注:内部低频振荡器误差较大需要修正
                while(i--)
                {
                    PCON = 0x02;  //进入掉电模式
                    _nop_();      //掉电模式被唤醒后,直接从此语句开始向下执行,不进入中断服务程序
                    _nop_();     //一定要在设置MCU进入掉电模式的语句后加2-4条 _nop_()
_nop_();
_nop_();

                }
                P6=~P6;         //掉电唤醒后,取反测试口?就是再次循环计数
        }
}
回复

使用道具 举报

14#
ID:624769 发表于 2021-10-31 23:32 | 只看该作者
ax6808 发表于 2021-10-31 23:18
void main()                  
{
        unsigned char i;     //长时间休眠只有重复进入掉电模式,单次最大设置32766 ...

原程序的  P10 = !P10 接的LED, 是为了通过 LED变化,确定掉电唤醒正常工作了。
即,如果进入停机状态,并且成功唤醒那么 LED会周期亮灭。
如果没有成功唤醒,则LED则不会发生变化,
如果没有成功进入掉电状态,则LED会闪的飞快,肉眼上看LED就属于一直开着从来没关过。

你的P6 有接什么? 能起到提示作用让你知道 掉电唤醒正常工作了么?
回复

使用道具 举报

15#
ID:975054 发表于 2021-11-1 00:02 | 只看该作者
188610329 发表于 2021-10-31 23:32
原程序的  P10 = !P10 接的LED, 是为了通过 LED变化,确定掉电唤醒正常工作了。
即,如果进入停机状态, ...

哦!是哦,这样可以监控掉电状态。不知到我照搬的那个程序中P6=~P6; 什么作用?
另外,近日试用的Keil4 c51软件老是死机得重装一下才能用,管理员进入也不行,非正版汉化了,序列号已过期,还没找到好用得版本。十几年前用的都是专用编程器加附送的软件,现在都串口ISPL了。。。我是WIN10。
回复

使用道具 举报

16#
ID:975054 发表于 2021-11-1 00:10 | 只看该作者
188610329 发表于 2021-10-31 23:32
原程序的  P10 = !P10 接的LED, 是为了通过 LED变化,确定掉电唤醒正常工作了。
即,如果进入停机状态, ...

哦,我搬用的原程序可能有点点不同,他原来前面还有一条语句“sfr P6 = 0xE8”的;可能他有其他用途吧!我只查到E8H(P6数据寄存器特殊)为可位寻址的数据存储器。后来我屏蔽了这一条就通过编译了。
回复

使用道具 举报

17#
ID:975054 发表于 2021-11-1 00:46 | 只看该作者
188610329 发表于 2021-10-31 23:32
原程序的  P10 = !P10 接的LED, 是为了通过 LED变化,确定掉电唤醒正常工作了。
即,如果进入停机状态, ...

我用的是20pin的,只有P1\3\5口,没其他,有内部专用定时器、I2C就可以了。8pin的I/O口不够,16pin的没TSSOP封装的,只有SOP封装的比20pin的TSSOP还占地方还贵。再次谢谢!晚安!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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