| 注意蜂鸣器正负极,如果两引脚的高度不一样,长为正短为负。然后试试输出为高电平。 |
| beep没有取反,已经产生错误了 |
| 应该是beep的问题,试试取反,这里面涉及了你的蜂鸣器时有源和无源的问题 |
STC89C51 发表于 2018-4-11 13:41 那就是蜂鸣器信号没对 |
| 是无缘蜂鸣器吧 |
| 你用的应该是无源蜂鸣器 它必须通过对beep取反才能获得一定频率的声音 如果你希望beep=0就可以一直响必须还要用有源的蜂鸣器 |
| 如果是无源蜂鸣器要写一个程序产生一个方波才能发声 |
| 说这个图是高电平使Q1导通的回去好好学习三极管原理...... |
| 先确定有源还是无源,一个是高电平驱动的一个是低电平的 |
husb2018 发表于 2018-4-16 11:43 回答的好 |
| 是不是有源蜂鸣器 |
| 用高频三极管 |
| 可以试一下= |
| 给高电平试试 |
| 单片机输出驱动蜂鸣器,还是单片机拉低然后电源驱动蜂鸣器了 |
| 来个pwm脉冲试试 |
|
你这个是无源蜂鸣器 要来回取反才行 |
| 高电平触发 |
| 程序里beep取反应该没问题了 |
| 你可以试试speaker 或者看看电压有没有给够 |
| 换个三极管试试 ,还有那个蜂鸣器有个本来就是不响的 |
| 高电平 |
| beep=~beep;表明你用的蜂鸣器是无源的,有源蜂鸣器beep=0;就会一直响 |
| main里面增加while(1)语句,不行的话就改为脉冲去驱动看看 |
| 高电平发声,P0口需要上拉电阻 |
| 有源和无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路 |
| 你这个是无源蜂鸣器 需要给一定方波才会响 |
| 有源蜂鸣器你这样写没问题,但是无源蜂鸣器就有问题 |
| 可以试试延迟,把高点电平都输出看看就知道是程序问题还是硬件问题了,如果那样不响,那就是硬件上有问题了,再检查你的电路有没有真的连通了或者没有短路 |
| 蜂鸣器高电平发声,或者有时还可以看看你的仪器坏了没 |
1314250 发表于 2018-4-15 22:40 我怎么看它是有源还是无源呢? |
| Q1坏了 |
| 知道了吗 |
| 楼主你可以首先看一下你那蜂鸣器是有源还是无源的,如果是有源的你还需要外加电路,还有就是你蜂鸣器是高电平触发还是低电平触发,这都关系你蜂鸣器响不响的 |
| 蜂鸣器类型,引脚电压测量 |
| 你运行时看看引脚的电平输入是否正确,如果正确就是蜂鸣器的问题了 |
| 改成 beep=~beep;试试 |
| 我在后面加了一句beep=~beep; 它就响了 |
hzcxq 发表于 2018-4-13 15:23 哇,真的响了,谢谢你,不过我还想知道是什么原理,我看单片机郭天祥51单片机教学视频里说的,直接让它=0就可以了,为什么我这里还有取反呢? |
| 经试验,=1的时候,也不响 |