单片机驱动三极管的问题

2019-03-24 19:24发布

蜂鸣器.jpg
我用的STC89C52芯片,端口电路如上图。
可是三极管导通了,蜂鸣器却不响,为什么呢?
测得P1_7电压为0.71V,电阻电压为0.14V,BE电压为0.57V,CE电压为0.39V,蜂鸣器电压为4.18V,VCC为4.57V。
为什么P1_7输出的高点平被拉低了?电阻为啥只分得这么点电压?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
sharkzyn
1楼-- · 2019-03-24 22:31
 精彩回答 2  元偷偷看……
辛昕
2楼-- · 2019-03-25 02:19
PNP的不错。起码可以避免上电误启动。
用低电平驱动也不错,因为单片机的拉电流总是比灌电流,而且不是一个数量级的差别。
不过你这个电路最大的问题不在于这个,最大的在于你的直流偏置情况很糟糕。
你可以试一下把电阻改大点,别客气,1到2、300K都可以。太小了不行。
再测测P1.7口的电压。
(它给拉低的原因是因为三极管的基极从它那里拉了太多电流,对于单片机而言,就是灌电流太大了。一般单片机的IO口灌电流都有限,一般不会超过1毫安。所以一下就给拉低了。)

如果你用NPN,我不建议这么做。
我的建议是,把基极上的电阻去掉,换在E级到地之间,这个要小点,不然驱动电流太小,几个K就够了。
另外,不要把蜂鸣器串在电源和C级之间,把它并在C级和地之间。

补充一下:
1 对于那个灌电流的概念,如果你想要体会多一点的话,你用的是STC对吧,试一下把IO口模式设置成 强推挽,这个时候你会发现,P1.7口没有给拉低。
2 另外,关于那个 灌电流,我说的是一般弱上拉,准双向口下的灌电流,刚才看了看STC的,典型值区区200多uA。
不给拉低才怪。如果你把直流偏置设置好了,这个也不是太大的问题。

至于为什么蜂鸣器不响,这个我也说不准,但是我记得很多蜂鸣器都是标准的5V蜂鸣器,也许是电压被拉得太低了。你可以尝试一下在蜂鸣器到电源之间串入一个不很大的电阻,几百欧姆试试,看看情况会不会好点。

[ 本帖最后由 辛昕 于 2011-3-29 20:52 编辑 ]
zjjone1023
3楼-- · 2019-03-25 02:52
我有个图你可以试试
zjjone1023
4楼-- · 2019-03-25 06:29
不知道怎么发图就和你说下吧
你在P1-7口加一个750的电阻就可以了,最好把你的R11也改小的,不知道说的对不对你试下
我们的产品就是这样做的
chunyang
5楼-- · 2019-03-25 12:06
楼主所用蜂鸣器是无源的还是有源的?有源的自带振荡器,引脚有正负之分,加上电源就会响,无源的则需要用一定频率的信号去推动,直接加电源是不会响的。
当然,楼主的驱动电路也不妥,正确的方法应该采用PNP管用负逻辑去推动,即使使用NPN管正逻辑驱动,基极限流电阻也要降低同时加一个上拉电阻,MCU的标准弱上拉IO内部的上拉电阻在50-100K间,驱动能力是很弱的,如果注意去看器件手册就不会发生这样的问题了。
cookie143
6楼-- · 2019-03-25 14:06
蜂鸣器上并一个5.1K的电阻试试

一周热门 更多>