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

[复制链接]
4173|22
 楼主| 没落的尘埃 发表于 2016-9-21 10:57 | 显示全部楼层 |阅读模式
今天遇到一个奇葩的问题,使用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 | 显示全部楼层
要配置成推挽输出,否则驱动不了的。
ningling_21 发表于 2016-9-21 15:10 | 显示全部楼层
没配置为推挽输出,驱动能力不足
 楼主| 没落的尘埃 发表于 2016-9-21 16:52 | 显示全部楼层
zyj9490 发表于 2016-9-21 12:54
端口都没有配置,就能驱动啊,一般是双向弱上拉的,必须配置成PP,OD+上拉。 ...

89C52也是这样的现象,89C52的P2口是不需要配置的吧!如果配置,应该怎么配置
 楼主| 没落的尘埃 发表于 2016-9-21 16:54 | 显示全部楼层
coody 发表于 2016-9-21 14:22
要配置成推挽输出,否则驱动不了的。

STC12C5A60S2可以配置为推挽,89C52应该不可以吧
Tliang 发表于 2016-9-21 17:30 | 显示全部楼层
本帖最后由 Tliang 于 2016-9-21 17:39 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
zyj9490 发表于 2016-9-21 19:13 | 显示全部楼层
没落的尘埃 发表于 2016-9-21 16:52
89C52也是这样的现象,89C52的P2口是不需要配置的吧!如果配置,应该怎么配置 ...

M0,M1二个寄存器的位,对应位组成四个模式的设定。
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,因此不需要很大的输出电流。属于电压驱动型的负载,而你这个电流驱动负载。
 楼主| 没落的尘埃 发表于 2016-9-21 20:38 | 显示全部楼层
Tliang 发表于 2016-9-21 17:30
看一下手册就知道了,5V-0.6/4.7K=936uA。IO要有差不多1mA的电流才能使输出电压稳定在5V
...

根据这个公式来说,我换成10K的电阻应该就可以了,可是也不行。难道51单片机的驱动电流都没有几百uA吗?以前没遇到这个问题啊!难道就是像楼下所说,P2口只能驱动电压驱动型的负载。
 楼主| 没落的尘埃 发表于 2016-9-21 20:41 | 显示全部楼层
zyj9490 发表于 2016-9-21 19:16
传统的51的P0,P2是为了驱动CMOS的IC,如外存用,用于扩展,CODE or xram,因此不需要很大的输出电流。属于 ...

可是电流也不是很大啊,51的P2口没有几百uA的驱动能力吗?忧桑 我换了R8为10k的电阻依然不能驱动
zyj9490 发表于 2016-9-21 20:45 | 显示全部楼层
没落的尘埃 发表于 2016-9-21 20:41
可是电流也不是很大啊,51的P2口没有几百uA的驱动能力吗?忧桑 我换了R8为10k的电阻依然不能驱动 ...

关键VBE电压是多少?
 楼主| 没落的尘埃 发表于 2016-9-21 21:07 | 显示全部楼层
zyj9490 发表于 2016-9-21 20:45
关键VBE电压是多少?

Base-Emitter on Voltage      -0.66
zyj9490 发表于 2016-9-21 21:58 | 显示全部楼层
没落的尘埃 发表于 2016-9-21 21:07
Base-Emitter on Voltage      -0.66

怎么是负的,BJT用错了吗,倒管。
caojihui521 发表于 2016-9-21 23: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输出、拉入电流。
ddllxxrr 发表于 2016-9-22 08:02 | 显示全部楼层
主要原因是楼主的STC管脚没有配置,STC同89C51不同,需要管脚配置才可以用的,不配就是楼主的情况
lihui567 发表于 2016-9-22 08:57 | 显示全部楼层
89c52的没法配置,stc不配置也没事啊,20ma的电流驱动不了你的蜂鸣器,不应该。
robter 发表于 2016-9-22 09:19 | 显示全部楼层
又学到宝贵的经验了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部