⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fm.lst

📁 车载SCALER模块源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   FM                                                                    12/11/2007 11:24:26 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE FM
OBJECT MODULE PLACED IN .\BIN\fm.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRC\fm.c LARGE OPTIMIZE(9,SPEED) DEBUG OBJECTEXTEND PRINT(.\LST\fm.lst) OBJ
                    -ECT(.\BIN\fm.obj)

stmt level    source

   1          
   2          #include "include.h"
   3          #include<stdio.h>
   4          data unsigned long volatile FM_radio_freq;
   5          data unsigned long volatile AM_radio_freq;
   6          bit sstop ;
   7          bit check;
   8          bit   FM_AM_Mode    ; 
   9          bit   Seekup    ;
  10          #define TunerEEP_ADR       0xA0
  11          unsigned  char  volatile Tun_Buff[40];
  12          /* = 
  13             {
  14              0x91,0x8c,0x07,0x00,0x48,0x17,0x6f,0x00,
  15              0x60,0xc8,0x20,0x05,0xf8,0xf9,0x25,0x4f,
  16              0x00,0x81,0xe0,0xaf,0x8d,0xcf,0x00,0x00,
  17              0xe7,0x1c,0x20,0xeb,0xe5,0x4b,0x81,0xfd,
  18              0x04,0x00,0x00,0x00,0x00,0x00,0xfe,0xfe
  19              };
  20          */
  21          //*********************************************************************
  22          /*
  23          void WriteTunerRegister(unsigned char start,unsigned char end)
  24              {
  25                     unsigned char i;
  26                 IIC_Start();
  27                     IIC_Tx(TUNER_ADR);
  28                     if (start == end)
  29                        IIC_Tx(start);
  30                     else 
  31                        IIC_Tx(start+AUTO_INC);
  32                     for(i=start;i<=end;i++)
  33                         IIC_Tx(Tun_Buff[i]);
  34                     IIC_Stop();
  35                  }
  36                  */
  37          //**********************************************************************
  38          
  39          void ReadTunerEEPROM(unsigned char start,unsigned char end,unsigned char *p)
  40              {
  41   1              unsigned char i;
  42   1              IIC_Start();
  43   1              IIC_Tx(TunerEEP_ADR);
  44   1              IIC_Tx(start);
  45   1              IIC_Start();
  46   1              IIC_Tx(TunerEEP_ADR | 0x01);
  47   1              for(i=start;i<=end;i++,p++)
  48   1                {
  49   2                  
  50   2                       if(i == end)
  51   2                          *p=IIC_Rx(NACK);
  52   2                       else
  53   2                          *p=IIC_Rx(ACK);
  54   2                }
C51 COMPILER V7.06   FM                                                                    12/11/2007 11:24:26 PAGE 2   

  55   1               IIC_Stop();
  56   1              }
  57          //*****************************************************************************
  58          /*
  59          void WriteTunerEEPROM(unsigned char start, unsigned char end, unsigned char *p)
  60             {
  61               unsigned char i;
  62                   IIC_Start();
  63                   IIC_Tx(TunerEEP_ADR);
  64                   IIC_Tx(Start);
  65                   for(i=Start;i<=end;i++,p++)
  66                      {
  67                             IIC_Tx(*p);
  68                          }
  69                   IIC_Stop();
  70             }
  71          */
  72          
  73          
  74          
  75          /**************************************************************
  76          Routine :  WriteTunerRegister 
  77          Input   : 
  78          Output  :
  79          Description 
  80                  - Write into the tuner register
  81          **************************************************************/
  82          
  83          void Delay(time)
  84             {
  85   1          unsigned char i ;
  86   1          for (i=time;i>0;i--)
  87   1              {};
  88   1         }
  89          
  90          void WriteTunerRegister(unsigned char start, unsigned char end)
  91          {
  92   1            unsigned char i;
  93   1              IIC_Start ();
  94   1              IIC_Tx(TUNER_ADR);
  95   1              if(start==end)
  96   1                      IIC_Tx(start);
  97   1              else
  98   1                      IIC_Tx(start+AUTO_INC);
  99   1              for (i=start;i<=end; i++)
 100   1                      IIC_Tx(Tun_Buff[i]);
 101   1              IIC_Stop();
 102   1      
 103   1      }
 104          /****************************************************************
 105          Routine :  TunerRegisterRefresh 
 106          Input   : 
 107          Output  :
 108          Description 
 109                  - Refresh the tuner register
 110          ****************************************************************/
 111          void TunerRegister_Init(void)
 112          {
 113   1      /*
 114   1              if (radio_band < MW1)
 115   1              {
 116   1                      radio_tun_vcoplldiv &= 0xBF;            // select FM mode                       
C51 COMPILER V7.06   FM                                                                    12/11/2007 11:24:26 PAGE 3   

 117   1              }
 118   1              else
 119   1              {
 120   1                      radio_tun_vcoplldiv |= 0x40;        // select AM mode
 121   1              }
 122   1      */
 123   1          ReadTunerEEPROM(10,49,&Tun_Buff[0]);
 124   1      //    Delay(1000);
 125   1              WriteTunerRegister(0,31);
 126   1      //      Delay(1000);
 127   1              WriteTunerRegister(32,39);
 128   1      }
 129          
 130          void  Radio_PLL_FMISet(void)
 131            {
 132   1           data unsigned int buffer;
 133   1               buffer = ( unsigned int )(FM_radio_freq/100);
 134   1               if(buffer >= 1069)
 135   1                  Tun_Buff[0] = 0x4c; 
 136   1               if(( buffer >= 986 )&&(buffer < 1069))
 137   1                  Tun_Buff[0] = 0x49;
 138   1               if((buffer >= 945)&&( buffer < 986 ))
 139   1                  Tun_Buff[0] = 0x46;
 140   1               if(buffer < 945)
 141   1              Tun_Buff[0] = 0x43;
 142   1           if( buffer > 1061 )
 143   1                  Tun_Buff[4] = 0x06;
 144   1           if ((buffer > 1031)&& ( buffer <= 1061 ))
 145   1                  Tun_Buff[4] = 0x04;
 146   1               if((buffer > 998)&& ( buffer <= 1031 ))
 147   1                  Tun_Buff[4] = 0x02;
 148   1           if((buffer > 962)&&(buffer <= 998))
 149   1                  Tun_Buff[4] = 0x00;
 150   1           if((buffer > 927)&&(buffer <= 962))
 151   1                 Tun_Buff[4] = 0x82;
 152   1               if((buffer > 901)&&(buffer <= 927))
 153   1                 Tun_Buff[4] = 0x84;
 154   1               if(buffer <= 901)
 155   1                 Tun_Buff[4] = 0x86;   
 156   1        }
 157          void  Radio_PLL_AMISet(void)
 158           { 
 159   1        unsigned char  buffer;
 160   1       
 161   1       if(AM_radio_freq < 675)
 162   1               buffer = 0x04;
 163   1       if((AM_radio_freq >= 675)&& (AM_radio_freq < 810)) 
 164   1               buffer = 0x05;
 165   1       if((AM_radio_freq >= 810)&& (AM_radio_freq < 963)) 
 166   1               buffer = 0x06;
 167   1       if((AM_radio_freq >= 963)&& (AM_radio_freq < 1107)) 
 168   1               buffer = 0x07;
 169   1       if((AM_radio_freq >= 1107)&& (AM_radio_freq < 1248)) 
 170   1               buffer = 0x08;
 171   1       if((AM_radio_freq >= 1248)&& (AM_radio_freq < 1389)) 
 172   1               buffer = 0x09;
 173   1      if((AM_radio_freq >= 1389)&& (AM_radio_freq < 1538)) 
 174   1               buffer = 0x0a;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -