中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Atmega128L單片機(jī)控制的聲音監(jiān)測與無線定位系統(tǒng)

        基于Atmega128L單片機(jī)控制的聲音監(jiān)測與無線定位系統(tǒng)

        作者: 時間:2013-11-12 來源:網(wǎng)絡(luò) 收藏
        基于Atmega128L單片機(jī)控制的聲音監(jiān)測與無線定位系統(tǒng)
        圖7
        7.程序設(shè)計及其流程圖
        采用同平面內(nèi)三點定位方法即可得到準(zhǔn)確的定位,統(tǒng)一軌道平面內(nèi)有A、B、C三個定位監(jiān)測點,到目標(biāo)聲源距離分別為Da、Db 、Dc。當(dāng)某一個發(fā)生物體一旦發(fā)聲,聲音通過介質(zhì)空氣傳播,被監(jiān)測點的三個傳感器所接受。設(shè)聲源分別經(jīng)過時間Ta、Tb、Tc被A、B、C監(jiān)測點識別到。通過ATmega128處理,可計算出兩個時間差t1、t2。已知聲音在某介質(zhì)中傳播速度為v。通過幾何定律可計算出聲源0的準(zhǔn)確坐標(biāo)值(x,y)。這樣就能簡單、準(zhǔn)確、高效、無誤的達(dá)到對聲音信號監(jiān)測定位的目的。如圖8所示。
        基于Atmega128L單片機(jī)控制的聲音監(jiān)測與無線定位系統(tǒng)
        圖8
        #includeiom128v.h>
        #includemacros.h>
        #include"define.h"
        extern char Reverse_Display;//是否反相顯示(白底黑字/黑底白字)
        void wr_com(unsigned char value)//寫指令,寫指令時必須為RS=0;RW=0;
        {
        E_clear;
        RS_clear;
        RW_clear;
        delay_ms(1);
        LCD_DB_PORT=value;
        E_set;
        delay_ms(2); //如果沒有延時就必須要加查忙指令
        E_clear;
        }
        void wr_data(unsigned char sj)//寫數(shù)據(jù),寫數(shù)據(jù)時必須為 RS=1;RW=0;
        {
        E_clear;
        RS_set;
        RW_clear;
        delay_ms(1);
        //if(!Reverse_Display)
        LCD_DB_PORT=sj;
        //else
        //PORTA=~sj;
        E_set;
        delay_ms(1);//如果沒有延時就必須要加查忙指令
        E_clear;
        }
        void LCD12864_Initialization (void)
        {
        LCD_DB_PORT=0x00;
        LCD_DB_DDR=0xff;
        COM_PORT=0x00;
        COM_DDR=0xff;
        wr_com(0x01); //清屏
        wr_com(0x08); //關(guān)顯示
        wr_com(0x03); //歸位
        wr_com(0x30); //功能設(shè)置
        //wr_com(0x0D); //開顯示 有光標(biāo)
        wr_com(0x0C);//開顯示 無光標(biāo)
        wr_com(0x01); //清屏
        }
        //****************
        //outChinese 為函數(shù)名
        //place 為顯示地址的首地址
        //unit 字符長度
        //charcode[] 要顯示數(shù)據(jù)的內(nèi)容
        void outChinese(unsigned char place,unsigned char unit,unsigned char *point)
        {
        unsigned char i,progdata;
        wr_com(place);
        for(i=0;iunit*2;i++)//一個漢字為兩個字符
        {
        progdata=*(point+i);
        wr_data(progdata);
        }
        }
        void outchar(unsigned char place,unsigned char unit,unsigned char *point)
        {
        unsigned char i,progdata;
        wr_com(place);
        for(i=0;iunit;i++)
        {
        progdata=*(point+i);
        wr_data(progdata);
        }
        }
        #includeiom128v.h>
        #includemacros.h>
        #include"define.h"
        #pragma interrupt_handler INT_0:2
        const uchar Place_show[]="聲源坐標(biāo)為:";
        const uchar Digits[]="0123456789";
        uchar soures[7]={0,};
        void main()
        {
        init();
        //outChinese(0x80,1,Place_show+0*2);
        EICRA=0X03;//上升沿觸發(fā)0-2中斷
        EIMSK=0X01;//使能0-2中斷
        while(1)
        {
        display();
        delay_ms(1000);
        EIMSK=0X01;//使能0-2中斷
        SEI();
        }
        }
        void init()
        {
        LCD12864_Initialization ();
        }
        void INT_0()
        {
        soures[0]=soures[0]+1;
        if(soures[0]==50) soures[0]=0;
        EIMSK=0X00;//使能0-2中斷
        CLI();
        }
        void delay_us(uint us) //在8M時鐘情況下的US延時
        {
        uint i;
        us = us*5/4; //5/4是在8MHz晶振下,通過軟件仿真反復(fù)實驗得到的數(shù)值
        for(i=0; ius; i++);
        }
        void delay_ms(uint ms)
        {
        uint i,j;
        for(i=0;ims;i++)
        {
        for(j=0;j1141;j++);

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