zhanghua 发表于 2024-5-21 10:21:07

STC8H08K64U 执行定时器掉电唤醒代码后,单片机再也检测不到了

本帖最后由 zhanghua 于 2024-5-21 10:22 编辑

STC8H08K64U 执行定时器掉电唤醒代码后,单片机再也检测不到了

重新上下电,用ISP软件也无法检测,如何解决?
是不是插上串口程序就休眠,然后根本没时间响应下载?


#include "reg51.h"
#include "intrins.h"

sfr   WKTCL   =   0xaa;
sfr   WKTCH   =   0xab;

sfr   P0M1    =   0x93;
sfr   P0M0    =   0x94;
sfr   P1M1    =   0x91;
sfr   P1M0    =   0x92;
sfr   P2M1    =   0x95;
sfr   P2M0    =   0x96;
sfr   P3M1    =   0xb1;
sfr   P3M0    =   0xb2;
sfr   P4M1    =   0xb3;
sfr   P4M0    =   0xb4;
sfr   P5M1    =   0xc9;
sfr   P5M0    =   0xca;

sbit    P11   =   P1^1;

void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;

    WKTCL = 0xff;                               //设定掉电唤醒时钟约为1秒钟
    WKTCH = 0x87;

    while (1)
    {
      _nop_();
      _nop_();
      PCON = 0x02;                            //MCU进入掉电模式
      _nop_();
      _nop_();
      _nop_();
      _nop_();
      P11 = ~P11;
    }
}



乘风飞扬 发表于 2024-5-21 10:36:19

STC单片机进入休眠后功耗非常低,板子上的电容都能支撑工作一段时间。
而烧录时需要对MCU进行上电复位到系统ISP区域才能触发烧录。
如果断电时间太短的话,板子上的电容没那么快放光,无法触发芯片产生掉电复位,从而触发不了ISP下载。

_奶咖君_ 发表于 2024-5-21 11:21:24

断电之后 拿镊子放放电(不知道你怎么用,你自己评估危险性哦{:4_229:}) ,,然后在上电下载。。

soma 发表于 2024-5-21 11:31:58

板子什么用的,建议加上USB下载代码,按P3.2进入USB模式这样就不怕进不来ISP模式了

zhanghua 发表于 2024-5-21 16:56:16

soma 发表于 2024-5-21 11:31
板子什么用的,建议加上USB下载代码,按P3.2进入USB模式这样就不怕进不来ISP模式了 ...

非常感谢,用USB模式可以

dumon 发表于 2024-5-22 08:49:01

用USB_HID下载方式,即先按下P3.2不松,再对单片机断电,单片机重新上电,最后再放开P3.2。这样能进入USB-HID下载方式。
我有次写程序,不小心把P3口全部写低电平,最后也是用此方式重新下载程序。

zhanghua 发表于 2024-5-22 16:15:15

dumon 发表于 2024-5-22 08:49
用USB_HID下载方式,即先按下P3.2不松,再对单片机断电,单片机重新上电,最后再放开P3.2。这样能进入USB-H ...

谢谢,再请教下,STC 睡眠模式醒来后串口乱码是什么情况?
页: [1]
查看完整版本: STC8H08K64U 执行定时器掉电唤醒代码后,单片机再也检测不到了