欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9599|回復: 48
收起左側

51單片機有源蜂鳴器不響求助 困擾我好幾天了 附源程序

  [復制鏈接]
ID:964197 發表于 2021-9-5 16:58 | 顯示全部樓層 |閱讀模式
即將大二,有源蜂鳴器,用了三極管驅動,蜂鳴器一直不響,困擾我好幾天了,求助!!。
程序:
#include <at89x52.h>

//#define KEY1 P3_2
//#define KEY2 P3_3
//#define LED1 P3_4
//#define LED2 P3_5
//#define BEEP P1_7

sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit LED1=P3^4;
sbit LED2=P3^5;
sbit BEEP=P1^7;

void delay_nus(unsigned int i);
void delay_nms(unsigned int n);

void main()
{  bit flag=0;
   while(1)
   {
     if((KEY1==0)||(KEY2==0))
         {
           delay_nms(5);   
           if((KEY1==0)||(KEY2==0)){ flag=1; }
           else{ flag=0; }
         }
         else{ flag=0; }

         if(flag){LED1=0; LED2=0; BEEP=0;}
         else{LED1=1; LED2=1; BEEP=1;}
   }
}

void delay_nus(unsigned int i)  //f=11.0592MHz,延時:i>=12 ,i的最小延時單12 us
{
  i=i/10;
  while(--i);
}   

void delay_nms(unsigned int n)  //f=11.0592MHz,延時n ms
{
  n=n+1;
  while(--n)  
    delay_nus(900);         //延時 1ms,同時進行補償
}
電路圖和板子:





1.jpg
IMG_2065.JPG
回復

使用道具 舉報

ID:964197 發表于 2021-9-6 12:59 | 顯示全部樓層
結語
重新焊了一下蜂鳴器終于響了,最終原因是有源蜂鳴器正負極接反了,改過來后可以正常響了,說明I/O口和電路都是沒問題的。這是本人第一次在這個論壇發問題,感覺學習氛圍很好,感謝各位大佬的解答,我從中學到了許多今天開學第一天,終于解決了這個問題,很開心,再次感謝各位!!
回復

使用道具 舉報

ID:964197 發表于 2021-9-6 13:04 | 顯示全部樓層
改正后: new.JPG

回復

使用道具 舉報

ID:964197 發表于 2021-9-5 17:11 | 顯示全部樓層
InkedIMG_2065_LI.jpg
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 17:15 | 顯示全部樓層
我一按鍵兩個LED燈都能亮,就是蜂鳴器不響
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 17:30 | 顯示全部樓層
JP8 的 2腳1腳 連通的話, R7 如果那個100 是 100R 的話, VCC 出來,通過集電極,到基極,最高可以有 5V / 100R = 50mA 電流, IO口直接就能燒掉。蜂鳴器就絕對不會響了。
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 17:34 | 顯示全部樓層
188610329 發表于 2021-9-5 17:30
JP8 的 2腳1腳 連通的話, R7 如果那個100 是 100R 的話, VCC 出來,通過集電極,到基極,最高可以有 5V / ...

那是不是要提高R7的阻值呀
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 17:46 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 17:34
那是不是要提高R7的阻值呀

可能,這個IO已經燒掉了,你必須換一個腳了, 電阻至少要 470R 以上,安全起見最好1K
最后,你這個電路很有問題,一般單片機上,三極管開關,都是控制GND,很少控制VCC, 而且多用NPN(能確保關斷) 很少用PNP(可能會關不掉),
回復

使用道具 舉報

ID:160500 發表于 2021-9-5 18:12 | 顯示全部樓層
斷開JP8,運行程序,用萬用表檢查IO口電壓,按鍵看是否變化
回復

使用道具 舉報

ID:964090 發表于 2021-9-5 18:19 | 顯示全部樓層
拿表測下 看下有沒有電平
回復

使用道具 舉報

