stc单片机使用技巧

最近做项目经常用到STC的单片机,在使用过程中遇到了较多的问题,而且在后续的硬件搭建过程中也积累了不少的经验,因此打算记录一下,方便以后的查询。

September 30, 2021 · 1 min · Rancho

蜂鸣器驱动电路

最近做项目用到了51单片机驱动蜂鸣器,但是一直无法驱动,后来以为是上拉电阻问题,结果发现加了上拉电阻会一直响,即使IO口输出为低电平。 ​ 后来发现还需要加一个下拉电阻以保证不受干扰。 参考:https://blog.csdn.net/qq_25814297/article/details/118696321?spm=1001.2014.3001.5506 下面就 3.3V NPN 三极管驱动有源蜂鸣器设计,从实际产品中分析电路设计存在的问题,提出电路的改进方案,使读者能从小小的蜂鸣器电路中学会分析和改进电路的方法,从而设计出更优秀的产品,达到抛砖引玉的效果。 常见错误接法 图1 为典型的错误接法,当 BUZZER 端输入高电平时蜂鸣器不响或响声太小。当 I/O 口为高电平时,基极电压为 3.3/4.7*3.3V≈2.3V,由于三极管的压降 0.6~0.7V,则三极管射 极电压为 2.3-0.7=1.6V,驱动电压太低导致蜂鸣器无法驱动或者响声很小。 图2 错误接法2 图2 为第二种典型的错误接法,由于上拉电阻R2,BUZZER 端在输出低电平时,由于 电阻R1和R2的分压作用,三极管不能可靠关断。 图3 为第三种错误接法,三极管的高电平门槛电压就只有 0.7V,即在 BUZZER 端输入 压只要超过0.7V就有可能使三极管导通,显然0.7V的门槛电压对于数字电路来说太低了, 电磁干扰的环境下,很容易造成蜂鸣器鸣叫。 图 4 为第四种错误接法,当CPU的GPIO管脚存在内部下拉时,由于 I/O 口存在输入阻抗,也可能导致三极管不能可靠关断,而且和图3一样BUZZER端输入电压只要超过0.7V就有可能使三极管导通。 以上几种用法我觉得也不能说是完全不行,对于器件的各种参数要求会比较局限,不利于器件选型,抗干扰性能也比较差。 NPN 三极管控制有源蜂鸣器常规设计 图 5 为通用有源蜂鸣器的驱动电路。电阻R1为限流电阻,防止流过基极电流过大损坏三极管。电阻R2有着重要的作用,第一个作用:R2 相当于基极的下拉电阻。如果A端被悬空则由于R2的存在能够使三极管保持在可靠的关断状态,如果删除R2则当BUZZER输入端悬空时则易受到干扰而可能导致三极管状态发生意外翻转或进入不期望的放大状态,造成蜂鸣器意外发声。第二个作用:R2可提升高电平的门槛电压。如果删除R2,则三极管的高电平门槛电压就只有0.7V,即A端输入电压只要超过0.7V 就有可能导通,添加R2的情况就不同了,当从A端输入电压达到约2.2V 时三极管才会饱和导通,具体计算过程如下: 假定β =120为晶体管参数的最小值,蜂鸣器导通电流是15mA。那么集电极电流IC=15mA。则三极管刚刚达到饱和导通时的基极电流是 IB=15mA/120=0.125mA。流经R2的电流是0.7V/3.3kΩ=0.212mA,流经R1的电流 IR1=0.212mA +0.125mA=0.337 mA。最后算出BUZZER端的门槛电压是0.7V+0.337mA× 4.7kΩ=2.2839V≈2.3V。 图中的C2为电源滤波电容,滤除电源高频杂波。C1可以在有强干扰环境下,有效的滤除干扰信号,避免蜂鸣器变音和意外发声,在 RFID射频通讯、Mifare卡的应用时,这里初步选用0.1uF 的电容,具体可以根据实际情况选择。 改进方案 蜂鸣器竟然有EMI 辐射?!在 NPN 3.3V 控制有源蜂鸣器时,在电路的 BUZZER 输入 高电平,让蜂鸣器鸣叫,检测蜂鸣器输入管脚(NPN 三极管的C极处信号,发现蜂鸣器在发声时,向外发生1.87KHz,-2.91V 的脉冲信号,如图 6 所示。 ...

September 30, 2021 · 1 min · Rancho