打印

STC12C5A60S2的P2口驱动不了蜂鸣器,是怎么回事

[复制链接]
3485|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
今天遇到一个奇葩的问题,使用STC12C5A60S2的P2.2驱动蜂鸣器,却发现,无论怎么办,P2.2口都拉不高,最后加了上拉电阻才正常。为什么呢?我换了89C52发现也不能拉高。难道51单片机的P2口也需要上拉。电路图长这样的。应该没什么问题吧!程序也贴出来,就一个置高或置底。

相关帖子

沙发
zyj9490| | 2016-9-21 12:54 | 只看该作者
端口都没有配置,就能驱动啊,一般是双向弱上拉的,必须配置成PP,OD+上拉。

使用特权

评论回复
板凳
yichunshan| | 2016-9-21 13:25 | 只看该作者

端口都没有配置,就能驱动啊,一般是双向弱上拉的,必须配置成PP,OD+上拉。

使用特权

评论回复
地板
coody| | 2016-9-21 14:22 | 只看该作者
要配置成推挽输出,否则驱动不了的。

使用特权

评论回复
5
ningling_21| | 2016-9-21 15:10 | 只看该作者
没配置为推挽输出,驱动能力不足

使用特权

评论回复
6
没落的尘埃|  楼主 | 2016-9-21 16:52 | 只看该作者
zyj9490 发表于 2016-9-21 12:54
端口都没有配置,就能驱动啊,一般是双向弱上拉的,必须配置成PP,OD+上拉。 ...

89C52也是这样的现象,89C52的P2口是不需要配置的吧!如果配置,应该怎么配置

使用特权

评论回复
7
没落的尘埃|  楼主 | 2016-9-21 16:54 | 只看该作者
coody 发表于 2016-9-21 14:22
要配置成推挽输出,否则驱动不了的。

STC12C5A60S2可以配置为推挽,89C52应该不可以吧

使用特权

评论回复
8
Tliang| | 2016-9-21 17:30 | 只看该作者
本帖最后由 Tliang 于 2016-9-21 17:39 编辑

看一下手册就知道了,5V-0.6/4.7K=936uA。IO要有差不多1mA的电流才能使输出电压稳定在5V

使用特权

评论回复
9
zyj9490| | 2016-9-21 19:13 | 只看该作者
没落的尘埃 发表于 2016-9-21 16:52
89C52也是这样的现象,89C52的P2口是不需要配置的吧!如果配置,应该怎么配置 ...

M0,M1二个寄存器的位,对应位组成四个模式的设定。

使用特权

评论回复
10
zyj9490| | 2016-9-21 19:16 | 只看该作者
本帖最后由 zyj9490 于 2016-9-21 19:18 编辑
没落的尘埃 发表于 2016-9-21 16:52
89C52也是这样的现象,89C52的P2口是不需要配置的吧!如果配置,应该怎么配置 ...

传统的51的P0,P2是为了驱动CMOS的IC,如外存用,用于扩展,CODE or xram,因此不需要很大的输出电流。属于电压驱动型的负载,而你这个电流驱动负载。

使用特权

评论回复
11
没落的尘埃|  楼主 | 2016-9-21 20:38 | 只看该作者
Tliang 发表于 2016-9-21 17:30
看一下手册就知道了,5V-0.6/4.7K=936uA。IO要有差不多1mA的电流才能使输出电压稳定在5V
...

根据这个公式来说,我换成10K的电阻应该就可以了,可是也不行。难道51单片机的驱动电流都没有几百uA吗?以前没遇到这个问题啊!难道就是像楼下所说,P2口只能驱动电压驱动型的负载。

使用特权

评论回复
12
没落的尘埃|  楼主 | 2016-9-21 20:41 | 只看该作者
zyj9490 发表于 2016-9-21 19:16
传统的51的P0,P2是为了驱动CMOS的IC,如外存用,用于扩展,CODE or xram,因此不需要很大的输出电流。属于 ...

可是电流也不是很大啊,51的P2口没有几百uA的驱动能力吗?忧桑 我换了R8为10k的电阻依然不能驱动

使用特权

评论回复
13
zyj9490| | 2016-9-21 20:45 | 只看该作者
没落的尘埃 发表于 2016-9-21 20:41
可是电流也不是很大啊,51的P2口没有几百uA的驱动能力吗?忧桑 我换了R8为10k的电阻依然不能驱动 ...

关键VBE电压是多少?

使用特权

评论回复
14
没落的尘埃|  楼主 | 2016-9-21 21:07 | 只看该作者
zyj9490 发表于 2016-9-21 20:45
关键VBE电压是多少?

Base-Emitter on Voltage      -0.66

使用特权

评论回复
15
zyj9490| | 2016-9-21 21:58 | 只看该作者
没落的尘埃 发表于 2016-9-21 21:07
Base-Emitter on Voltage      -0.66

怎么是负的,BJT用错了吗,倒管。

使用特权

评论回复
16
caojihui521| | 2016-9-21 23:17 | 只看该作者
推完输出,我的遇到的问题是有声音,就是声音太小

使用特权

评论回复
17
liying1981| | 2016-9-22 00:41 | 只看该作者
caojihui521 发表于 2016-9-21 23:17
推完输出,我的遇到的问题是有声音,就是声音太小

1、蜂鸣器必须是5V,因为你5V供电
2、在12V以下8050不需要峰值吸收二极管
3、三极管取消10K下拉电阻
4、基极串联电阻用1K-510欧姆
5、I/O配置为强输出,这样可以提供最大20mA输出、拉入电流。

使用特权

评论回复
18
ddllxxrr| | 2016-9-22 08:02 | 只看该作者
主要原因是楼主的STC管脚没有配置,STC同89C51不同,需要管脚配置才可以用的,不配就是楼主的情况

使用特权

评论回复
19
lihui567| | 2016-9-22 08:57 | 只看该作者
89c52的没法配置,stc不配置也没事啊,20ma的电流驱动不了你的蜂鸣器,不应该。

使用特权

评论回复
20
robter| | 2016-9-22 09:19 | 只看该作者
又学到宝贵的经验了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

1

粉丝