51单片机电压输出电路控制蜂鸣器不响

设计了一个51单片机电压输出电路控制蜂鸣器LS1,未接上蜂鸣器时,7个out端均能正常输出电压,并且在单片机程序控制下,7个端口依次在高/低电平之间变化,但是接上蜂鸣器(接在VCC和任意一个输出端之间)之后,只想一声就不在响了,并且7个输出端都稳定在高电平,不再变化。疑似某种中断,但不知具体产生原因,请教高手!
附上电压输出部分电路图

应检查以下几点问题:
1.P1口未有上接电阻,而ULN2003内部为达林顿结构,其输入电流有一定要求,用5.1KΩ电阻上拉。
2.程序问题,对P1口程序建议采用位操作,防止因其它原因造成相应端口不可预期的变化。
3.电路干扰问题,蜂鸣器为感性器件,若51单片机的电源及相关走线处理不完善的情况下,可能因蜂鸣器工作时产生干扰(对电源进行干扰或对线路进行干扰)影响单片机正常工作。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-12-02
应检查以下两点问题:
1.P1口未有上接电阻,而ULN2003内部为达林顿结构,其输入电流有一定要求,建议用5.1KΩ电阻上拉;
2.程序问题:对P1口程序建议采用位操作,防止因其它原因造成相应端口不可预期的变化;
3.电路干扰问题:蜂鸣器为感性器件,若51单片机的电源及相关走线处理不完善的情况下,可能因蜂鸣器工作时产生干扰(对电源进行干扰或对线路进行干扰)影响单片机正常工作.本回答被提问者采纳
第2个回答  2010-07-24
应该是电源负载能力不够,电源ULN2003L足以驱动1A负载,估计是2003驱动喇叭后拉低了电源电压,单片机不工作了,测量一下电源电压是否正常就知道了。
第3个回答  2010-07-24
51用低有效可以直接驱动蜂鸣器的,所以不会是硬件的问题,不需要加驱动电路,肯定是程序里的问题。
比如,在做其它写入指令的时候改变了你控制蜂鸣器那个口的输出结果,我一起也遇到过这个问题,结果发现是数码管扫描的时候无意改变了我那个控制口的电平,让蜂鸣器一直响。呵呵。
检查一下程序吧。
第4个回答  2010-07-24
蜂鸣器? 看电路好像是扬声器。
8欧姆的扬声器,不能直接做为负载,阻抗不匹配。
目前来看,是8欧姆相当于短路,烧坏了2003。

51单片机电压输出电路控制蜂鸣器不响
2.程序问题,对P1口程序建议采用位操作,防止因其它原因造成相应端口不可预期的变化。3.电路干扰问题,蜂鸣器为感性器件,若51单片机的电源及相关走线处理不完善的情况下,可能因蜂鸣器工作时产生干扰(对电源进行干扰或对线路进行干扰)影响单片机正常工作。

51单片机电压输出电路控制蜂鸣器不响
应该是电源负载能力不够,电源ULN2003L足以驱动1A负载,估计是2003驱动喇叭后拉低了电源电压,单片机不工作了,测量一下电源电压是否正常就知道了。

51 单片机 为什么我写的程序 蜂鸣器不响
三极管接错了,E和C上下颠倒一下。再就是得是有源蜂鸣器

为什么我的蜂鸣器不会响呢?用51单片机
你用的蜂鸣器是无源蜂鸣器(无源指的是“自己不带振动源”),换句话说要想让它响,就必须用“脉冲驱动”,脉冲就相当于它的振动源。看你的程序应该是想用有源蜂鸣器,也就是“直流驱动”蜂鸣器,它在PROTEUS中的名字是:直流式buzzer。你选择的speaker是模拟式无源蜂鸣器,此外还有一个数字式sounder蜂鸣器...

51单片机,npn三极管控制蜂鸣器为什么不响
是不是电路有问题,把电路贴出来看看,NPN只要给三极管基极一个高电平,三极管就会导通的,先确定三极管基极是高电平。

51单片机蜂鸣器报警电路,实物有源蜂鸣器可以工作,仿真不能响?
3Ⅴ,严格要求不足5V,所以不响。修改方法,三极管发射极接电源,把蜂鸣器接到集电极上,就OK了。其实,这仿真有不严格的,你却没用,反倒麻烦了。蜂鸣器可以直接连接在单片机引脚上就行,还省事,少用一个三极管。但实物肯定是不行的,必须用三极管驱动。可仿真却又不严格了,它行了,可你没用。

单片机初级问题:蜂鸣器不叫
你确定#include <reg51.h> sbit Beep = P1^5 ;void main(){ Beep= 0;} 这样写它是响的?你试试让beep高——延时——beep拉低,循环

为什么我的51单片机蜂鸣器程序需要加延时才响呢?
这得看你的蜂鸣器是有源还是无源,如果是无源的蜂鸣器需要经过变频控制才会发声,对于有源的蜂鸣器则直接输出高低电平就可以。注意,这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~...

以下电路图,焊好以后,蜂鸣器的声音很小,有什么方法能提高蜂鸣器的声音...
试一下这种画法,用pnp8550三极管,我以前用的时候没出现过声音小的问题

51单片机中直接Beep = 1为什么没声音?
一种是硬件连接问题,你需要Beef=0才能响 还有就是你的蜂鸣器是无源的,需要给高低脉冲才能响。比方beef=0;delay();beef=1;deyal();外面再套while(1);

相似回答