<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發(fā)網(wǎng)

      電子開發(fā)網(wǎng)電子設計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
      搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> EDA開發(fā)應用 >> Keilc >> 正文

      TEA5767收音機模塊的C51控制程序

      作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2008-10-31

      這幾天做個案子,用到飛利浦的TEA5767的收音機模塊,在網(wǎng)上搜了下相關的內(nèi)容,發(fā)現(xiàn)很多人都在問,可是提供編程指導的很少,可能是高手都不屑回答這些小問題吧,在這里我把我的部分程序及TEA5767的相關資料放上來吧,給需要的人一些參考.(PS:無錫硅動力的SP3767和TEA5767完全兼容,有中文資料)

      TEA5767采用I2C或者三線接口控制,我是用的I2C,單片機用STC89C52,帶1K EEPROM,可以掉電存臺,1602LCD顯示.

      TEA5767讀寫數(shù)據(jù)都是5個字節(jié),其中PLL參數(shù)14位,具體數(shù)據(jù)格式請看datasheet.以下程序中的函數(shù)可以直接在主程序中調(diào)用.

      #include "iic.c"
      #define max_freq 108000
      #define min_freq 87500
      unsigned char radio_write_data[5]={0x29,0xc2,0x20,0x11,0x00};        //要寫入TEA5767的數(shù)據(jù)
      unsigned char radio_read_data[5];        //TEA5767讀出的狀態(tài)
      unsigned int default_pll=0x29c2;//0x29f9;        //默認存臺的pll,87.8MHz
      //unsigned int max_pll=0x339b;            //108MHz時的pll,
      //unsigned int min_pll=9000;            //70MHz時的pll

      void radio_write(void)
      {
          unsigned char i;
          iic_start();
          iic_write8bit(0xc0);        //TEA5767寫地址
          if(!iic_testack())
          {
              for(i=0;i<5;i++)
              {
                  iic_write8bit(radio_write_data[i]);
                  iic_ack();
              }
          }
          iic_stop();   
      }

      //讀TEA5767狀態(tài),并轉(zhuǎn)換成頻率
      void radio_read(void)
      {
          unsigned char i;
          unsigned char temp_l,temp_h;
          pll=0;
          iic_start();
          iic_write8bit(0xc1);        //TEA5767讀地址
          if(!iic_testack())
          {
              for(i=0;i<5;i++)
              {
                  radio_read_data[i]=iic_read8bit();
                  iic_ack();
              }
          }
          iic_stop();
          temp_l=radio_read_data[1];
          temp_h=radio_read_data[0];
          temp_h&=0x3f;
          pll=temp_h*256+temp_l;
          get_frequency();
      }

      //由頻率計算PLL
      void get_pll(void)
      {
          unsigned char hlsi;
          unsigned int twpll=0;
          hlsi=radio_write_data[2]&0x10;
          if (hlsi)
              pll=(unsigned int)((float)((frequency+225)*4)/(float)32.768);    //頻率單位:k
          else
              pll=(unsigned int)((float)((frequency-225)*4)/(float)32.768);    //頻率單位:k
      }
      //由PLL計算頻率
      void get_frequency(void)
      {
          unsigned char hlsi;
          unsigned int npll=0;
          npll=pll;
          hlsi=radio_write_data[2]&0x10;
          if (hlsi)
              frequency=(unsigned long)((float)(npll)*(float)8.192-225);    //頻率單位:KHz
          else
              frequency=(unsigned long)((float)(npll)*(float)8.192+225);    //頻率單位:KHz
      }

      //手動設置頻率,mode=1,+0.1MHz; mode=0:-0.1MHz ,不用考慮TEA5767用于搜臺的相關位:SM,SUD
      void search(bit mode)
      {
          radio_read();       
          if(mode)
          {
              frequency+=100;
              if(frequency>max_freq)
                  frequency=min_freq;
          }
          else
          {
              frequency-=100;
              if(frequency<min_freq)
                  frequency=max_freq;
          }         
          get_pll();
          radio_write_data[0]=pll/256;
          radio_write_data[1]=pll%256;
          radio_write_data[2]=0x20;
          radio_write_data[3]=0x11;
          radio_write_data[4]=0x00;
          radio_write();
      }

      //自動搜臺,mode=1,頻率增加搜臺; mode=0:頻率減小搜臺,不過這個好像不能循環(huán)搜臺
      void auto_search(bit mode)
      {
          radio_read();
          get_pll();
          if(mode)
              radio_write_data[2]=0xa0;
          else
              radio_write_data[2]=0x20;   
          radio_write_data[0]=pll/256+0x40;
          radio_write_data[1]=pll%256;   
          radio_write_data[3]=0x11;
          radio_write_data[4]=0x00;
          radio_write();
          radio_read();
          while(!(radio_read_data[0]&0x80))     //搜臺成功標志
          {
              radio_read();
              disp_freq(9,1);
          }   
      }

      Tags:單片機收音,收音控制程序,keil  
      責任編輯:admin
      相關文章列表
      沒有相關文章
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網(wǎng)友評論
      推薦文章
      最新推薦
      熱門文章
      關于我們 - 聯(lián)系我們 - 廣告服務 - 友情鏈接 - 網(wǎng)站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 亚洲综合国产精品第一页| 狠狠色色综合网站| 亚洲熟女综合一区二区三区| 亚洲国产亚洲综合在线尤物| 亚洲精品国产综合久久久久紧| 色婷婷99综合久久久精品 | 色综合天天综合网国产国产人| 亚洲综合色在线观看亚洲| 91久久婷婷国产综合精品青草| 亚洲综合久久1区2区3区| 久久婷婷五月综合成人D啪| 久久综合鬼色88久久精品综合自在自线噜噜 | 狠狠色丁香婷婷久久综合蜜芽| 婷婷亚洲综合一区二区| 天天综合网色中文字幕| 伊人激情久久综合中文字幕| 国产精品综合在线| 综合五月激情二区视频| 色综合天天综合狠狠| 青青热久久综合网伊人| 中文自拍日本综合| 伊人久久综合无码成人网| 色综合天天综合婷婷伊人| 色婷婷综合久久久久中文字幕| 狠狠色丁香久久婷婷综合图片| 亚洲国产成人久久综合一区| 久久香蕉综合色一综合色88| 一本色道久久综合亚洲精品| 久久久久噜噜噜亚洲熟女综合| 99久久婷婷免费国产综合精品| 日韩人妻无码一区二区三区综合部 | 欧洲亚洲综合一区二区三区| 亚洲精品欧美综合四区| 亚洲欧洲国产成人综合在线观看| 国产亚洲综合一区二区三区| 色悠久久久久久久综合网伊人| 亚洲国产天堂久久综合| 亚洲色婷婷综合久久| 亚洲av日韩av综合| 五月婷婷开心综合| 亚洲一本综合久久|