STM8S单片机入门单片机入门2(关机模式开关机按钮关机模式开关机按钮)
开关机功能是使用电池供电系统的基本功能。如果使用机械式开关(2段拨动开关,自锁开关等)等直接接通和
切断电源,不说机械部件的可靠性,至少自动关机(一般在长时间不操作、电池电量低时需要自动关机)功能
就比较难实现。所以电池供电系统一般采用按钮开关,用一个按钮配合软件实现按开机、再按关机的功能及自
动关机的功能。 这部分内容就讲述如何在上实现一键式的开关机功能。开关机功能要使用单片机的一个引脚
(PD4)作为输入端,连接到按钮,接收按纽按下产生的电信号,然后再使用另一个引脚(PD3)作为输出端去
驱动由三极管8550构成的一个电子开关实现对系统电源的控制。而STM8S单片机本身就直接接在电池上,利用
开关机功能是使用电池供电系统的基本功能。如果使用机械式开关(2段拨动开关,自锁开关等)等直接接通和切断电源,
不说机械部件的可靠性,至少自动关机(一般在长时间不操作、电池电量低时需要自动关机)功能就比较难实现。所以电池供
电系统一般采用按钮开关,用一个按钮配合软件实现按开机、再按关机的功能及自动关机的功能。
这部分内容就讲述如何在上实现一键式的开关机功能。开关机功能要使用单片机的一个引脚(PD4)作为输入端,连接到
按钮,接收按纽按下产生的电信号,然后再使用另一个引脚(PD3)作为输出端去驱动由三极管8550构成的一个电子开关实
现对系统电源的控制。而STM8S单片机本身就直接接在电池上,利用单片机的停机模式,将单片机本身的电流降低到μA级,
对电池的消耗就可以忽略不计了。
1、电路设计
电路图如下,C1是STM8S单片机VCAP电容,保持内部1.8V电压的稳定,是STM8S单片机必须接要的外部元件,选用容量
为1μF的瓷片电容,而且从电路可靠性讲,这个电容越靠近单片机IC越好。
K1是按钮,一端接到单片机的PD4引脚上,另一端接地,这样按钮被按下就会产生一个低电平的脉冲。
Q1是三极管,通过发光二极管D1和限流电阻R1接到单片机的PD3上。这样当PD3输出低电平时,Q1导通,VCC上有电
压,可以对系统供电,反之PD3输出高电平时,Q1截止VCC没有电压。
发光二极管D1还兼作电源指示灯的作用, Q1导通时发光反之不发光。
剩余的C2~C5都是电源退藕电容,用于消除电源上的干扰信号。P1、P2两个接线端分别接3.6V锂电池的正负极。
2、软件设计
软件要实现的功能是,在PD4引脚上监控按钮按下产生的低电压脉冲信号,并根据这个信号来设置PD3引脚的输出电平去控
制Q1的导通和截止,以及设置单片机自身的工作状态,以此实现对电源供电的控制。
1)引脚工作模式设置
首先要做的,就是设置单片机引脚的工作模式,把PD4设置为输入模式,D3设置为输出模式。
在STM8S_StdPeriph_Lib库中,可以使用这个函数进行设置:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode)
GPIOx是端口编号,取值有GPIOA、GPIOB、GPIOC、GPIOD,分别对应单片机的PAx、PBx、PCx、PDx端
口,GPIO_Pin是引脚编号,取值有GPIO_PIN_1~GPIO_PIN_7,函数通过GPIOx和GPIO_Pin两个参数指定一个的引脚。