马潮老师蜂鸣器电路的研讨
按马潮老师书本中demo_8_7C的例子做实验,在PD3没有输出时,蜂鸣器出现发热,测蜂鸣器两端电压有5V,按原理图及程序分析应该此时蜂鸣器两端的电压应为0V才对。不知是何原因,有什么解决的方法? 应该是PD5吧。没有输出是什么概念?PD5定义为输出方式,就有输出,不是“0”就是“1”。
当PD5为“0”,三极管导通,BZ上就有电压,并有大电流通过,时间长了发热。
当PD5为“1”,三极管截止,BZ上就没有电压也无电流流过了(EC反向电流不计)。
应该如何解决应该知道了吧。模拟电路没学过吗?还“研讨”。 我的端口配置是DDRD=0xff;PORT.D=0xff.不应该在没信号时有输出的。你这样说话是不是认为你已经不会有老师了呢? LS的啊!你看你这两句“DDRD=0xff;PORT.D=0xff.”?有空还是看一下你的电路是不接错了,还有你的蜂鸣器是不是有问题啊?给正常蜂鸣器发热要多大的电流?不如讨论这个实在!哈哈 LS蜂鸣器里面怎么组成你知道吗?我在实验板上摸到温度高了点。测三极管的基极是低电压,三极管导通。关健是为什么会出低电平呢,端口已经设置成输出方式,PORTD寄存器也设成了1输出了。 我也曾经遇到过, 开始设置为“DDRD=0xff;PORT.D=0xff.”,本以为这样三极管就截止,蜂鸣器就不会有问题,但后来发现还是发热
把程序烧到硬件上,就发现PD5自动变成低电平,可能开中断时,有什么差错.
请楼主用表量下PD5脚,如果我没有猜错,应该变为低电平了,至于什么原来,还得查自己的程序 我还是说:模拟电路没学过吗?或你的老师如何教你的,还是你自己没学好?!
如此简单的电路都不会自己检查和分析:
1。把R2电阻接PD5的线连到VCC,看BZ上有电压或发热吗,
2。再把线接到GND,同样测试一下。
以上能够知道三极管是否正常,排除CE间的损坏短路。
3。DDRD=0xff;PORTD=0xff.是设置PD口为输出方式,并且全部输出“1”!(什么叫“不应该在没信号时有输出的”,彻底的外行话。只要PD口工作在输出方式,就是有输出。输出“1”是输出,输出“0”也是输出)
4。将PD5与R2连接,运行你的程序,测试PD5端的电压是多少,是5V还是0V。
==================================================
我发好发现LZ又有回贴,证明电路没有问题,是你自己的程序问题。
写个最简单的代码,进行测试。
DDRD=0xff;
PORTD=0xff;
while(1)
{
}
测试PD5的电压,如果是5V,那么问题肯定是你自己的程序毛病。 汗颜。
三极管当开关用是最简单的应用。
Machao老师说得够委婉了,别人不懂还虚心,你这不懂装懂还自以为是。 我无语了. 的确是个基础问题!楼主这个问题搞不定说明距离真正地开发产品还要有相当长的一段路要走!
别一听有人提意见就浑身不自在。 醍醐灌顶,就不自在了。。。
马老师应该准备根教鞭了!!!
页:
[1]