📄 fm.lst
字号:
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 + -