久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

有源和無(wú)源蜂鳴器怎么使用,若是延時(shí)時(shí)間過(guò)長(zhǎng)會(huì)導(dǎo)致什么情況發(fā)生?100ms的延時(shí)效果...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:358998 發(fā)表于 2018-7-12 16:57 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
/*=================================================================================================
;**************************************************************************************************
;函數(shù)名稱(chēng)                                                :main.c
;函數(shù)功能                                                :主程序
;函數(shù)說(shuō)明                                                :C-V3各個(gè)子程序調(diào)用
;程序編寫(xiě)人                                                :leegj
;函數(shù)版本                                                :V1.0.0
;函數(shù)編輯最后時(shí)間                                :2017-12-22
;*************************************************************************************************/
/***************************************************************
-----------------------Includes define-------------------------*
***************************************************************/
#include "BS87D20A-3.h"
/***************************************************************
-----------------------Mcu Io definitions----------------------*
***************************************************************/
#define com1    _pc1
#define com2        _pc0
#define com3        _pc2
#define com4        _pc3
#define key1    _pd2
#define key2        _pd3
#define key3        _pa1
#define key4    _pa4
#define beep        _pc4
/***************************************************************
---------------------------FLAG define-------------------------*
***************************************************************/
volatile bit Flag_T1ms;
volatile bit Flag_T5ms;
volatile bit flag_keylong;
volatile bit flag_keyshort;
volatile bit flash_state;
volatile bit flag_timeon;
volatile bit flag_beep;
volatile bit flag_blink_min;
volatile bit flag_blink_sec;
volatile bit flag_blink_dot;
volatile bit ffbeep;
/***************************************************************
-----------------------Variables definitions-------------------*
***************************************************************/
unsigned char strtab[5];//緩沖區(qū)
unsigned char key_number=0;
unsigned char sec=0,min=0,hour=0;
static int temp=0;
unsigned long s;  //秒
unsigned long ms5;
unsigned char keyvalue;
unsigned char        sys_state;
unsigned char        set_state;
/***************************************************************
-----------------------Code definitions------------------------*
***************************************************************/
const unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/***************************************************************
-----------------------Constant data---------------------------*
***************************************************************/
#define                keyup                0x01
#define                keydown                0x02
#define                keychange        0x04
#define                keysys                0x08

#define                sys_off                0x00
#define                sys_on                0x01
#define                sys_power        0x02

#define                set_on                0x00
#define                set_hour        0x01
#define                set_min                0x02
/***************************************************************
---------------------Function declaration----------------------*
***************************************************************/
void fuc_key_up();
void fuc_key_down();
void display_time_state();
void display_pro();
void time_clock();
void display_min();
void display_sec();


