1-14 睡眠-唤醒定时器唤醒
摘要:STC8系列单片机内置掉电唤醒定时器,当MCU进入掉电模式后开始计数,达到设定值即唤醒系统。唤醒后程序从进入掉电模式语句的下一条继续执行,可通过寄存器读取睡眠时间。定时器时钟频率约32KHz(误差较大),支持多种中断唤醒方式。实验演示了2秒定时唤醒功能:LED灯先熄灭2秒,进入掉电模式后被唤醒时点亮2秒,循环往复。该功能通过配置WKTCH等寄存器实现,完整代码需参考STC官网资料。
掉电唤醒定时器基本知识

如果 STC8 系列单片机内置掉电唤醒专用定时器被允许(通过软件将 WKTCH 寄存器中的 WKTEN位置 1),当 MCU 进入掉电模式/停机模式后,掉电唤醒专用定时器开始计数,当计数值与用户所设置的值相等时,掉电唤醒专用定时器将 MCU 唤醒。MCU 唤醒后,程序从上次设置单片机进入掉电模式语句的下一条语句开始往下执行。掉电唤醒之后,可以通过读 WKTCH 和 WKTCL 中的内容获取单片机在掉电模式中的睡眠时间。
写入的寄存器值必须比实际计数值少 1。
掉电后,IO输出和SFR特殊功能寄存器与前一个状态保持一致。
内部掉电唤醒定时器的时钟频率约为 32KHz,误差较大。用户可以通过读 RAM 区 F8H 和 F9H 的
内容(F8H 存放频率的高字节,F9H 存放低字节)来获取内部掉电唤醒专用定时器出厂时所记录的时钟频率。


掉电模式可以使用 INT0(P3.2)、INT1(P3.3)、INT2(P3.6)、INT3(P3.7)、INT4(P3.0)、T0(P3.4)、T1(P3.5)、T2(P1.2) 、 T3(P0.4) 、 T4(P0.6) 、 RXD(P3.0/P3.6/P1.6/P4.3) 、 RXD2(P1.0/P4.6) 、 RXD3(P0.0/P5.0) 、RXD4(P0.2/P5.2)、I2C_SDA(P1.4/P2.4/P3.3)以及比较器中断、低压检测中断、掉电唤醒定时器唤醒。
实验说明
循环睡眠唤醒,使用掉电唤醒定时器定时2秒,掉电之前LED2-LED5灯熄灭,之后LED2-LED5灯点亮。
现象:LED2-LED5灯熄灭2s,LED2-LED5灯点亮2s,反复进行此过程。
接线图

编写程序
代码说明:部分代码借鉴STC官网,根据实验改动,由于代码过只展示部分代码,完整代码可下载。


更多推荐


所有评论(0)