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

標題: 單片機驅動蜂鳴器聲音很小,且不連續是滴滴滴的聲音 [打印本頁]

作者: gyg    時間: 2020-4-30 20:17
標題: 單片機驅動蜂鳴器聲音很小,且不連續是滴滴滴的聲音
我使用的是普中V3.0開發板,使用附帶的例程沒問題,聲音很響亮

但加載上我的程序之后,蜂鳴器的聲音很小,且是不連續的為嘀嘀嘀的聲音

懇請有經驗的大佬指導一下

附上蜂鳴器相關程序

  1. sbit Beep = P1^1;                                                            //蜂鳴器
  2.                                 if(yanwu >= yushe_yanwu)            //煙霧大于等于預設值
  3.                                 {
  4.                                         Led_Red2 = 0;                          /*打開煙霧報警燈*/
  5.                                          Beep= 1;                 //蜂鳴器報警
  6.                                         delay(5);
  7.                                         Beep= 0;
  8.                                         delay(5);
  9.                                         Led_green2 = 1;
  10.                                 }
復制代碼




作者: xxpp2011    時間: 2020-4-30 20:17
                           
while(yanwu >= yushe_yanwu)            //煙霧大于等于預設值
{
       Led_Red2 = 0;                          /*打開煙霧報警燈*/
       Beep= 1;                 //蜂鳴器報警  
       yanwujiance();         //重新檢測煙霧濃度                                    
  }
Led_Red2 = 1;                          /*關閉煙霧報警燈*/                  
Beep= 0;                 //蜂鳴器復位
作者: Jiam    時間: 2020-4-30 22:50
這種情況應該是延時時間太長了  可以發一下延時函數出來看看
作者: ibeam    時間: 2020-4-30 23:00
你的delay(5)是延時5ms還是多久?能不能附上你說的附帶例程程序看看與你的有什么差別?還有你的硬件和例程的硬件有什么差別?
作者: csmyldl    時間: 2020-5-1 00:02
硬件電路未加三極管進行驅動
作者: TTQ001    時間: 2020-5-1 09:18
也許將原始代碼與你自己的代碼進行比較以檢查有什么不同
作者: hantu    時間: 2020-5-1 09:39
因為普中板用的是無源蜂鳴器,要用高頻方波驅動才好好發聲,它的例程是這么做的,所以正常。而你的代碼只是簡單地改變電平并稍延時讓它響,當然聲音不會很響。
作者: xxpp2011    時間: 2020-5-1 10:18
Beep= 1;
delay(5);
  Beep= 0;
  delay(5);
每響5ms中斷5ms當然不連續了。
作者: gyg    時間: 2020-5-1 10:56
Jiam 發表于 2020-4-30 22:50
這種情況應該是延時時間太長了  可以發一下延時函數出來看看

void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 100; j > 0; j--);
}
作者: gyg    時間: 2020-5-1 11:27
ibeam 發表于 2020-4-30 23:00
你的delay(5)是延時5ms還是多久?能不能附上你說的附帶例程程序看看與你的有什么差別?還有你的硬件和例 ...
  1. 例程
  2. #include <reg51.h>
  3. sbit Beep =  P1^1 ;
  4. void delay(unsigned int i) ;
  5. void main()
  6. {
  7.          Beep= 1;
  8.          delay(5);
  9.          Beep= 0;
  10.          delay(5);
  11. }

  12. void delay(unsigned int i)
  13. {
  14.     char j;
  15.     for(i; i > 0; i--)
  16.         for(j = 200; j > 0; j--);
  17. }


  18. 我的部分程序

  19. sbit Beep = P1^1;                                                            //蜂鳴器
  20. void delay(unsigned int i)
  21. {
  22.     char j;
  23.     for(i; i > 0; i--)
  24.         for(j = 200; j > 0; j--);
  25. }
  26.                                 if(yanwu >= yushe_yanwu)            //煙霧大于等于預設值時
  27.                                 {
  28.                                         Led_Red2 = 0;                          /*打開煙霧報警燈*/
  29.                                         Beep= 1;                 //蜂鳴器報警
  30.                                         delay(5);
  31.                                         Beep= 0;
  32.                                         delay(5);
  33.                                         Led_green2 = 1;
  34.                                 }
復制代碼

作者: gyg    時間: 2020-5-1 11:29
TTQ001 發表于 2020-5-1 09:18
也許將原始代碼與你自己的代碼進行比較以檢查有什么不同

我是按例程上改的,用例程的程序很響亮,我的程序不響亮

  1. 例程程序
  2. #include <reg51.h>
  3. sbit Beep =  P1^1 ;
  4. void delay(unsigned int i) ;
  5. void main()
  6. {
  7.          Beep= 1;
  8.          delay(5);
  9.          Beep= 0;
  10.          delay(5);
  11. }

  12. void delay(unsigned int i)
  13. {
  14.     char j;
  15.     for(i; i > 0; i--)
  16.         for(j = 200; j > 0; j--);
  17. }


  18. 我的 程序(部分)
  19. sbit Beep = P1^1;                                                            //蜂鳴器
  20. void delay(unsigned int i)
  21. {
  22.     char j;
  23.     for(i; i > 0; i--)
  24.         for(j = 200; j > 0; j--);
  25. }
  26.                                 if(yanwu >= yushe_yanwu)            //煙霧大于等于預設值時
  27.                                 {
  28.                                         Led_Red2 = 0;                          /*打開煙霧報警燈*/
  29.                                         Beep= 1;                 //蜂鳴器報警
  30.                                         delay(5);
  31.                                         Beep= 0;
  32.                                         delay(5);
  33.                                         Led_green2 = 1;
  34.                                 }
復制代碼

作者: 銀河天地    時間: 2020-5-1 14:12
如果是有源的,增大延時試試看,如果是無源的,減小延時試試看




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1