STM8S单片机——硬件消抖

按键硬件消抖原理:

利用电容充放电特性来实现,因为电容为储能元件。它两端的电压不能出现突变,即有一个充放电的过程,利用这个充放电时间来维持电平稳定从而抵消由于机械抖动引起的误操作。

下降沿触发电路:

上升沿触发电路:

 

STM8S手册中IO口的逻辑电平规定

在stm8s003f3.pdf手册的第66页“I/O port pin characteristics”章节中有提到

根据手册查到的逻辑“0”:0V~0.3*VDD,为什么不说-0.3V因为我们电路中没有负电源。逻辑“1”:0.7*VDD~VDD + 0.3V

RC电路充电计算公式:

Vt = V0 + (Vu – V0) * [1 – exp( -t/RC)]

如果电容上的初始电压为0,则公式可以简化为:

Vt = Vu * [1 – exp( -t/RC)]

其中:Vu为电源电压、V0为电容上的初始电压值、Vu为电容充满电后的电压值、Vt为任意时刻t时电容上的电压值

RC电路放电计算公式:

Vt = Vu * exp( -t/RC)

注意:这里我们采用“下降沿触发”方式,所以这里得使用"RC电路放电计算公式“。

解释:根据”下降沿触发“电路分析:普通状态下电容已经被充满电了,当按下按钮时电容的放电回路接通。电容通过R放电此时按钮左端的电平不会马上为0,而是缓慢降为0。如果只是由于抖动而接通放电回路,由于机械抖动时间短我们的电容还在放电中。所以可以抵消由于抖动的误触发。注意:放电电阻R取值不能过大。原因可以参考上下拉电阻

计算得到RC值范围:

结果:

经过计算得到R电阻取值为1KΩ,电容C取值为2uF

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值