新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AT89S52+12MHZ+TEA5767的數碼管顯示調頻收音機

        AT89S52+12MHZ+TEA5767的數碼管顯示調頻收音機

        作者: 時間:2016-11-30 來源:網絡 收藏

        /**************************************************************************************************************/
        //數據字節3的格式 radio_write_data[2]
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // SUD SSL1 SSL0 HLSI MS ML MR SWP1
        //SUD SUD=1 增加頻率搜索 SUD=0 減小頻率搜索。
        //SLL[1:0] 搜索停止標準:見下表1。
        //SSL0 SSL1 搜索停止標準
        // 0 0 在搜索模式下禁止
        // 0 1 低:ADC輸出大小為5
        // 1 0 中:ADC輸出大小為7
        // 1 1 高:ADC輸出大小為10
        //HLSI 高/低充電電流切換:HLSI=1 高充電電流 HLSI=0 低充電電流。
        //MS 立體聲/單聲道:MS=1 單聲道 MS=0 立體聲。
        //ML 左聲道靜音:ML=1 左聲道靜音并置立體聲 ML=0 左聲道正常。
        //MR 右聲道靜音:MR=1 右聲道靜音并置立體聲 MR=0 右聲道正常。
        //SWP1 軟件可編程端口1:SWP1=1 端口1高電平 SWP1=0 端口1低電平。
        radio_write_data[2] = 0x70; //這是TEA5767開立體聲 關靜音
        /**************************************************************************************************************/
        //數據字節4的各個位描述 radio_write_data[3]
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // SWP2 STBY BL XTAL SMUTE HCC SNC SI
        //SWP2 軟件可編程端口2:SWP2=1,端口2高電平;SWP2=0,端口2低電平。
        //STBY 等待:STBY=1 處于待機模式,STBY=0,退出待機模式。
        //BL 波段制式:BL=1 日本調頻制式 BL=0,美國/歐洲調頻制式。
        //XTAL 如果XTAL=1 那么fxtal=32.768KHz;如果XTAL=0 那么fxtal=13MHz。
        //SMUTE 軟件靜音:SMUTE=1 軟靜音打開;SMUTE=0,軟靜音關閉。
        //HCC 白電平切割:HCC=1 高電平切割打開 HCC=0 高電平切割關閉。
        //SNC 立體聲噪聲去除:如果SNC=1,立體聲消噪除打開,如果SNC=0,立體聲消噪除關閉。
        //SI 搜索標志位:SI=1 SWPORT1輸出準備好信號 SI=0 SWPORT1作為軟件可編程端口1用。
        radio_write_data[3] = 0x16; //中國制式 采用32768晶振 軟靜音關 立體聲消噪聲開
        /**************************************************************************************************************/
        //數據字節5的格式 radio_write_data[4]
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // PLLREF DTC -- -- -- -- -- --
        //若PLLREF=1 6.5MHz的鎖相環參考頻率啟用;若PLLREF=0 6.5MHz的鎖相環參考頻率關閉。
        //若DTC=1 去加重時間常數為75us;若DTC=0 去加重時間常數為50us。
        //位5到0 未用 狀態不必考慮。
        radio_write_data[4] = 0x80; //6.5M鎖相環開 去加重時間50US
        /**************************************************************************************************************/
        radio_write(); //寫入TEA5767
        }
        /**************************************************************************************************************
        //讀模式
        //數據字節1 數據字節2 數據字節3 數據字節4 數據字節5
        //數據字節1的格式
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // RF BLF PLL13 PLL12 PLL11 PLL10 PLL9 PLL8
        //7 RF 準備好標志:RF=1 有一個頻道被搜到或者一個制式已經符合;RF=0 沒有頻道被搜到。
        //6 BLF 波段制式:BLF=1 一個制式已經符合 BLF=0 沒有制式已經符合。
        //5到0 PLL[13:8] 用于搜索和預設后的可編程頻率合成器設定結果。
        //數據字節2的格式
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // PLL7 PLL6 PLL5 PLL4 PLL3 PLL2 PLL1 PLL0
        //數據字節2的各個位描述
        //PLL[7:0] 設定用于搜索和預設后的可編程頻率合成器設定結果。
        //數據字節3的格式
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // STEREO IF6 IF5 IF4 IF3 IF2 IF1 IF0
        //7 STEREO 立體聲標志位:STEREO=1 立體聲接收 STEREO=0 單聲道接收。
        //6到0 IF[6:0] 中頻計數器結果。
        //數據字節4的格式
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // LEV3 LEV2 LEV1 LEV0 CI3 CI2 CI1 0
        //7到4 LEV[3:0] ADC的輸出。
        //3到1 CI[3:1]芯片驗證號。
        //0 ------ 該位內部置0。
        //數據字節5的格式
        //位7(高位) 位6 位5 位4 位3 位2 位1 位0(低位)
        // 0 0 0 0 0 0 0 0
        //7到0 ------ 預留為擴展用 由內部置0。
        /**************************************************************************************************************/
        void delay()
        {
        uchar k;
        for(k = 0;k < 100;k++);
        }
        /**************************************************************************************************************/
        void desplay(uint aa)
        {
        /**************************************************************************************************************
        duan = tab[aa / 1000] | 0x80; //關這位數碼管的小數點
        led1 = 0;
        delay();
        led1 = 1;
        duan = tab[aa % 1000 / 100] | 0x80; //關這位數碼管的小數點
        led2 = 0;
        delay();
        led2 = 1;
        duan = tab[aa % 100 / 10] & 0x7f; //點亮這位數碼管的小數點
        led3 = 0;
        delay();
        led3 = 1;
        duan = tab[aa % 10] | 0x80; //關這位數碼管的小數點
        led4 = 0;
        delay();
        led4 = 1;
        /**************************************************************************************************************/
        dula = 0;
        if((aa / 1000) == 0)
        duan = dispcode[aa / 1000 + 10]; //這位為0數碼管不顯示
        else
        duan = dispcode[aa / 1000]; //這位數碼管顯示頻率百位
        dula = 1;
        dula = 0;
        wela = 0;
        duan = dispbit[2];
        wela = 1;
        wela = 0;
        delay();
        delay();
        delay();
        delay();
        delay();
        delay();
        dula = 0;
        duan = dispcode[aa % 1000 / 100]; //這位數碼管顯示頻率十位
        dula = 1;
        dula = 0;
        wela = 0;
        duan = dispbit[3];
        wela = 1;
        wela = 0;
        delay();
        delay();
        delay();
        delay();
        delay();
        delay();
        dula = 0;
        #ifdef gy
        duan = dispcode[aa % 100 / 10] & 0x7F; //這位數碼管顯示頻率百位 開數碼管的小數點
        #else
        duan = dispcode[aa % 100 / 10] | 0x80; //這位數碼管顯示頻率百位 開數碼管的小數點
        #endif
        dula = 1;
        dula = 0;
        wela = 0;
        duan = dispbit[4];
        wela = 1;
        wela = 0;
        delay();
        delay();
        delay();
        delay();
        delay();
        delay();
        dula = 0;

        duan = dispcode[aa % 10]; //這位數碼管顯示頻率小數位
        dula = 1;
        dula = 0;
        wela = 0;
        duan = dispbit[5];
        wela = 1;
        wela = 0;
        delay();
        delay();
        delay();
        delay();
        delay();
        delay();
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 泊头市| 图片| 平乡县| 定陶县| 丽水市| 昆明市| 保定市| 浮山县| 锦屏县| 班玛县| 镇宁| 长阳| 贵定县| 个旧市| 衡阳市| 龙南县| 曲阳县| 延长县| 南溪县| 丹阳市| 屏东县| 赫章县| 哈尔滨市| 和林格尔县| 阳信县| 七台河市| 商南县| 鸡东县| 隆子县| 铜山县| 年辖:市辖区| 保靖县| 乌恰县| 南陵县| 古丈县| 崇信县| 呼和浩特市| 吉安市| 临海市| 嵊泗县| 阿荣旗|