![]() |
發(fā)布時間: 2018-4-11 11:06
正文摘要:單片機程序: #include <reg52.h> sbit beep=P3^6; void main() { beep=0; } |
注意蜂鳴器正負極,如果兩引腳的高度不一樣,長為正短為負。然后試試輸出為高電平。 |
beep沒有取反,已經產生錯誤了 |
應該是beep的問題,試試取反,這里面涉及了你的蜂鳴器時有源和無源的問題 |
STC89C51 發(fā)表于 2018-4-11 13:41 那就是蜂鳴器信號沒對 |
是無緣蜂鳴器吧 |
你用的應該是無源蜂鳴器 它必須通過對beep取反才能獲得一定頻率的聲音 如果你希望beep=0就可以一直響必須還要用有源的蜂鳴器 |
如果是無源蜂鳴器要寫一個程序產生一個方波才能發(fā)聲 |
說這個圖是高電平使Q1導通的回去好好學習三極管原理...... |
先確定有源還是無源,一個是高電平驅動的一個是低電平的 |
husb2018 發(fā)表于 2018-4-16 11:43 回答的好 |
是不是有源蜂鳴器 |
用高頻三極管 |
可以試一下= |
給高電平試試 |
單片機輸出驅動蜂鳴器,還是單片機拉低然后電源驅動蜂鳴器了 |
來個pwm脈沖試試 |
你這個是無源蜂鳴器 要來回取反才行 |
高電平觸發(fā) |
程序里beep取反應該沒問題了 |
你可以試試speaker 或者看看電壓有沒有給夠 |
換個三極管試試 ,還有那個蜂鳴器有個本來就是不響的 |
高電平 |
beep=~beep;表明你用的蜂鳴器是無源的,有源蜂鳴器beep=0;就會一直響 |
main里面增加while(1)語句,不行的話就改為脈沖去驅動看看 |
高電平發(fā)聲,P0口需要上拉電阻 |
有源和無源這里的“源”不是指電源,而是指震蕩源。也就是說,有源蜂鳴器內部帶震蕩源,所以只要一通電就會叫。而無源內部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它。有源蜂鳴器往往比無源的貴,就是因為里面多個震蕩電路 |
你這個是無源蜂鳴器 需要給一定方波才會響 |
有源蜂鳴器你這樣寫沒問題,但是無源蜂鳴器就有問題 |
可以試試延遲,把高點電平都輸出看看就知道是程序問題還是硬件問題了,如果那樣不響,那就是硬件上有問題了,再檢查你的電路有沒有真的連通了或者沒有短路 |
蜂鳴器高電平發(fā)聲,或者有時還可以看看你的儀器壞了沒 |
1314250 發(fā)表于 2018-4-15 22:40 我怎么看它是有源還是無源呢? |
Q1壞了 |
知道了嗎 |
樓主你可以首先看一下你那蜂鳴器是有源還是無源的,如果是有源的你還需要外加電路,還有就是你蜂鳴器是高電平觸發(fā)還是低電平觸發(fā),這都關系你蜂鳴器響不響的 |
蜂鳴器類型,引腳電壓測量 |
你運行時看看引腳的電平輸入是否正確,如果正確就是蜂鳴器的問題了 |
改成 beep=~beep;試試 |
我在后面加了一句beep=~beep; 它就響了 |
hzcxq 發(fā)表于 2018-4-13 15:23 哇,真的響了,謝謝你,不過我還想知道是什么原理,我看單片機郭天祥51單片機教學視頻里說的,直接讓它=0就可以了,為什么我這里還有取反呢? |
經試驗,=1的時候,也不響 |