/**************************************************************************************************
;函數(shù)名稱(chēng)                                :funcbeep()
;函數(shù)功能                                :蜂鳴器1s鳴叫
;函數(shù)說(shuō)明                                :子函數(shù)
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void funcbeep()
{
        if(flag_beep==1)
        {
                static long tt;
                beep=1;
                if(tt++==100)
                {
                        tt=0;
                        flag_beep=0;
                        beep=0;
                }
               
        }
}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :read_key()
;函數(shù)功能                                :按鍵掃描
;函數(shù)說(shuō)明                                :調(diào)用各個(gè)子程式
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/

void read_key()
{  
    unsigned char        keybak;       
    keybak=0;
    static char key_state=0x00,press_20ms,press_long;
        if(!key1)keybak|=0x01;
        if(!key2)keybak|=0x02;
        if(!key3)keybak|=0x04;
        if(!key4)keybak|=0x08;

    switch (key_state)
    {
        case 0x00:                 // 按鍵初始態(tài)
                if (keybak!=0)
                        {       
                                press_20ms=0;
                                key_state=0x01; // 鍵被按下,狀態(tài)轉(zhuǎn)換到鍵確認(rèn)態(tài)       
                }
                        break;
        case 0x01:                  // 按鍵確認(rèn)態(tài)
            if (keybak!=0)
            {
                                key_state=0x02;
                                keyvalue=keybak;         
            }
            else
            {
                    key_state=0x00;       
            }
            break;
                case 0x02:
                        if (keybak==0)
                        {
                            press_long=0;
                                if(++press_20ms>3)
                    {
                            press_20ms=0;
                            key_state=0x00;
                            flag_keyshort=1;
                            flag_beep=1;
                  
                    }
                        }
                        else
                        {
                                press_20ms=0;
                                if(++press_long>100)
                                {
                                        flag_keylong=1;
                                        flag_beep=1;
                                        press_20ms=0;
                                        press_long=0;
                                        key_state=0x04;
                                }       
                        }
                        break;
        case 0x04:
            if(keybak==0)
            {
                    if(++press_20ms>3)
                    {
                            key_state=0x00;
                    }
            }
            else
            {
                    press_20ms=0;
                                if(++press_long>50)
                                {
                                        flag_keylong=1;
                                        press_long=0;
                                }
                                       
            }
            break;
       
        default:
                break;
   }
}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :key_do()
;函數(shù)功能                                :按鍵功能掃描
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void key_do()
{
        if(flag_keyshort||flag_keylong)
        {
                switch(keyvalue)
                {
                        case keyup:
                                switch(sys_state)
                                {
                                        case sys_off:
                                                break;
                                        case sys_on:
                                                fuc_key_up();
                                                break;
                                        default:
                                                break;
                                }
                                break;
                        case keydown:
                                switch(sys_state)
                                        {
                                                case sys_off:
                                                        break;
                                                case sys_on:
                                                        fuc_key_down();
                                                        break;
                                                default:
                                                        break;
                                        }
                                break;
                        case keychange:
                                switch(sys_state)
                                        {
                                                case sys_off:
                                                        break;
                                                case sys_on:
                                                        if(set_state++==0x02)set_state=0x00;
                                                        flag_blink_min=1;
                                                        flag_blink_sec=1;
                                                        break;
                                                default:
                                                        break;
                                        }
                                break;
                        case keysys:
                                if(sys_state++==0x01)sys_state=0x00;
                                flag_timeon=1;
                                break;
                        default:
                                break;
                }
                flag_keyshort=0;
                flag_keylong=0;
        }
}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :fuc_key_up()
;函數(shù)功能                                :按鍵加
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void fuc_key_up()
{
        switch(set_state)
        {
                case set_hour:       
                        flag_blink_min=0;
                        if(min++==59)min=0;
                        flash_state=0;
                        break;
                case set_min:
                        flag_blink_sec=0;
                        if(sec++==59)sec=0;
                        flash_state=0;
                        break;
                default:
                        break;
        }
}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :fuc_key_down()
;函數(shù)功能                                :按鍵減
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void fuc_key_down()
{
        switch(set_state)
        {
                case set_hour:
                        flag_blink_min=0;//停止閃爍
                        if(min--==0)min=59;
                        flash_state=0;//閃爍狀態(tài)為0,顯示
                break;
                case set_min:
                        flag_blink_sec=0;
                        if(sec--==0)sec=59;
                        flash_state=0;
                break;
               
        }
}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :display_pro()
;函數(shù)功能                                :數(shù)碼管顯示
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void display_pro()
{               
        com1=1;com2=1;com3=1;com4=1;
    switch(temp)
                {
                        case 0:com4=0;
                         _pb=strtab[temp]; break;
                        case 1:com3=0;
                         _pb=strtab[temp]; break;
                        case 2: com3=0;com4=0;
                        _pb=strtab[temp]; break;
                        case 3:com2=0;
                         _pb=strtab[temp]; break;
                        case 4:com1=0;
                         _pb=strtab[temp]; break;
                        default:break;
                }
        if(temp++==4)
                temp=0;
}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :display_time_state()
;函數(shù)功能                                :顯示狀態(tài) (閃爍等)
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void display_time_state()
{
        static long display_time;
        switch(set_state)
        {
                case set_on:
                        flag_timeon=1;
                       
                        switch(sys_state)
                        {
                                case sys_off:
                                        flag_blink_dot=0;
                                        _pb=0xff;
                                        set_state=0x00;
                                break;
                                case sys_on:
                                        flag_blink_dot=1;
                                        strtab[2]=0xff;
                                        if(flash_state==0)
                                        {        //調(diào)整小時(shí),小時(shí)閃爍        閃爍狀態(tài)為0
                                                strtab[0]=tab[sec%10];
                                                strtab[1]=tab[sec/10];
                                                if(flag_blink_dot)strtab[2]=0x7f;
                                                strtab[3]=tab[min%10];
                                                strtab[4]=tab[min/10];
                                                display_pro();
                                                if(display_time++==250)
                                                {
                                                        display_time=0;
                                                        flash_state=1;
                                                }
                                        }
                                        else
                                        {
                                                strtab[0]=tab[sec%10];
                                                strtab[1]=tab[sec/10];
                                                strtab[2]=0xff;
                                                strtab[3]=tab[min%10];
                                                strtab[4]=tab[min/10];
                                                display_pro();
                                                flag_timeon=1;
                                                if(display_time++==250)
                                                {//閃爍狀態(tài)為1,閃爍時(shí)間到
                                                        flash_state=0;
                                                        display_time=0;
                                                }
                                        }       
                                break;
                                case sys_power:
                                break;
                                default:break;
                        }
                        break;
       
                case set_hour:
                        flag_timeon=0;
                       
                        switch(sys_state)
                        {
                                case sys_off:
                                        flag_blink_dot=0;
                                        _pb=0xff;
                                        set_state=0x00;
                                break;
                                case sys_on:
                                        flag_blink_dot=1;
                                        strtab[2]=0xff;
                                        display_min();
                                        if(flag_blink_min)
                                        {
                                                if(flash_state==0)
                                                {                //狀態(tài)0,亮
                                                        strtab[0]=tab[sec%10];
                                                        strtab[1]=tab[sec/10];
                                                        if(flag_blink_dot)strtab[2]=0x7f;
                                                        strtab[3]=tab[min%10];
                                                        strtab[4]=tab[min/10];               
                                                        display_pro();
                       
                                                        if(display_time++==300)
                                                        {
                                                                display_time=0;
                                                                flash_state=1;
                                                        }
                                                }
                                                else
                                                {                                        //狀態(tài)1 ,滅  狀態(tài)切換閃爍
                                                        strtab[0]=tab[sec%10];
                                                        strtab[1]=tab[sec/10];
                                                        if(flag_blink_dot)strtab[2]=0x7f;
                                                        strtab[3]=0xff;
                                                        strtab[4]=0xff;
                                                        display_pro();
                                                        if(display_time++==300)
                                                        {
                                                                flash_state=0;    //切換為0
                                                                display_time=0;  
                               
                                                        }
                                                }
                                        }
                                break;
                                case sys_power:
                                break;
                                default:break;
                        }                       
                break;
               
                case set_min:
                        flag_timeon=0;
                        switch(sys_state)
                        {
                                case sys_off:
                                        flag_blink_dot=0;
                                        _pb=0xff;
                                        set_state=0x00;
                                break;
                                case sys_on:
                                        flag_blink_dot=1;
                                        strtab[2]=0xff;
                                        display_sec();
                                        if(flag_blink_sec)
                                        {
                                                if(flash_state==0)
                                                {                //狀態(tài)0,亮
                                                        strtab[0]=tab[sec%10];
                                                        strtab[1]=tab[sec/10];
                                                        if(flag_blink_dot)strtab[2]=0x7f;
                                                        strtab[3]=tab[min%10];
                                                        strtab[4]=tab[min/10];               
                                                        display_pro();
                                                        if(display_time++==300)
                                                        {
                                                                display_time=0;
                                                                flash_state=1;
                                                        }
                                                }
                                                else
                                                {                                        //狀態(tài)1 ,滅  狀態(tài)切換閃爍
                                                        strtab[0]=0xff;
                                                        strtab[1]=0xff;
                                                        if(flag_blink_dot)strtab[2]=0x7f;
                                                        strtab[3]=tab[min%10];
                                                        strtab[4]=tab[min/10];
                                                        display_pro();
                                                        if(display_time++==300)
                                                        {
                                                                flash_state=0;    //切換為0
                                                                display_time=0;         
                                                        }
                                                }
                                        }
                                break;
                                default:break;
                        }                               
                break;
                default:break;
        }
       
}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :display_min()
;函數(shù)功能                                :分鐘顯示
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void display_min()
{
        if(flash_state==0)
        {               
                strtab[0]=tab[sec%10];
                strtab[1]=tab[sec/10];
                if(flag_blink_dot)strtab[2]=0x7f;
                strtab[3]=tab[min%10];
                strtab[4]=tab[min/10];               
                display_pro();
        }
        else
        {                               
                strtab[0]=tab[sec%10];
                strtab[1]=tab[sec/10];
                if(flag_blink_dot)strtab[2]=0x7f;
                strtab[3]=0xff;
                strtab[4]=0xff;
                display_pro();
        }

}
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :display_sec()
;函數(shù)功能                                :秒顯示
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void display_sec()
{
        if(flash_state==0)
        {       
                strtab[0]=tab[sec%10];
                strtab[1]=tab[sec/10];
                if(flag_blink_dot)strtab[2]=0x7f;
                strtab[3]=tab[min%10];
                strtab[4]=tab[min/10];
                display_pro();
        }
        else
        {
                strtab[0]=0xff;
                strtab[1]=0xff;
                if(flag_blink_dot)strtab[2]=0x7f;
                strtab[3]=tab[min%10];
                strtab[4]=tab[min/10];
                display_pro();
        }
}


/**************************************************************************************************
;函數(shù)名稱(chēng)                                :time_clock()
;函數(shù)功能                                :1s計(jì)數(shù) 秒 分鐘 小時(shí)
;函數(shù)說(shuō)明                                :子函數(shù)
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void time_clock()
{
        sec++;       
        if(sec==60)
        {
            sec=0;
            min++;
       if(min==60)
       {
                       min=0;
                         hour++;
                        if(hour==24)
                        {
                                  hour=0;
                        }               
       }
    }               
}

/**************************************************************************************************
;函數(shù)名稱(chēng)                                :init()
;函數(shù)功能                                :初始化配置
;函數(shù)說(shuō)明                                :
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
void init()
{
        _ctm1c0=0x20;  // fh/16   2us        
        _ctm1c1=0xc1; // 定時(shí)/計(jì)數(shù)器模式 比較器a ctm1
        _ctm1al=0xf4; // 1ms
    _ctm1ah=0x01;
        _pbc=0; //輸出
        _pcc0=0;
        _pcc1=0;
        _pcc2=0;
        _pcc3=0;
        _pcc4=0;
         beep=0;
        _pcpu4=1;
        _pac1=1;
        _pac4=1;
        _pdc2=1;
        _pdc3=1;
        _pdpu3=1;
        _pdpu2=1;
        _papu1=1;
        _papu4=1;
         s=1000;
         ms5=5;
         temp=0;
        _mfe=1; //開(kāi)多功能中斷
        _ctm1ae=1;
        _emi=1;        //開(kāi)總中斷
        _ct1on=1;
        }
       
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :main()
;函數(shù)功能                                :主函數(shù)
;函數(shù)說(shuō)明                                :調(diào)用各個(gè)子程式
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
        void main()
        {
                init();
                while(1)
                {
                        if(Flag_T1ms)
                        {        static int t;
                                funcbeep();
                                Flag_T1ms=0;
                                if(t++==2)
                                {
                                t=0;
                                display_time_state();
                                }
                        }
                        if(Flag_T5ms)
                        {
                                Flag_T5ms=0;
                                read_key();
                                key_do();
                        }       
                        GCC_CLRWDT();
                }
        }
       
/**************************************************************************************************
;函數(shù)名稱(chēng)                                :__attribute__((interrupt(0x20))) ISR_CTM1(void)
;函數(shù)功能                                :CTM1中斷
;函數(shù)說(shuō)明                                :中斷函數(shù)
;函數(shù)參數(shù)                                :無(wú)
;函數(shù)返回值                                :無(wú)
;函數(shù)修改說(shuō)明                        :1.修改時(shí)間【    】
                                                 2.修改內(nèi)容【    】
;開(kāi)始編輯時(shí)間                        :2017-12-22
;程序編寫(xiě)人                                :leegj
;函數(shù)版本                                :V1.0.0
;函數(shù)編輯最后時(shí)間                :2017-12-22
;*************************************************************************************************/
        void __attribute__((interrupt(0x20))) ISR_CTM1(void)
        {
                _ctm1af=0;
                ms5--;
                Flag_T1ms=1;
                if(!ms5)
                {
                        ms5=5;
                       
                        Flag_T5ms=1;
                }
                s--;
                if(! s)
                {   
                        s=1000;//1s電子鐘計(jì)數(shù)
                        if(flag_timeon==1){
                        time_clock();
                        }
                }       
        }
       

       
       
       
       

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:142059 發(fā)表于 2018-7-12 21:31 | 只看該作者
有源蜂嗚器就是給電源就能一直響叫,而無(wú)源的只接電源是不響叫的,要給它一個(gè)時(shí)刻變化的電源它才叫,這個(gè)變化的電流的頻率能直接決定它響叫的聲音的音調(diào)高低,所以,如果你用蜂嗚器只是用作報(bào)警作用,用有源的即可,如果要用作音樂(lè)要聲或自定義發(fā)聲,就要用無(wú)源。

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2018-7-13 05:46 | 只看該作者
有源蜂嗚器接通電源就會(huì)持續(xù)鳴響,無(wú)源蜂鳴器需要約2KHz脈沖驅(qū)動(dòng)。從你的程序看是使用的有源蜂鳴器,響鈴觸發(fā)由位變量flag_beep控制,響鈴時(shí)長(zhǎng)由長(zhǎng)整型變量tt計(jì)數(shù)控制,在有符號(hào)64位范圍內(nèi)調(diào)整tt值都不會(huì)影響其它程序運(yùn)行。tt的計(jì)數(shù)周期就是主函數(shù)的循環(huán)周期。所以響鈴時(shí)長(zhǎng)需要調(diào)試后才能確定。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:389283 發(fā)表于 2018-8-29 13:44 | 只看該作者
無(wú)源蜂鳴器必須要添加方波才可以響,建議看蜂鳴器規(guī)格書(shū)找出諧振點(diǎn)可以有最大的聲音
有源的話(huà)添加高電平就可以響了

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区四区免费观看 | 久久精品中文 | 国产精品久久久99 | 国产精品日韩一区二区 | 久草视 | 日韩一区二区三区在线视频 | 亚洲成人自拍 | 欧美一区二区免费视频 | 成人午夜免费视频 | 精品久久99 | 免费观看成人鲁鲁鲁鲁鲁视频 | 国产99精品 | 成人在线视频一区 | 日韩视频一区二区 | 亚洲免费成人av | 国产一区二区麻豆 | 久草在线青青草 | 日本欧美黄色片 | 99热在线免费 | 在线播放国产一区二区三区 | 亚洲高清在线观看 | 国内精品视频一区二区三区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 午夜影院免费体验区 | 91视频免费在观看 | 亚洲欧美一区二区三区视频 | 免费看欧美一级片 | 亚洲一区二区三区在线 | 欧美日本高清 | 99国内精品久久久久久久 | 欧美精品久久久久久久久久 | 国产精品美女久久久久aⅴ国产馆 | 久久综合亚洲 | 亚洲一区二区三区在线播放 | 日韩欧美大片 | 国产精品高潮呻吟久久 | 在线视频国产一区 | 欧美色综合 | 日韩欧美精品在线 | 色毛片| www.se91|