1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9226|回復: 17
收起左側

關于單片機控制的無源蜂鳴器的延時問題?

  [復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 2 黑幣獎勵! 每人限 2 次
ID:377872 發表于 2018-8-11 11:18 | 顯示全部樓層 |閱讀模式
     無源蜂鳴器這段是什么意思?
       void delay()
             {
                uchar m,n,s;
                 for(m=20;m>0;m--);
                 for(n=20;n>0;n--);
                 for(s=248;s>0;s--);
              }
回復

使用道具 舉報

ID:155507 發表于 2018-8-11 12:51 | 顯示全部樓層
阻塞性軟件延時函數程序, 方法效率很低,讓芯片在那兒空運行幾百毫秒,什么也不做,真是莫大的浪費,

評分

參與人數 1黑幣 +10 收起 理由
woshige + 10 大佬就是大佬 什么時候我也能說出這樣的話.

查看全部評分

回復

使用道具 舉報

ID:377872 發表于 2018-8-11 15:27 | 顯示全部樓層
angmall 發表于 2018-8-11 12:51
阻塞性軟件延時函數程序, 方法效率很低,讓芯片在那兒空運行幾百毫秒,什么也不做,真是莫大的浪費,

但是沒有這段程序我的蜂鳴器就不響了。。。
回復

使用道具 舉報

ID:298053 發表于 2018-8-11 19:07 | 顯示全部樓層
延時函數,看讓蜂鳴器怎么響了,如果只是控制蜂鳴器響或不響延時函數一般不起作用(具體看整體),如果還要控制蜂鳴器的音調,那可能會使用延時函數來輸出pwm波(一般用定時器來做),無源蜂鳴器通電好像是不會響的(我也沒用過,不敢肯定),要給一定頻率信號(pwm)才會響。

評分

參與人數 1黑幣 +5 收起 理由
hyg1997 + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:384109 發表于 2018-8-11 22:06 | 顯示全部樓層
蜂鳴器分無源蜂鳴器和有源蜂鳴器兩種,有源蜂鳴器只需要給供電就可以響,所以控制起來方便。無源蜂鳴器需要給與一定頻率的信號使蜂鳴器振蕩發聲,所以要有一個產生一定頻率方波信號的程序,否則無源蜂鳴器使不會響的。
在有源蜂鳴器里有一個振蕩電路來產生使無源蜂鳴器發聲的電路,所以有源蜂鳴器是無源蜂鳴器和振蕩電路的組合

評分

參與人數 2黑幣 +25 收起 理由
hyg1997 + 5 贊一個!
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:155507 發表于 2018-8-12 10:01 | 顯示全部樓層
hyg1997 發表于 2018-8-11 15:27
但是沒有這段程序我的蜂鳴器就不響了。。。

你要控制無源蜂鳴器, 可以通過定時器的定時中斷,每一個時間到都完成不同的處理動作,如何去做呢。一般我們會想到在一個定時中斷函數中再定義static 變量繼續定時,到了所需時間,做不同的動作。

我們會發現,原來用定時中斷來處理會更好。比如我們可以500ms中斷一次,讓燈亮或滅,其余的時間,系統還可以做非常之多的事情,效率一下提升了很多。

評分

參與人數 1黑幣 +5 收起 理由
hyg1997 + 5 很給力!

查看全部評分

回復

使用道具 舉報

ID:213173 發表于 2018-8-12 14:34 | 顯示全部樓層
利用T1中斷作無源蜂鳴器2KHz驅動信號發生器
void Timer1Init()        //250微秒@12.000MHz
{
        TMOD &= 0x0F;        //設置定時器模式
        TMOD |= 0x20;        //設置定時器模式
        TL1 = 0x06;                //設置定時初值
        TH1 = 0x06;                //設置定時重載值
        TR1 = 1;                //定時器1開始計時
    EA  = 1;                //開總中斷
    ET1 = 1;                //開T1中斷
}

void Timer1Interrupt() interrupt 3
{
        if(sign==1)                        //使能蜂鳴器
                Buzzer=~Buzzer;        //蜂鳴器端口取反
        else Buzzer=0;                //蜂鳴器復位
}

評分

參與人數 2黑幣 +40 收起 理由
angmall + 35 贊一個!
hyg1997 + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:364278 發表于 2018-8-12 19:53 | 顯示全部樓層
無源蜂鳴器用途不是很廣,也可能是我孤陋寡聞,無源蜂鳴器我用32輸出方波控制做過音樂盒,如果僅僅是
回復

使用道具 舉報

ID:364278 發表于 2018-8-12 19:58 | 顯示全部樓層
說實話如果你僅僅用他的報警功能做一個簡單的三極管放大電路,管腳給個電平就能響
回復

使用道具 舉報

ID:385372 發表于 2018-8-18 17:53 | 顯示全部樓層
無源蜂鳴器需要給與一定頻率的信號使蜂鳴器振蕩發聲,所以要有一個產生一定頻率方波信號的程序,否則無源蜂鳴器使不會響
回復

使用道具 舉報

ID:387065 發表于 2018-8-18 21:55 | 顯示全部樓層
這個 是一段演示函數,可以固定間隔頻率 就可以使蜂鳴器發聲
回復

使用道具 舉報

ID:387065 發表于 2018-8-18 21:56 | 顯示全部樓層
主要看無源還是有源
回復

使用道具 舉報

ID:386381 發表于 2018-8-19 19:14 來自觸屏版 | 顯示全部樓層
就是改變輸出脈沖的寬度
回復

使用道具 舉報

ID:431356 發表于 2018-12-1 18:54 | 顯示全部樓層
通過循環來延時吧
回復

使用道具 舉報

ID:437304 發表于 2018-12-1 19:17 | 顯示全部樓層
讓系統在那算術,延時
回復

使用道具 舉報

ID:437304 發表于 2018-12-1 19:17 | 顯示全部樓層
這樣延時浪費系統的資源
回復

使用道具 舉報

ID:357520 發表于 2018-12-1 20:22 | 顯示全部樓層
人中狼 發表于 2018-8-11 22:06
蜂鳴器分無源蜂鳴器和有源蜂鳴器兩種,有源蜂鳴器只需要給供電就可以響,所以控制起來方便。無源蜂鳴器需要 ...

漲知識了
回復

使用道具 舉報

ID:249013 發表于 2018-12-1 21:08 | 顯示全部樓層
這個可以自己調出來不同的聲音的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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