標(biāo)題: 單片機(jī)蜂鳴器開(kāi)關(guān)問(wèn)題 [打印本頁(yè)]

作者: Yubug    時(shí)間: 2018-3-31 16:05
標(biāo)題: 單片機(jī)蜂鳴器開(kāi)關(guān)問(wèn)題
我在單片機(jī)函數(shù)中打開(kāi)蜂鳴器,延時(shí)一段時(shí)間后關(guān)閉。然后主函數(shù)中while(1)中調(diào)用這個(gè)函數(shù),每次都會(huì)出現(xiàn)蜂鳴器一直響個(gè)不停。怎么樣能讓蜂鳴器只響一次?或者說(shuō)蜂鳴器在while(1)函數(shù)中應(yīng)該怎么調(diào)用。
求指點(diǎn),謝謝~~~

作者: huaixi    時(shí)間: 2018-4-1 10:32
可以為蜂鳴器設(shè)置一個(gè)標(biāo)志位,使用前在while循環(huán)外先將標(biāo)志位置1,執(zhí)行函數(shù)前先判斷這個(gè)標(biāo)志位,為1時(shí)執(zhí)行函數(shù),在函數(shù)末尾將標(biāo)志位清零.
作者: Tryturned    時(shí)間: 2018-4-1 12:28
/**************************************************************************************
*                              蜂鳴器實(shí)驗(yàn)                                                                                                  *
實(shí)現(xiàn)現(xiàn)象:下載程序后蜂鳴器發(fā)聲
注意事項(xiàng):無(wú)                                                                                                                                                                  
***************************************************************************************/

#include "reg52.h"                         
#include<intrins.h>                //因?yàn)橐玫阶笥乙坪瘮?shù),所以加入這個(gè)頭文件

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

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

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

/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無(wú)
* 輸    出             : 無(wú)
*******************************************************************************/
void main()
{       
        int i=1;
        while(1)
        {       
                if(i=1)
                {beep=~beep;
                delay(10);}//延時(shí)大約100us   通過(guò)修改此延時(shí)時(shí)間達(dá)到不同的發(fā)聲效果       
                i++;
        }
}
可以這樣試試
作者: Yubug    時(shí)間: 2018-4-1 16:49
huaixi 發(fā)表于 2018-4-1 10:32
可以為蜂鳴器設(shè)置一個(gè)標(biāo)志位,使用前在while循環(huán)外先將標(biāo)志位置1,執(zhí)行函數(shù)前先判斷這個(gè)標(biāo)志位,為1時(shí)執(zhí)行函數(shù) ...

嗯,多謝啦
作者: Yubug    時(shí)間: 2018-4-1 16:49
Tryturned 發(fā)表于 2018-4-1 12:28
/**************************************************************************************
*                         ...

嗯,多謝啦~
作者: 朱小文    時(shí)間: 2018-4-1 16:56
蜂鳴器  給零給一就可以了
作者: 朱小文    時(shí)間: 2018-4-1 16:57
蜂鳴器給零給一就行了




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