STC8 单片机低功耗延时方法

单片机延时通常方法就是跑while循环,但在低功耗要求下可以利用定时唤醒方式使MCU在延时期间睡眠,降低功耗。以STC8G1K08为例:

寄存器


WKTCH^8为使能,其余15位用于控制唤醒时间。并且在唤醒后系统会继续从掉电语句的下一句执行。

进入PD模式即可

延时计算

按照公式推导即可,支持1ms~16s单次延时

代码示例

//主频 32KHz
//延时cnt*1 ms
void Delayms_PD(unsigned int cnt)
{do{WKTCH = 0x80;WKTCL = 0x01;PCON |= PD;WKTCH = 0;WKTCL = 0;} while(--cnt);
}
//延时cnt*100 ms
void Delay100ms_PD(unsigned int cnt)
{do{WKTCH = 0x80;WKTCL = 0xcc;PCON |= PD;WKTCH = 0;WKTCL = 0;} while(--cnt);
}

简单测试

  • 利用串口以0.5s间隔发送和万用表简单测试了一下STC8G1K08的效果,正常工作电流约2.7mA,PD延时后电流约0.25mA,尤其对于低功耗要求高的场合,还可以将PD延时放入主循环中。
  • 但在中断方式下的串口接收测试中,该方法可能导致数据错误和丢失的情况,要么禁止中断响应改为查询方式,要么避免通讯中断与PD延时同时发生的情况。同样,为了避免频繁唤醒,在PD模式的出/入口应及时开/关中断响应。

STC8 单片机低功耗延时方法相关推荐

  1. c语言程序 5ms 延时,计算机单片机延时方法电脑c语言.docx

    计算机单片机延时方法电脑C 语言 您需要登录后才可以回帖登录| 注册发布 单片机是一种集成电路芯片,是采用超大规模集成电路技术把 具有数据处理能力的中央处理器CPU.随机存储器RAM.只读存储器 RO ...

  2. 单片机的延时与中断问题及解决方法

    延时与中断出错,是单片机新手在单片机开发应用过程中,经常会遇到的问题,本文汇总整理了包含了MCS-51系列单片机.MSP430单片机.C51单片机.8051F的单片机.avr单片机.STC89C52. ...

  3. STM8单片机低功耗---停机(Halt)模式实现

      在上一篇文章 STM8单片机低功耗-等待(Wait)模式实现 中介绍了低功耗模式中的等待(Wait)模式代码实现方法,这篇文章就来演示一下 停机(Halt)模式的代码实现.    停机(Halt) ...

  4. 关于stm32单片机低功耗的实现和唤醒

    关于stm32单片机低功耗的实现和唤醒 - 沙河淘金 - 博客园 关于stm32单片机低功耗的实现和唤醒 最近做的项目中要求低功耗,在单片机完成了手头上的工作之后,就进入低功耗模式,项目的需求是单片机 ...

  5. STM8单片机低功耗---活跃停机(Active Halt)模式实现-3

      在上一篇文章中使用活跃停机模式实现单片机的定时自动唤醒功能.STM8单片机低功耗-活跃停机(Active Halt)模式实现-2 通过这个实验可以看出,自动唤醒功能和定时器定时功能很类似,那么能不 ...

  6. STM8单片机低功耗---等待(Wait)模式实现

      在平时使用单片机的时候,一般不太关心功耗的问题.但是当产品需要使用电池供电的话,那么功耗问题就要必须重视起来.那么如何降低单片机的功耗呢?STM8官方资料上给我们提供了以下几点建议:   如果项目 ...

  7. STC8单片机ADC采样注意事项

    STC8单片机ADC采样注意事项 STC8单片机ADC采样注意事项 最近在做一个模块,使用宏晶公司的STC8单片机开发,模块主要使用了单片机的ADC采样功能,因为需要10个以上的通道,而且模块要经常震 ...

  8. 单片机软件延时的时间计算

    点亮LED以后,如果我们想实现LED间隔性的亮灭,我们又该怎么办呢?这里我们就需要使用单片机进行延时.延时的方法有两种,一个是使用软件延时,这个不精确,但能满足简单的需要:二是使用单片机内部的定时器, ...

  9. keil c语言 延迟程序,Keil C51程序设计中几种精确延时方法

    前几天时间在做一个基于51单片机开发板的等精度频率计,用LCD1602液晶显示的,晶振是22.1184MHZ,用得是测频率法,目的是想做到能够测试0--900KHZ的信号. 液晶显示部分花了我好几天才 ...

最新文章

  1. MySQL——MySQL的数据查询功能
  2. CLOSE_WAIT?项目上线之际遇到这样的烦心事
  3. JS replace 回调
  4. 文献记录(part59)--多任务学习
  5. 【HDU - 5468】Puzzled Elena(容斥原理,dfs序,数学,素因子分解,有坑)
  6. 合格架构师的目标管理
  7. 在X++中使用IoC/DI模式应对不断变化的客户需求
  8. java 声波 噪音过滤_攻略||让噪音一边去的隔音材料全解析!
  9. NAnt 与 MS Build
  10. Linux命令--- /dev/null和/dev/tty
  11. iOS:延时执行的三种方式
  12. 《高质量程序设计指南——C++/C》(第三版)最新修订
  13. [RTMP协议]常用直播流地址
  14. Windows 10不能安装mini版迅雷的解决方法
  15. is not backed by gradle android,Module … is not backed by gradle
  16. Excel批注教学:一键给多个单元格添加相同批注
  17. vue在移动端实现电子签名手写板
  18. 使用代码操作WLAN
  19. 【纯干货】标题里的大学问,月薪10000元以上的运营,是这样写宝贝标题的
  20. 常微分方程(Ordinary Differential Equation I)

热门文章

  1. 关于mmsplayer一些电台不支持播放问题说明
  2. Neumann 纽曼话筒选购指南
  3. linux中电商环境配置,Linux CentOS 7.0中java安装与配置环境变量的步骤详解
  4. 十一长假宅到底,Wi-Fi可能伤不起
  5. 练手写的python 淘宝购物车秒杀器 源码,成品链接,效果图
  6. 报表工具fastreport使用
  7. Window对象的说明》
  8. 压力测试神器stress-ng
  9. ios 科大讯飞错误码11201解决办法
  10. 模糊字符串匹配:双重解密算法