如何省电
发布时间:2012/6/16 19:32:05 访问次数:1255
由于这个作品D784031GC使用电池供电,所以不得不考虑省电的问题。
我在设计之初就没准备加总开关,因为电池是裸露的,想彻底关闭设备的时候可以直接取下电池。在程序中,持续按住M键2秒以上,单片机就会进入掉电模式,以节省电量。实测在掉电模式下电流仅为0.04mA左右,非常低。
程序在检测到按下M键后会启动定时器T1,同时写入TL1和TH1的初值,并使定时器一直运行到按键松开。在这个道程中会不断进入定时器1的中断,通过一个计数变量监测,当定时器计满2秒时,打开外部中断O,并调用power_down函数让单片机进入掉电模式。
当外部中断0被触发,单片机离开掉电模式,然后关闭外部中断,并进行初始化。在这个过程中要注意一点,在掉电前定要把INT_CLKO中控制P3.4输出时钟的寄存器清零,同时将P3.4引脚拉低,再次上电之后才能将IKn-_CLKO中的TOCI_KO置位。否则,你将发现掉电时的电流高达90mA!原因是掉电的时候,如果不将TOCU<。清零,引脚将不能被拉低,而此时如果引脚输出为高电平的话,三极管是导通的,相当于电源直接通过集电极电阻接地,当然会有非常大的电流流过。所以这一步是至关重要的,否则你的掉电功耗将远远大于工作功耗,这就不是在省电了!
程序部分讲解到此为止,文章相关的源程序,读者朋友可以到《无线电》杂志网站(www.radio.com.cn)下载。另外在写这个程序的过程中,我顺便写了STC15F104E的头文件,也包含在源代码里面了,有喜欢这款单片机的朋友可以直接使用这个头文件。
我在设计之初就没准备加总开关,因为电池是裸露的,想彻底关闭设备的时候可以直接取下电池。在程序中,持续按住M键2秒以上,单片机就会进入掉电模式,以节省电量。实测在掉电模式下电流仅为0.04mA左右,非常低。
程序在检测到按下M键后会启动定时器T1,同时写入TL1和TH1的初值,并使定时器一直运行到按键松开。在这个道程中会不断进入定时器1的中断,通过一个计数变量监测,当定时器计满2秒时,打开外部中断O,并调用power_down函数让单片机进入掉电模式。
当外部中断0被触发,单片机离开掉电模式,然后关闭外部中断,并进行初始化。在这个过程中要注意一点,在掉电前定要把INT_CLKO中控制P3.4输出时钟的寄存器清零,同时将P3.4引脚拉低,再次上电之后才能将IKn-_CLKO中的TOCI_KO置位。否则,你将发现掉电时的电流高达90mA!原因是掉电的时候,如果不将TOCU<。清零,引脚将不能被拉低,而此时如果引脚输出为高电平的话,三极管是导通的,相当于电源直接通过集电极电阻接地,当然会有非常大的电流流过。所以这一步是至关重要的,否则你的掉电功耗将远远大于工作功耗,这就不是在省电了!
程序部分讲解到此为止,文章相关的源程序,读者朋友可以到《无线电》杂志网站(www.radio.com.cn)下载。另外在写这个程序的过程中,我顺便写了STC15F104E的头文件,也包含在源代码里面了,有喜欢这款单片机的朋友可以直接使用这个头文件。
由于这个作品D784031GC使用电池供电,所以不得不考虑省电的问题。
我在设计之初就没准备加总开关,因为电池是裸露的,想彻底关闭设备的时候可以直接取下电池。在程序中,持续按住M键2秒以上,单片机就会进入掉电模式,以节省电量。实测在掉电模式下电流仅为0.04mA左右,非常低。
程序在检测到按下M键后会启动定时器T1,同时写入TL1和TH1的初值,并使定时器一直运行到按键松开。在这个道程中会不断进入定时器1的中断,通过一个计数变量监测,当定时器计满2秒时,打开外部中断O,并调用power_down函数让单片机进入掉电模式。
当外部中断0被触发,单片机离开掉电模式,然后关闭外部中断,并进行初始化。在这个过程中要注意一点,在掉电前定要把INT_CLKO中控制P3.4输出时钟的寄存器清零,同时将P3.4引脚拉低,再次上电之后才能将IKn-_CLKO中的TOCI_KO置位。否则,你将发现掉电时的电流高达90mA!原因是掉电的时候,如果不将TOCU<。清零,引脚将不能被拉低,而此时如果引脚输出为高电平的话,三极管是导通的,相当于电源直接通过集电极电阻接地,当然会有非常大的电流流过。所以这一步是至关重要的,否则你的掉电功耗将远远大于工作功耗,这就不是在省电了!
程序部分讲解到此为止,文章相关的源程序,读者朋友可以到《无线电》杂志网站(www.radio.com.cn)下载。另外在写这个程序的过程中,我顺便写了STC15F104E的头文件,也包含在源代码里面了,有喜欢这款单片机的朋友可以直接使用这个头文件。
我在设计之初就没准备加总开关,因为电池是裸露的,想彻底关闭设备的时候可以直接取下电池。在程序中,持续按住M键2秒以上,单片机就会进入掉电模式,以节省电量。实测在掉电模式下电流仅为0.04mA左右,非常低。
程序在检测到按下M键后会启动定时器T1,同时写入TL1和TH1的初值,并使定时器一直运行到按键松开。在这个道程中会不断进入定时器1的中断,通过一个计数变量监测,当定时器计满2秒时,打开外部中断O,并调用power_down函数让单片机进入掉电模式。
当外部中断0被触发,单片机离开掉电模式,然后关闭外部中断,并进行初始化。在这个过程中要注意一点,在掉电前定要把INT_CLKO中控制P3.4输出时钟的寄存器清零,同时将P3.4引脚拉低,再次上电之后才能将IKn-_CLKO中的TOCI_KO置位。否则,你将发现掉电时的电流高达90mA!原因是掉电的时候,如果不将TOCU<。清零,引脚将不能被拉低,而此时如果引脚输出为高电平的话,三极管是导通的,相当于电源直接通过集电极电阻接地,当然会有非常大的电流流过。所以这一步是至关重要的,否则你的掉电功耗将远远大于工作功耗,这就不是在省电了!
程序部分讲解到此为止,文章相关的源程序,读者朋友可以到《无线电》杂志网站(www.radio.com.cn)下载。另外在写这个程序的过程中,我顺便写了STC15F104E的头文件,也包含在源代码里面了,有喜欢这款单片机的朋友可以直接使用这个头文件。