单片机驱动三极管的问题

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条回答
辛昕
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 编辑 ]

一周热门 更多>