download.lst
来自「DSP5402 开发板原理图 很详细 仅共参看」· LST 代码 · 共 421 行 · 第 1/2 页
LST
421 行
196 1 WR_HPIH1_D=0x80;
197 1
198 1 }
199
200 Timer0() interrupt 1
201 {
202 1 ok=1;
203 1 ms++;
204 1 }
205
206 void init_51()
207 {
208 1 TMOD=0x21;
209 1 SCON=0x40;
210 1 REN=1;
211 1 TH1=0xfd;
212 1 TL1=0xfd;
213 1 ET1=0;
214 1 ES=0;
215 1 IT0=1;
216 1 EX0=0;
217 1 ET0=1;
218 1 EA=1;
219 1 TR1=1;
220 1 TR0=1;
221 1 }
222 /***************************************************************/
223
224 void init_AIC23()
225 {
226 1 write_AIC23(RESET,0);
227 1 write_AIC23(D_INTERFACE_ACT,0x001);
228 1 write_AIC23(POWER_CON,0);
229 1 write_AIC23(SAMPLE_RATE,0x022); //44.1k
230 1 // write_AIC23(SAMPLE_RATE,0x062); //22.05k
231 1 // write_AIC23(SAMPLE_RATE,0x02e); //8.021k
232 1
233 1 write_AIC23(L_LINE_VOLUME,0x0117);
234 1 write_AIC23(L_LINE_VOLUME,0x0117);
235 1
236 1 volume=100;
237 1 write_AIC23(L_HEADPHONE_VOLUME,0x0180+volume);
238 1 write_AIC23(R_HEADPHONE_VOLUME,0x0180+volume);
239 1
240 1 // write_AIC23(A_AUDIO_PATH,0x009); //bypass DAC OFF
C51 COMPILER V7.06 DOWNLOAD 12/21/2005 12:04:00 PAGE 5
241 1 // write_AIC23(A_AUDIO_PATH,0x014); //MIC ADC DAC ON 0DB
242 1 // write_AIC23(A_AUDIO_PATH,0x1fc); //bypass MIC ADC DAC ON 0DB sidetone
243 1 write_AIC23(A_AUDIO_PATH,0x07d); //bypass MIC ADC DAC ON 20DB sidetone(-6db)
244 1 // write_AIC23(A_AUDIO_PATH,0x011); //LINE ADC DAC ON
245 1
246 1 write_AIC23(D_AUDIO_PATH,0x04);
247 1
248 1 write_AIC23(D_AUDIO_INTERFACE,0x043); //master dsp mode
249 1 }
250 void write_AIC23(uchar addr,uint dat)
251 {
252 1 uchar i;
253 1 dat|=addr<<9;
254 1 CS=0;
255 1 for(i=0;i<16;i++)
256 1 {
257 2 SCLK=0;
258 2 if((dat<<i)&0x8000)
259 2 SDIN=1;
260 2 else
261 2 SDIN=0;
262 2 SCLK=1;
263 2 }
264 1 SCLK=0;
265 1 CS=1;
266 1 }
267
268 void writeSTA013(uchar addr,uchar x)
269 {
270 1 startbit();
271 1 write8(0x86); //STA013 write
272 1 write8(addr);
273 1 write8(x);
274 1 stopbit();
275 1 }
276 /*
277 uchar readsta013(uchar addr)
278 {
279 uchar dat;
280
281 startbit();
282 write8(0x86);
283 write8(addr);
284
285 startbit();
286 write8(0x87);
287 dat=read8();
288 stopbit();
289 return(dat);
290 }
291
292 uchar read8()
293 {
294 uchar i;
295 uchar d=0;
296 SCK=0;
297 for(i=0;i<8;i++)
298 {
299 SDA=1;
300 SCK=1;
301 delay1(38);
302 if(SDA==1) d=d|((0x80)>>i);
C51 COMPILER V7.06 DOWNLOAD 12/21/2005 12:04:00 PAGE 6
303 delay1(38);
304 SCK=0;
305 }
306
307 SCK=0;
308 delay1(38); //NO ACK
309 SDA=1;
310 SCK=1;
311 delay1(38);
312 SCK=0;
313
314 return(d);
315 }
316 */
317 void write8(uchar d)
318 {
319 1 uchar i;
320 1 for(i=0;i<8;i++)
321 1 {
322 2 SCK=0;
323 2 if((d<<i)&0x80) SDA=1;
324 2 else SDA=0;
325 2 SCK=1;
326 2 delay1(38);
327 2 }
328 1 SCK=0;
329 1
330 1 SCK=1; //ACK bit
331 1 while(SDA);
332 1 SCK=0;
333 1 }
334
335 void startbit()
336 {
337 1 SCK=0;
338 1 delay1(38);
339 1 SDA=1;
340 1 SCK=1;
341 1 delay1(38); //start bit
342 1 SDA=0;
343 1 delay1(38);
344 1 SCK=0;
345 1 delay1(38);
346 1 }
347 void stopbit()
348 {
349 1 SCK=0;
350 1 SDA=0;
351 1 delay1(38);
352 1 SCK=1;
353 1 delay1(38); //stop bit
354 1 SDA=1;
355 1 delay1(38);
356 1 SCK=0;
357 1 delay1(38);
358 1 }
359 void init_sta013()
360 {
361 1 RST013=0;
362 1 delay(200);
363 1 RST013=1;
364 1 delay(10000);
C51 COMPILER V7.06 DOWNLOAD 12/21/2005 12:04:00 PAGE 7
365 1 writeSTA013(0x54,5); //PCM_DIVIDER 384FS
366 1 writeSTA013(0x63,1); //DAC_CLK fixed
367 1 writeSTA013(0x0A,17); //RESERVED
368 1 writeSTA013(0x0B,3); //RESERVED
369 1 writeSTA013(0x55,0X0c); //PCM_CONF 16BIT
370 1 writeSTA013(0x52,160); //PLL_FRAC_441_H
371 1 writeSTA013(0x51,186); //PLL_FRAC_441_L
372 1 writeSTA013(0x65,140); //PLL_FRAC_H
373 1 writeSTA013(0x64,42); //PLL_FRAC_L
374 1 writeSTA013(0x50,10); //MFSDF_441
375 1 writeSTA013(0x61,7); //MFSDF(X)
376 1 writeSTA013(0x05,0xa1); //PLLCTRL
377 1 writeSTA013(0x18,0X04); //DATA_REQ_ENABLE
378 1 writeSTA013(0x0d,0X04); //SCKL_POL SAMPLING ON FALLING EDGE
379 1 writeSTA013(0x0C,0X01); //REQ_POL LINE IS HIGH
380 1 writeSTA013(0x72,0X01); //RUN
381 1 writeSTA013(0x14,0X00); //MUTE
382 1 writeSTA013(0x13,0X01); //PLAY
383 1 }
384
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 902 ----
CONSTANT SIZE = 1060 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 11
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?