国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

51單片機-蜂鳴器

發布時間:2011-3-21 11:54    發布者:諸葛孔明
關鍵詞: 51單片機 , 蜂鳴器
蜂鳴器是一種一體化的電子訊響設備,主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型,他廣泛應用于計算機,

打印機,復印機,報警器,電話機等電子設備中做報警器件。單片機上使用的蜂鳴器一般都是電磁式無源蜂鳴

器。如圖:



它由振蕩器,電磁線圈,磁場,振動膜片,外殼等組成。接通電源后,振蕩器產生的音頻信號電流通過電磁線圈,

使電磁線圈產生磁場,振動膜片在電磁線圈和磁鐵的共同作用下,周期性的振動發聲。



這是蜂鳴器的原理圖,PNP型三極管,這個圖里是一個典型的開關管,E極接VCC,B極接一個限流電阻,三極管

的B極不能承受大的電流所以加上一個限流電阻,電流從VCC流向E極,如果B極是低電平則導通,電流從E極流過

C極到達蜂鳴器。P3_4與蜂鳴器之間通過跳線連接,所以如果P3_4為低電平就可以驅動蜂鳴器想起來。

#include
sbit p3_4 = P3^4;

void delay(){
        int i,j;
        for(i = 0; i < 0xff; i++)
                for(j = 0; j < 0xff; j++)
                        ;
}
void main(){
        int i;
        for(i = 0; i < 10; i++){
                p3_4 = 0;
                delay();
                p3_4 = 1;
        }
}

聲音的產生

   聲音的產生是一種音頻振動的效果,振動的頻率高,則為高音;振動的頻率低,則為低音;音;一般音響電

路是用正弦波信號驅動喇叭。在數字電路里,則是用數字脈沖信號驅動喇叭從而產生聲音。如果聲音的頻率相同

,人類的耳朵很難區分出哪個脈沖信號產生的聲音,哪個正弦波信號產生的聲音,P0口無上拉電阻。

    在蜂鳴器中,聲音是由蜂鳴器的振動產生的。蜂鳴器就像一個電磁鐵,電流流過它既可產生磁性,這樣蜂鳴

器里發生的膜片將被吸住;電流消時,膜片將被放開。若要產生頻率為f的脈沖,則要在T時間內(其中T=1/f),

進行吸放各一次,換言之,產生磁性,消除磁性的時間各為T/2,成為半周期。例如要產生1KHZ的頻率,則半周期

為0.5ms,所以P1.0所送出的信號一個周期中,其中0.5ms為高電平,另外0.5ms為低電平。切換速度越快,聲音

越高;反之,切換速度越慢,聲音越低。除了控制發聲的高低外,若還能控制發生的時間長短,這樣就會有節奏感

,也就形成 了“音樂”的雛形。DO,RE,MI,FA,SO,LA,SI,DO分別代表某一個頻率的聲音,我們稱之為“音調”

