【电机控制器】STC8H1K芯片——低功耗
【电机控制器】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芯片——低功耗,评论区欢迎讨论。

【电机控制器】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芯片——低功耗,评论区欢迎讨论。