ID:68468 發表于 2021-9-5 19:11 | 顯示全部樓層
這個問題首先要區分是軟件還是硬件造成的,1、取出單片機芯片用一條導線直接短接P17到GND,看蜂鳴器是否能正常鳴響,如不能就是蜂鳴器壞或電阻R7R8壞了。2、插回單片機芯片,在程序中將P17與P35交換,即sbit LED2=P1^7;sbit BEEP=P3^5;重新編譯后下載到芯片中試機,如果蜂鳴器響而LED2不亮,說明P17口損壞了,如果蜂鳴器不響而LED2亮,說明P17沒壞。另外,按鍵要一直按著,否則時間太短,蜂鳴器響太短促也聽不出來。
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 19:28 | 顯示全部樓層
188610329 發表于 2021-9-5 17:46
可能,這個IO已經燒掉了,你必須換一個腳了, 電阻至少要 470R 以上,安全起見最好1K
最后,你這個電路很 ...

我剛剛去學了一下三極管,導通的時候發射極和基極的電壓最大不應該是0.7V,然后基極上的電流是7mA嗎?(不知道我的理解對不對)
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 19:34 | 顯示全部樓層
wysh_2004 發表于 2021-9-5 19:11
這個問題首先要區分是軟件還是硬件造成的,1、取出單片機芯片用一條導線直接短接P17到GND,看蜂鳴器是否能 ...

我用電池直接接過蜂鳴器,是可以響的,在程序里將P17與P35交換應該不可行吧,硬件已經決定P1^7和P3^5本來就是分別控制蜂鳴器和LED2的了
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 19:42 | 顯示全部樓層
按鍵只有LED1和LED2亮,蜂鳴器不響
IMG_2066.JPG
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 20:18 | 顯示全部樓層
用萬用表測了R7 和 R8 的電阻都是100歐姆
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 20:26 | 顯示全部樓層
  1. void main()
  2. {  bit flag=0;
  3. LED1=0; LED2=0; BEEP=0;
  4.    while(1)
  5.    {
  6.   
  7.    }
  8. }
復制代碼

主函數改成這樣后在單片機上運行,兩個LED燈均亮,用萬用表測得蜂鳴器兩端電壓是3.3V左右
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 20:42 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 20:26
主函數改成這樣后在單片機上運行,兩個LED燈均亮,用萬用表測得蜂鳴器兩端電壓是3.3V左右

JP8接通,萬用表短接JP8測得基極電流為0,短接蜂鳴器測得電流為47mA
回復

使用道具 舉報

ID:417092 發表于 2021-9-5 20:47 | 顯示全部樓層
170.jpg
蜂鳴器到底是有源還是無源
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 20:55 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 20:26
主函數改成這樣后在單片機上運行,兩個LED燈均亮,用萬用表測得蜂鳴器兩端電壓是3.3V左右

測得基極和發射極間的電壓為0.7V,發射極和集電極的電壓為0
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 20:55 | 顯示全部樓層
ZMRGHY 發表于 2021-9-5 20:47
蜂鳴器到底是有源還是無源

是有源的呀
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 21:01 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 20:26
主函數改成這樣后在單片機上運行,兩個LED燈均亮,用萬用表測得蜂鳴器兩端電壓是3.3V左右

主函數這樣,符合測試需要。
參考 15樓的 圖,一般 單片機驅動蜂鳴器都應該這個樣子。
確認一下 JP8 狀態是否 閉合,
只要你是 有源蜂鳴器,應該能響。
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 21:11 | 顯示全部樓層
本帖最后由 LittleBoss 于 2021-9-5 21:26 編輯

到目前為止總結一下,希望大佬分析出問題出在哪:
1.蜂鳴器電池直接接上正負極可以響
2.R7和R8均為100歐姆,正常
3.焊接沒問題,嚴格按照電路圖焊接的
4.當主函數改成
void main()
{
LED1=0; LED2=0; BEEP=0;
while(1);
}
JP8打到ON
控制燈亮起,蜂鳴器響時,燈亮蜂鳴器不響
用萬用電表測得以下數據
蜂鳴器兩端電壓是0V
三極管的發射極和基極的電壓是0.7V
三極管的發射極和集電極的電壓是0V
JP8的1和2間電壓為0V
用萬用表電流檔紅黑筆分別接JP8的2和1測得電0mA

