新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機驅動收音機模塊程序

        單片機驅動收音機模塊程序

        作者: 時間:2016-11-30 來源:網絡 收藏
        這是從http://www.51hei.com/bbs/dpj-20623-1.html這個制作里面截取的一段子程序,調用函數請下載里面的附件.


        radio.h文件如下:
        #ifndef _RADIO_H_
        #define _RADIO_H_

        本文引用地址:http://www.104case.com/article/201611/323811.htm


        uint8 radio_read[5];//定義2個五字節數組保存寫入控制寄存器及讀取數據的內存空間
        uint8radio_write[5]={0x00,0x00,0xd0,0x17,0x00};
        //uint16 pll;//14位PLL的值保存于一個字
        static unsignedlongfrequency;//電臺頻率保存變量

        /*-------------------------------------------------------------------------------------------------------------------
        寫寄存器1
        msblsb
        MUTESMPLL13PLL12PLL11PLL10PLL09PLL08
        1:靜音1:搜索模式PLL13->PLL8
        0:正常0:非搜索預置或搜索電臺的頻率值高6位
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        寫寄存器2
        msblsb
        PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0
        PLL7->PLL0
        預置或搜索電臺頻率的低8位
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        寫寄存器3
        msblsb
        SUDSSL1SSL0HLSIMSMLMRSWP1
        1:向上搜臺00:不搜索1:本振高出電臺1:單聲道1:左聲道靜音1:右聲道靜音可編程輸出口設置
        0:向下搜臺01:ADC為5停止225KHz0:立體聲0:右聲道正常0:右聲道正常1:SWPOR1高
        10:ADC為7停止0:本振低于電臺0:SWPOR1低
        11:ADC為10停止225KHz
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        寫寄存器4
        msblsb
        SWP2STBYBLXTALSMUTEHHCSNCSI
        可編程輸出口1:待機1:76~91MHz1:晶振32768Hz1:軟件靜音開1:高電平切割開1:立體聲消噪開
        1:SWPOR2高0:正常0:87.5~108MHz0:13MHz0:軟件靜音關0:高電平切割關0:立體聲消噪關
        0:SWPOR2低
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        寫寄存器5
        msblsb
        PLLREFDTC------
        1:去重時間75uS
        0:去重時間50uS
        --------------------------------------------------------------------------------------------------------------------*/
        /*---------------------------------------------------------
        函數功能:電臺頻率到PLL的轉換
        調用形式:Convert_PLL();
        參數:
        返回值:
        修改時間:
        備注:HLSI為1,采用高本振狀態、XTAL=1,32.768KHz、PLLREF=0
        ---------------------------------------------------------*/
        void Convert_PLL(void)
        {
        uint16 pll;
        uint8 pll1,pll2;//高低位pll值暫存變量
        pll=((frequency+225000)*4)/32768;// 單位均為Hz
        pll1=pll/256;
        pll2=pll%256;
        radio_write[0]=pll1;
        radio_write[1]=pll2;
        }

        /*---------------------------------------------------------
        函數功能:初始化RADIO模塊
        調用形式:Radio_Init();
        參數:
        返回值:
        修改時間:
        備注:轉換PLL值、寫控制字
        ---------------------------------------------------------*/
        void Radio_Init(void)
        {
        //frequency=93400000;//初始電臺頻率93.4MHz
        //radio_write[0]=0x00;
        //radio_write[1]=0x00;
        //radio_write[2]=0xf0;
        radio_write[3]=0x40;
        //radio_write[4]=0x00;
        //Convert_PLL();
        frequency=93400000;
        SendString(RADIO_ADDRESS,radio_write,5);
        }

        /*--------------------------------------------------------------------------------------------------------------------
        讀寄存器1
        msblsb
        RFBLFPLL13PLL12PLL11PLL10PLL9PLL8
        1:發現電臺1:波段到頭PLL13->PLL8
        or搜索到頭0:波段未到頭搜索或預置電臺頻率高6位
        0:未發現電臺
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        讀寄存器2
        msblsb
        PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0
        PLL7->PLL0
        搜索或預置電臺頻率低8位
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        讀寄存器3
        msblsb
        STERE0IF6IF5IF4IF3IF2IF1IF0
        1:立體聲IF6->IF0
        0:單聲道中頻IF計數器結果
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        讀寄存器4
        msblsb
        LEV3LEV2LEV1LEV0CI3CI2CI1CI0
        LEV3->LEV0CI3->CI0
        ADC輸出電平芯片識別(均為0)
        --------------------------------------------------------------------------------------------------------------------*/
        /*--------------------------------------------------------------------------------------------------------------------
        讀寄存器5
        均為保留位
        --------------------------------------------------------------------------------------------------------------------*/
        void Convert_Frequency()
        {
        frequency=radio_read[0]&0x3f;
        frequency<<=8;
        frequency|=radio_read[1];
        frequency=frequency*8192-225000;
        }

        void Radio_Ing(void)
        {
        static bit k=0;
        biti=0;
        uint8 n=0;
        uint16 j;
        if(!k)
        {
        k=1;
        radio_write[3]=0x17;
        }


        上一頁 1 2 下一頁

        關鍵詞: 單片機收音機模

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 商丘市| 宝清县| 陆丰市| 青田县| 浦东新区| 东辽县| 长海县| 栾城县| 梁平县| 通山县| 宜君县| 札达县| 秦皇岛市| 宣威市| 沅陵县| 昭通市| 清新县| 济南市| 太湖县| 抚州市| 大同县| 定结县| 桂平市| 凤阳县| 南涧| 西平县| 永州市| 明溪县| 台南市| 云林县| 偃师市| 万安县| 拉孜县| 大城县| 桑植县| 龙井市| 太康县| 花垣县| 宁蒗| 德令哈市| 宜阳县|