【电机控制器】STC8H1K芯片——低功耗


@TOC

前言

使用工具:
1.STC仿真器烧录器


提示:以下是本篇文章正文内容,下面案例可供参考

一、芯片手册说明

在这里插入图片描述
在这里插入图片描述

二、IDLE模式

IDLE模式的外设还会工作,例如定时器,串口等

#include "stc8h.h"
#include "intrins.h"
void INT0_Isr() interrupt 0 
{
    P34 = ~P34; //测试端口
}
void main()
{
    P_SW2 |= 0x80; //使能访问 XFR,没有冲突不用关闭
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    EX0 = 1; //使能 INT0 中断,用于唤醒 MCU
    EA = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    PCON = IDL; //MCU 进入 IDLE 模式
    // PCON = PD; //MCU 进入掉电模式
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    P35 = 0;
while (1);
}

三、PD模式

PD模式的外设停止工作

四、PD模式唤醒

唤醒后继续工作,唤醒的方式

#include "stc8h.h"
#include "intrins.h"
void INT0_Isr() interrupt 0 
{
    P10 = !P10; //测试端口
}
void INT1_Isr() interrupt 2 
{
    P10 = !P10; //测试端口
}
void INT2_Isr() interrupt 10 
{
    P10 = !P10; //测试端口
}
void INT3_Isr() interrupt 11 
{
    P10 = !P10; //测试端口
}
void INT4_Isr() interrupt 16 
{
    P10 = !P10; //测试端口
}
void main()
{
    P_SW2 |= 0x80; //使能访问 XFR,没有冲突不用关闭
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    IT0 = 0; //使能 INT0 上升沿和下降沿中断
    // IT0 = 1; //使能 INT0 下降沿中断
    EX0 = 1; //使能 INT0 中断
    IT1 = 0; //使能 INT1 上升沿和下降沿中断
    // IT1 = 1; //使能 INT1 下降沿中断
    EX1 = 1; //使能 INT1 中断
    INTCLKO = EX2; //使能 INT2 下降沿中断
    INTCLKO |= EX3; //使能 INT3 下降沿中断
    INTCLKO |= EX4; //使能 INT4 下降沿中断
    EA = 1;
    PCON = 0x02; //MCU 进入掉电模式
    _nop_(); //掉电模式被唤醒后,MCU 首先会执行此语句
    //然后再进入中断服务程序
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
while (1)
{
    P11 = ~P11;
}
}

五、实验验证

1.接线

直流稳压电源——万用表——MCU供电端口

2.视频(待填)

六、参考资料

STC8--休眠唤醒
STC8H1K08 - IDLE - 空闲模式
STC8H低功耗研究
STC8H系列—3.省电模式与唤醒控制教程
STC单片机超低功耗优化细则

总结

本文仅仅简单介绍了【电机控制器】STC8H1K芯片——低功耗,评论区欢迎讨论。