如图所示,我用的IO口是stc的单片机的准双向口,可是在IO口高电平的时候,蜂鸣器几乎没有声音,我把10k电阻拿掉,直接相连,声音大了一点,可还是很小。我用镊子把三极管的CE短接,蜂鸣器声音就会很大,我觉得这种情况就是IO驱动电流很小的原因,可我删掉其他程序,只保留这个IO口的输出,可声音还是很小,请问怎么回事?
这个问题是三极管的问题,你可以将三极管换成S8050(NPN)的或者S8550(PNP)的。
另外你可以在三极管的基极接只20K左右的电阻到电源。从IO口输出的电阻换成1K至2K的,这样高电平驱动就是由20K驱动,而不是IO口驱动,能提高基极电流,而低电平由IO口拉低,IO口上的电阻只是限流,保护IO口不被损坏。而IO口的吸收电流远远大于输出电流。
其实如果蜂鸣器是5V集成震荡的,可以直接接入到IO口的,STC的单片机可以承受的,但是你不能在这其工作时再接其他大电流输入的了。个人建议不这样做,因为感觉还是不稳定,尽管我使用没有烧个单片机。
另外说点题外话,建议驱动这种电路的IO口不要使用P1.0和P1.1口,如果这两个口损坏了,单片机同样写不了程序的,这样就报废了,如果是其他口损坏了,只要不使用这个口就行了,单片机还是可以勉强使用的。