找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC15F104W单片机如何进入低功耗模式?

查看数: 4566 | 评论数: 11 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-3-18 17:10

正文摘要:

这段时间迷上了单片机,买了个开发版研究跟着看郭老师视频跟着做,现在只会点亮LED灯了,然后通过按键控制某个IO口输出低电平。我现在自己做了个锂电池供电的小夜灯,接了一个按键开关,和一个光线传感模块,现在能 ...

回复

ID:207421 发表于 2021-3-30 18:11
林大侠 发表于 2021-3-30 09:13
老师,是不是中断程序INT0中断口是P3.2嘛?需要给P3.2引脚接入高电平或低电平去唤醒休眠?

唤醒是外部中断0输入,上升沿或下降沿。
上升沿:由低电平转换到高电平的过程。
下降沿:由高电平转换到低电平的过程。
P32口在头文件里面就定义了的,名为 INT0。
ID:155507 发表于 2021-3-30 12:21
林大侠 发表于 2021-3-30 09:13
老师,是不是中断程序INT0中断口是P3.2嘛?需要给P3.2引脚接入高电平或低电平去唤醒休眠?

是的,试试不就知道了,实践是检验真理的唯一标准。
ID:155507 发表于 2021-3-18 20:14
我给你来个程序试试


  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC15F100 系列 INT0唤醒掉电模式举例--------------------------*/
  4. /* --- Mobile: (86)13 922 805190 -------------- -------------------------*/
  5. /* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序        */
  6. /* 如果要在文章中应用此代码,请在文章中注明使用了STC的资料及程序        */
  7. /*---------------------------------------------------------------------*/

  8. //本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
  9. //若无特别说明,工作频率一般为11.0592MHz


  10. #include "reg51.h"
  11. #include "intrins.h"

  12. //-----------------------------------------------

  13. sfr P3M1 = 0xb1;
  14. sfr P3M0 = 0xb2;

  15. bit FLAG;                       //1:上升沿中断 0:下降沿中断
  16. sbit P33 = P3^3;

  17. //-----------------------------------------
  18. //中断服务程序
  19. void exint0() interrupt 0       //INT0中断入口 P3.2
  20. {
  21.     P33 = !P33;                 //将测试口取反
  22.     FLAG = INT0;                //保存INT0口的状态, INT0=0(下降沿); INT0=1(上升沿)
  23. }

  24. //-----------------------------------------------

  25. void main()
  26. {
  27.     P3M0 = 0x00;
  28.     P3M1 = 0x00;


  29.     IT0 = 0;                    //设置INT0的中断类型为上升沿和下降沿,上升沿和下降沿均可唤醒
  30. //  IT0 = 1;                    //设置INT0的中断类型为仅下降沿,下降沿唤醒

  31.     EX0 = 1;                    //使能INT0中断
  32.     EA = 1;

  33.     while (1)
  34.     {
  35.         PCON = 0x02;            //MCU进入掉电模式
  36.         _nop_();                //掉电模式被唤醒后,首先执行此语句,然后再进入中断服务程序
  37.         _nop_();
  38.     }
  39. }

复制代码

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:213173 发表于 2021-3-18 20:08
无标题.jpg
ID:378729 发表于 2021-3-18 19:11

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:814525 发表于 2021-3-18 19:09
以下提供参考,要什么功能自己完善

    IT0 = 0;                    //设置INT0的中断类型为上升沿和下降沿,上升沿和下降沿均可唤醒
//  IT0 = 1;                    //设置INT0的中断类型为仅下降沿,下降沿唤醒
    EX0 = 1;                    //使能INT0中断
    EA = 1;

掉电模式
    {
        PCON = 0x02;            //MCU进入掉电模式
        _nop_();                //掉电模式被唤醒后,首先执行此语句,然后再进入中断服务程序
        _nop_();
        _nop_();
        _nop_();
    }
//中断服务程序
void exint0() interrupt 0       //INT0中断入口
{
    P10 = !P10;                 //将测试口取反
}



评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:883167 发表于 2021-3-18 18:45
man1234567 发表于 2021-3-18 18:14
楼主图纸上画的是STC15F104E的8脚芯片,不知道这个是不是单片机 ?
如果是,能不能给个具体函数 ?

对的,是这个单片机,就是不知道怎么操作让它进入低功耗模式,然后通过IO口接低电平让它唤醒。感谢!!
ID:584814 发表于 2021-3-18 18:14
天ノ忆 发表于 2021-3-18 17:40
因为不知道你是什么样子的单片机,所以只能说有一个函数,直接调用可以进入低功耗模式,结束低功耗模式也有 ...

楼主图纸上画的是STC15F104E的8脚芯片,不知道这个是不是单片机 ?
如果是,能不能给个具体函数 ?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:883167 发表于 2021-3-18 18:05
天ノ忆 发表于 2021-3-18 17:40
因为不知道你是什么样子的单片机,所以只能说有一个函数,直接调用可以进入低功耗模式,结束低功耗模式也有 ...

单片机是STC15F104W,因为这个IO口少,新手学习起来简单,谢谢大侠!
ID:139866 发表于 2021-3-18 17:40
因为不知道你是什么样子的单片机,所以只能说有一个函数,直接调用可以进入低功耗模式,结束低功耗模式也有几种方法,但是只会点亮LED灯的话推荐使用外部中断退出低功耗模式

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表