。“節拍”即Beat,簡單的說就是打拍子。以生日快樂簡譜為例,C3/4代表為C調,C調音節表包括3個音階(低音

,中音,高音),每個每個音階為8個音度,其中細 分為12個半音(即DO,DO#,RE,RE#,MI,FA,FA#,SO,SO#,

LA,LA#,SI)。

單片機如何輸出頻率:



得到600HZ的頻率:

#include
sbit p = P3^4;

void main(){
        p = 1;
        EA = 1;
        ET0 = 1;
        TMOD = 0x01;
        TH0 = (65536-833)/256;
        TL0 = (65536-833)%256;
        TR0 = 1;
        while(1);
}

void time0() interrupt 1{
        p = ~p;
        TH0 = (65536-833)/256;
        TL0 = (65536-833)%256;        
}

內循環一次8.3us

void delay8us(unsigned char x){
        unsigned char i,j;
        for(i = 0; i < x; i++)
                for(j = 0; j < 1; j++)
                        ;
}

音符頻率及定時器初值對照表:




4*4電子琴程序的實現:

#include
#define uchar unsigned char
#define uint unsigned int
uint DATE,i;
sbit buzz = P3^4;
sbit L0 = P0^0;
sbit L1 = P0^1;
sbit L2 = P0^2;
sbit L3 = P0^3;
sbit H0 = P0^4;
sbit H1 = P0^5;
sbit H2 = P0^6;
sbit H3 = P0^7;
uchar TH0_DATA = 0;
uchar TL0_DATA = 0;
uchar code qin[] = {262,277,293,329,349,392,440,494};

uint key(){
        P0 = 0xfe;
        if(H0 == 0)return 13;
        if(H1 == 0)return 9;
        if(H2 == 0)return 5;
        if(H3 == 0)return 1;
        P0 = 0xfd;
        if(H0 == 0)return 14;
        if(H1 == 0)return 10;
        if(H2 == 0)return 6;
        if(H3 == 0)return 2;
        P0 = 0xfb;
        if(H0 == 0)return 15;
        if(H1 == 0)return 11;
        if(H2 == 0)return 7;
        if(H3 == 0)return 3;
        P0 = 0xf7;
        if(H0 == 0)return 16;
        if(H1 == 0)return 12;
        if(H2 == 0)return 8;
        if(H3 == 0)return 4;
        return 0;
}

void main(){
        EA = 1;
        ET0 = 1;
        TMOD = 0x01;
        TR0 = 0;
        while(1){
                i = key();
                if(i == 0){
                        TR0 = 0;
                        buzz = 1;
                }
                else{
                        if(i > 8){
                                DATE = 65536 - (50000/(qin[i-9]*2))*10;
                                TH0_DATA  = DATE >> 8;
                                TL0_DATA = DATE & 0x00ff;
                        }
                        else{
                                DATE = 65536 - (50000/qin[i-1])*10;
                                TH0_DATA = DATE >> 8;
                                TL0_DATA = DATE & 0x00ff;
                        }
                        TR0 = 1;
                }        
        }
}

void time0() interrupt 1{
        buzz = ~buzz;
        TH0 = TH0_DATA;
        TL0 = TL0_DATA;
}

由于我使用的板子自帶的有源蜂鳴器,所以聲音很難聽,哈哈。


李萬鵬
本文地址:http://m.qingdxww.cn/thread-59042-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
williamkmcn 發表于 2011-7-7 17:28:15
好東西值得收藏
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产美女视频国产视视频 | 国产福利久久青青草原下载 | 国产精品自在线拍国产 | 国产一级做a爰大片免费久久 | 久久亚洲私人国产精品 | 亚洲国产精久久久久久久 | 亚洲综合一区二区三区四区 | 成人香蕉视频 | 男女性高爱潮免费网站 | 精品三级在线观看 | 国产精品免费精品自在线观看 | 成都4片p高清完整版在线观看 | 国产xx在线观看 | 日韩美aaa特级毛片 日韩每日更新 | 精品国产免费观看一区高清 | 四虎hk网址 | 天天夜夜狠狠一区二区三区 | 97高清国语自产拍 | 国产性片在线观看 | 亚洲国产精品久久精品成人 | 国产精品1024免费看 | 色欧美片视频在线观看 | 欧美特级一级片 | 九色九色九色在线综合888 | 日日干狠狠操 | 欧美在线一区二区三区 | 成人黄色片在线观看 | 91久久青青草原线免费 | 久久99久久精品视频 | 97成人精品视频在线播放 | 丁香狠狠色婷婷久久综合 | 黄色短片免费看 | 国产69页 | 日韩福利在线观看 | 国产在线xvideos | 香蕉蕉亚亚洲aav综合 | 天堂v网 | 欧美人与动性行为高清视频 | 变态 调教 视频 国产九色 | www.香蕉视频 | 久久精品一区二区三区不卡 |