如果還有什么需要測的就跟我說一下~


回復

使用道具 舉報

ID:964197 發表于 2021-9-5 21:17 | 顯示全部樓層
本帖最后由 LittleBoss 于 2021-9-5 21:23 編輯
LittleBoss 發表于 2021-9-5 21:11
到目前為止總結一下,希望大佬分析出問題出在哪:
1.蜂鳴器電池直接接上正負極可以響
2.R7和R8均為100歐 ...
R7 R8兩端電壓分別1.3V 、0V
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 21:28 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 21:11
到目前為止總結一下,希望大佬分析出問題出在哪:
1.蜂鳴器電池直接接上正負極可以響
2.R7和R8均為100歐 ...

你R7 為 100R   大多數單片機的IO,灌電流只能承受12MA 根本不可能把基極拉低到0。要么拉不低,要么燒IO.
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 21:31 | 顯示全部樓層
188610329 發表于 2021-9-5 21:28
你R7 為 100R   大多數單片機的IO,灌電流只能承受12MA 根本不可能把基極拉低到0。要么拉不低,要么燒IO.

我測了R7兩端電壓是1.3V,然后它的電流是13mA左右,現在我發現發射極與集電極間電壓、蜂鳴器兩端電壓、R8兩端電壓都是0V,感覺是這三個里面哪里出了問題
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 21:39 | 顯示全部樓層
188610329 發表于 2021-9-5 21:28
你R7 為 100R   大多數單片機的IO,灌電流只能承受12MA 根本不可能把基極拉低到0。要么拉不低,要么燒IO.

奇怪了。。。我用萬用電表電流檔紅黑表筆分別接基極和R7的靠近JP8的一端得到的電流值是0.3mA,和我用R7兩端電壓估算的1.3mA差了蠻遠的。。。。
回復

使用道具 舉報

ID:417092 發表于 2021-9-5 21:40 | 顯示全部樓層

把蜂鳴器從源極改到發射極。。。
去掉R8限流電阻。
R7換470歐,如果不響換成330歐,
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 21:40 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 21:31
我測了R7兩端電壓是1.3V,然后它的電流是13mA左右,現在我發現發射極與集電極間電壓、蜂鳴器兩端電壓、R8 ...

你直接飛線,把接P17這個地方接到GND 即手動代替 P17 拉低,看看響不響。就知道了。
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 21:40 | 顯示全部樓層
188610329 發表于 2021-9-5 21:28
你R7 為 100R   大多數單片機的IO,灌電流只能承受12MA 根本不可能把基極拉低到0。要么拉不低,要么燒IO.

更正一下,是0.3mA和13mA差了蠻遠的
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 21:56 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 21:40
更正一下,是0.3mA和13mA差了蠻遠的

你 0.3MA 蜂鳴器響了么? 沒響的話,這電流毫無意義。
回復

使用道具 舉報

ID:417092 發表于 2021-9-5 21:57 | 顯示全部樓層
188610329 發表于 2021-9-5 21:40
你直接飛線,把接P17這個地方接到GND 即手動代替 P17 拉低,看看響不響。就知道了。

PNP三極管,b極對地電阻小于以c極電阻時,三極管不會導通。。
PNP使用時,c極直接,接地。。。。
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 22:03 | 顯示全部樓層
ZMRGHY 發表于 2021-9-5 21:57
PNP三極管,b極對地電阻小于以c極電阻時,三極管不會導通。。
PNP使用時,c極直接,接地。。。。

我不知道你想說什么, 他打算 P17 = 0,讓蜂鳴器響,我告訴他不會響,讓他把打算通過 P17 拉到 0 的地方手動接到 GND, 來代替 P17 = 0, 看看是不是會響, 有什么問題么?
回復

