#include
***it buzzer=P0^0;
void delay(int);
void pulse_BZ(int,int,int);
void main()
{
while(1)
{
pulse_BZ(100,1,1);
delay(1000);
}
}
void delay(int x)
{
int i,j;
for(i=0;i
for(j=1;j<=60;j++);
}
void pulse_BZ(int count,int th,int tl)
{
int i;
for(i=0;i
{
buzzer=1;
delay(th);
buzzer=0;
delay(tl);
}
}
程序测试也没问题的!
2014-6-14 21:25:20
本帖最后由 Jack315 于 2014-6-14 21:26 编辑
LZ看看驱动蜂鸣器 (P0.0) 的脉冲频率是多少
本帖最后由 Jack315 于 2014-6-14 21:26 编辑
LZ看看驱动蜂鸣器 (P0.0) 的脉冲频率是多少
举报
2014-6-14 22:57:51
既然是仿真,那就断开与单片机的连接处,看看响不,排除是不是元件或连线问题
既然是仿真,那就断开与单片机的连接处,看看响不,排除是不是元件或连线问题
举报
2014-6-15 10:08:18
你们的建议都试了,都没什么反应。把蜂鸣器换成灯泡就能亮,我猜是不是三极管的流向蜂鸣器的电流太小。最后我用了电流探针,蜂鸣器就响了。但本人电路知识还太薄弱了,不知怎么修改,望大神们多给点建议!!

你们的建议都试了,都没什么反应。把蜂鸣器换成灯泡就能亮,我猜是不是三极管的流向蜂鸣器的电流太小。最后我用了电流探针,蜂鸣器就响了。但本人电路知识还太薄弱了,不知怎么修改,望大神们多给点建议!!

举报
2014-6-15 11:31:24
没问题的。只是三极管部分处理不好,电流太小了。不知如何修改!!
没问题的。只是三极管部分处理不好,电流太小了。不知如何修改!!
举报
2014-6-15 11:38:20
人耳能听到的声音频率最高一般到20KHz附近,如果再高就只有特异功能的人能感知。
人耳能听到的声音频率最高一般到20KHz附近,如果再高就只有特异功能的人能感知。
举报
2014-6-15 13:55:17
蜂鸣器是电压型器件,需要提高电压。
仿真 —— 把蜂鸣器的驱动电路电压提高到+12V以上。
实物 —— 在蜂鸣器(片)上粘一个有弹性的“纸盆”。
蜂鸣器是电压型器件,需要提高电压。
仿真 —— 把蜂鸣器的驱动电路电压提高到+12V以上。
实物 —— 在蜂鸣器(片)上粘一个有弹性的“纸盆”。
举报
2014-6-16 10:32:03
直接弄个实物出来。仿真并不能代表实际,有时反而误导人去排除一些本来不存在的问题。
直接弄个实物出来。仿真并不能代表实际,有时反而误导人去排除一些本来不存在的问题。
举报
2014-7-9 19:20:04
电流小了,再加个三极管放大一下就可以了,或者用运放也行。
电流小了,再加个三极管放大一下就可以了,或者用运放也行。
举报
2014-7-16 09:56:10
蜂鸣器一般需要12v 或者9v电压来驱动,上拉12v试试
蜂鸣器一般需要12v 或者9v电压来驱动,上拉12v试试
举报
2014-7-27 19:08:39
P0口要加上拉电阻才能输出正确的高低电平,你这图有问题,换P1口就好了,还有演示有点短,确保用的不是和频率有关的那种蜂鸣器!
P0口要加上拉电阻才能输出正确的高低电平,你这图有问题,换P1口就好了,还有演示有点短,确保用的不是和频率有关的那种蜂鸣器!
举报
2014-7-27 19:11:06
P0口不是真正的IO口,要加上拉电阻才能输出正确的高低电平,换上P1口就好了(无需上拉),还有确保用的实物不是那种和频率有关的蜂鸣器呀!
P0口不是真正的IO口,要加上拉电阻才能输出正确的高低电平,换上P1口就好了(无需上拉),还有确保用的实物不是那种和频率有关的蜂鸣器呀!
举报
2014-7-27 19:11:20
P0口不是真正的IO口,要加上拉电阻才能输出正确的高低电平,换上P1口就好了(无需上拉),还有确保用的实物不是那种和频率有关的蜂鸣器呀!
P0口不是真正的IO口,要加上拉电阻才能输出正确的高低电平,换上P1口就好了(无需上拉),还有确保用的实物不是那种和频率有关的蜂鸣器呀!
举报