找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3245|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

單片機蜂鳴器開關(guān)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:289989 發(fā)表于 2018-3-31 16:05 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我在單片機函數(shù)中打開蜂鳴器,延時一段時間后關(guān)閉。然后主函數(shù)中while(1)中調(diào)用這個函數(shù),每次都會出現(xiàn)蜂鳴器一直響個不停。怎么樣能讓蜂鳴器只響一次?或者說蜂鳴器在while(1)函數(shù)中應(yīng)該怎么調(diào)用。
求指點,謝謝~~~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

7#
ID:197714 發(fā)表于 2018-4-1 16:57 | 只看該作者
蜂鳴器給零給一就行了
回復(fù)

使用道具 舉報

6#
ID:197714 發(fā)表于 2018-4-1 16:56 | 只看該作者
蜂鳴器  給零給一就可以了
回復(fù)

使用道具 舉報

5#
ID:289989 發(fā)表于 2018-4-1 16:49 | 只看該作者
Tryturned 發(fā)表于 2018-4-1 12:28
/**************************************************************************************
*                         ...

嗯,多謝啦~
回復(fù)

使用道具 舉報

地板
ID:289989 發(fā)表于 2018-4-1 16:49 | 只看該作者
huaixi 發(fā)表于 2018-4-1 10:32
可以為蜂鳴器設(shè)置一個標(biāo)志位,使用前在while循環(huán)外先將標(biāo)志位置1,執(zhí)行函數(shù)前先判斷這個標(biāo)志位,為1時執(zhí)行函數(shù) ...

嗯,多謝啦
回復(fù)

使用道具 舉報

板凳
ID:300287 發(fā)表于 2018-4-1 12:28 | 只看該作者
/**************************************************************************************
*                              蜂鳴器實驗                                                                                                  *
實現(xiàn)現(xiàn)象:下載程序后蜂鳴器發(fā)聲
注意事項:無                                                                                                                                                                  
***************************************************************************************/

#include "reg52.h"                         
#include<intrins.h>                //因為要用到左右移函數(shù),所以加入這個頭文件

typedef unsigned int u16;          //對數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;

sbit beep=P1^5;  //IO口自己重新選擇即可     

/*******************************************************************************
* 函 數(shù) 名         : delay
* 函數(shù)功能                   : 延時函數(shù),i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
        while(i--);       
}

/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{       
        int i=1;
        while(1)
        {       
                if(i=1)
                {beep=~beep;
                delay(10);}//延時大約100us   通過修改此延時時間達(dá)到不同的發(fā)聲效果       
                i++;
        }
}
可以這樣試試
回復(fù)

使用道具 舉報

沙發(fā)
ID:292089 發(fā)表于 2018-4-1 10:32 | 只看該作者
可以為蜂鳴器設(shè)置一個標(biāo)志位,使用前在while循環(huán)外先將標(biāo)志位置1,執(zhí)行函數(shù)前先判斷這個標(biāo)志位,為1時執(zhí)行函數(shù),在函數(shù)末尾將標(biāo)志位清零.
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表