使用道具 舉報

ID:417092 發表于 2021-9-5 22:20 | 顯示全部樓層
188610329 發表于 2021-9-5 22:03
我不知道你想說什么, 他打算 P17 = 0,讓蜂鳴器響,我告訴他不會響,讓他把打算通過 P17 拉到 0 的地方 ...

為什么,不直接說清原因呀
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 22:32 | 顯示全部樓層
ZMRGHY 發表于 2021-9-5 22:20
為什么,不直接說清原因呀

我前面很直接的說了一大堆原因了,你沒看到么?
還有熱心的15樓圖都貼出來了,我也讓他參考15樓的圖了,你沒看到?
他非要認死理,那么只能讓他最簡單的方法自己看到結果,然后再講其他道理了。
回復

使用道具 舉報

ID:624769 發表于 2021-9-5 22:47 | 顯示全部樓層
ZMRGHY 發表于 2021-9-5 22:20
為什么,不直接說清原因呀

抱歉, 可能刷新的問題,是 16樓帖的圖, 貼圖的人還是你。 其實我們倆 和他傳遞的是一個信息。所以,你沒必要和我辯論。我在最開始 6樓 就跟他說要三極管控制GND ,而不是控制 VCC 電阻要換到 470R, 你在16樓也貼了圖,他堅持不改,你有別的辦法么?
回復

使用道具 舉報

ID:417092 發表于 2021-9-5 22:57 | 顯示全部樓層
188610329 發表于 2021-9-5 22:32
我前面很直接的說了一大堆原因了,你沒看到么?
還有熱心的15樓圖都貼出來了,我也讓他參考15樓的圖了 ...

抱歉,網絡問題。延時太多。只看到了。。。我的樓層上一層,你說讓他把基極接地。。。。
前面的真的沒看到
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 23:01 | 顯示全部樓層
我剛剛給我師兄看了看板子他說我的蜂鳴器接反了,他的板子蜂鳴器沒問題,我們用的是同一個電路,我打算重新接一下蜂鳴器試試
回復

使用道具 舉報

ID:964197 發表于 2021-9-5 23:15 | 顯示全部樓層
明天去基地重新焊一下蜂鳴器試試
回復

使用道具 舉報

ID:417092 發表于 2021-9-5 23:53 | 顯示全部樓層
LittleBoss 發表于 2021-9-5 23:15
明天去基地重新焊一下蜂鳴器試試

我在Proteus 仿真了一下。。仿真不出效果。。。。
需要知道,可以驅動蜂鳴器的最低電壓,和蜂鳴器自身電阻。。。
你可以,測量一下驅動蜂鳴器的最低電壓,和蜂鳴器自身電阻。
然后在Proteus 仿真了一下。。。
比自己計算電阻大小好用多了。。。。
使用Proteus 仿真可以,節省很少人工計算
回復

使用道具 舉報

ID:401564 發表于 2021-9-6 09:31 | 顯示全部樓層
這是一個很簡單的問題,真的,經常動手的人,很快就能找到問題
1,先把單片機蜂鳴器的IO設定成強推挽輸出模式(數據手冊上有,自己設定)
2,不要三極管,直接把這個輸出IO連接到蜂鳴器,不用分正負,沒必要
3,不要任何按鍵什么的,直接給這個IO輸出一個1KHZ的方波,可以用定時器
4,蜂鳴器響了,電路和程序就對了,蜂鳴不響,硬件電路或者程序有問題
蜂鳴器會響的,聲音是小點而已,不分正負的
回復

使用道具 舉報

ID:428114 發表于 2021-9-6 10:38 | 顯示全部樓層
有源蜂鳴器是有極性的。
不響,接反的可能性極大。
回復

使用道具 舉報

ID:950946 發表于 2021-9-6 11:00 | 顯示全部樓層
按理說不應該,你拿儀表測一下io口。看是不是壞了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表