📄 download.lst
字号:
C51 COMPILER V7.06 DOWNLOAD 06/08/2005 14:51:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DOWNLOAD
OBJECT MODULE PLACED IN DOWNLOAD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DOWNLOAD.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1
-
2 #include <Reg52.h>
3 #include <absacc.h>
4 #include <stdio.h>
5 #include <intrins.h>
6 #include <dspcode.h>
7 /*定义宏*/
8 #define uint unsigned int
9 #define uchar unsigned char
10
11 #define VOL1 0x81
12 #define VOL2 0x82
13
14 #define L_LINE_VOLUME 0x00
15 #define R_LINE_VOLUME 0x01
16 #define L_HEADPHONE_VOLUME 0x02
17 #define R_HEADPHONE_VOLUME 0x03
18 #define A_AUDIO_PATH 0x04
19 #define D_AUDIO_PATH 0x05
20 #define POWER_CON 0x06
21 #define D_AUDIO_INTERFACE 0x07
22 #define SAMPLE_RATE 0x08
23 #define D_INTERFACE_ACT 0x09
24 #define RESET 0x0f
25
26
27 /*定义寄存器端口地址*/
28 #define HPICL XBYTE[0xe000]
29 #define HPICH XBYTE[0xe100]
30 #define WR_HPIL0_D XBYTE[0xe200]
31 #define WR_HPIH0_D XBYTE[0xe300]
32 #define WR_HPIL_A XBYTE[0xe400]
33 #define WR_HPIH_A XBYTE[0xe500]
34 #define WR_HPIL1_D XBYTE[0xe600]
35 #define WR_HPIH1_D XBYTE[0xe700]
36
37 #define RD_HPIL0_D XBYTE[0xeA00]
38 #define RD_HPIH0_D XBYTE[0xeB00]
39 #define RD_HPIL1_D XBYTE[0xeE00]
40 #define RD_HPIH1_D XBYTE[0xeF00]
41
42 #define WR_CR XBYTE[0x7100]
43 #define WR_PARA XBYTE[0x7000]
44
45 sbit DSPRST = P1^2;
46 sbit RST8019 = P1^3;
47 sbit USBRST = P1^4;
48 sbit LCDRST = P1^5;
49
50 sbit CS =P3^3;
51 sbit SDIN =P3^4;
52 sbit SCLK =P3^5;
53
54
C51 COMPILER V7.06 DOWNLOAD 06/08/2005 14:51:00 PAGE 2
55 uchar hpic;
56 bit ok,readT,key_down;
57 unsigned char time,stoptime,ms,DSPorder;
58 unsigned char volume;
59
60 void wr_dspcode();
61 void delay(uint wu);
62 void LOADDSP();
63 void init_51();
64 void init_AIC23();
65 void write_AIC23(uchar addr,uint dat);
66 void DspRst(void);
67 void UsbRst(void);
68 void LcdRst(void);
69 void RstNet();
70 unsigned char rd_hpi(uint addr);
71
72 unsigned char getDSP();
73
74 main()
75 {
76 1
77 1 init_AIC23();
78 1
79 1 delay(10000);
80 1 RstNet();
81 1 DspRst();
82 1 LcdRst();
83 1 UsbRst();
84 1 LOADDSP();
85 1 init_51();
86 1
87 1 delay(30000);
88 1 volume=108;
89 1 write_AIC23(L_HEADPHONE_VOLUME,0x0180+volume);
90 1
91 1 while(1);
92 1
93 1 }
94
95 void delay(uint wu)
96 {
97 1 for(wu;wu>0;wu--);
98 1 }
99
100
101 void LcdRst(void)
102 {
103 1 LCDRST = 0;
104 1 delay(200);
105 1 LCDRST = 1;
106 1 delay(200);
107 1 }
108 void DspRst()
109 {
110 1 DSPRST=0;
111 1 delay(200);
112 1 DSPRST=1;
113 1 delay(200);
114 1 }
115
116 void UsbRst(void)
C51 COMPILER V7.06 DOWNLOAD 06/08/2005 14:51:00 PAGE 3
117 {
118 1 USBRST = 0;
119 1 delay(200);
120 1 USBRST = 1;
121 1 delay(200);
122 1 }
123
124 void RstNet()
125 {
126 1 RST8019=1;
127 1 delay(200);
128 1 RST8019=0;
129 1 delay(200);
130 1 }
131
132 void LOADDSP()
133 {
134 1 wr_dspcode();
135 1 }
136 /*
137 unsigned char rd_hpi(uint addr)
138 {
139 unsigned char i;
140 WR_HPIL_A=addr/256;
141 WR_HPIH_A=addr%256;
142 i=RD_HPIL0_D;
143 i=RD_HPIH0_D;
144 return(i);
145 }
146
147 void wr_hpi(uint addr,uint dat)
148 {
149 WR_HPIL_A=addr/256;
150 WR_HPIH_A=addr%256;
151 WR_HPIL1_D=dat/256;
152 WR_HPIH1_D=dat%256;
153 }
154 */
155 void wr_dspcode()
156 {
157 1 uchar code *dspptr,*temp;
158 1 uchar len;
159 1 char i;
160 1 uint addr;
161 1
162 1 HPICL=0x08; //clear HPIint,least is first
163 1 HPICH=0x08;
164 1
165 1 dspptr=dspcode;
166 1 while(1)
167 1 {
168 2 len=*dspptr++;
169 2 if(len==0) break;
170 2 else
171 2 {
172 3 addr=((*dspptr++)*256)+(*dspptr++);
173 3 addr--;
174 3 temp=dspptr;
175 3 again:
176 3 WR_HPIL_A=addr/256;
177 3 WR_HPIH_A=addr%256;
178 3 for(i=0;i<len/2;i++)
C51 COMPILER V7.06 DOWNLOAD 06/08/2005 14:51:00 PAGE 4
179 3 {
180 4 WR_HPIL0_D=*dspptr++;
181 4 WR_HPIH0_D=*dspptr++;
182 4 }
183 3 dspptr=temp;
184 3 addr++;
185 3 WR_HPIL_A=addr/256;
186 3 WR_HPIH_A=addr%256;
187 3 for(i=0;i<len/2;i++)
188 3 {
189 4 if(RD_HPIL0_D!=*dspptr++) goto again; //不相等,再写
190 4 if(RD_HPIH0_D!=*dspptr++) goto again;
191 4 }
192 3 }
193 2 }
194 1 WR_HPIL_A=0x00;
195 1 WR_HPIH_A=0x7f;
196 1 WR_HPIL1_D=0x00; //THE START ADDRESS OF RUN
197 1 WR_HPIH1_D=0x80;
198 1
199 1 }
200
201 Timer0() interrupt 1
202 {
203 1 ok=1;
204 1 ms++;
205 1 }
206
207 void init_51()
208 {
209 1 TMOD=0x21;
210 1 SCON=0x40;
211 1 REN=1;
212 1 TH1=0xfd;
213 1 TL1=0xfd;
214 1 ET1=0;
215 1 ES=0;
216 1 IT0=1;
217 1 EX0=0;
218 1 ET0=1;
219 1 EA=1;
220 1 TR1=1;
221 1 TR0=1;
222 1 }
223 /***************************************************************/
224
225 /*
226 unsigned char getDSP()
227 {
228 WR_HPIL_A=0;
229 WR_HPIH_A=0x7d;
230 return(RD_HPIH0_D);
231 }
232 */
233 void init_AIC23()
234 {
235 1 write_AIC23(RESET,0);
236 1 write_AIC23(D_INTERFACE_ACT,0x001);
237 1 write_AIC23(POWER_CON,0);
238 1 write_AIC23(SAMPLE_RATE,0x022); //44.1k
239 1 // write_AIC23(SAMPLE_RATE,0x062); //22.05k
240 1 // write_AIC23(SAMPLE_RATE,0x02e); //8.021k
C51 COMPILER V7.06 DOWNLOAD 06/08/2005 14:51:00 PAGE 5
241 1
242 1 write_AIC23(L_LINE_VOLUME,0x0117);
243 1 write_AIC23(L_LINE_VOLUME,0x0117);
244 1
245 1 volume=100;
246 1 write_AIC23(L_HEADPHONE_VOLUME,0x0180+volume);
247 1 write_AIC23(R_HEADPHONE_VOLUME,0x0180+volume);
248 1
249 1 // write_AIC23(A_AUDIO_PATH,0x009); //bypass DAC OFF
250 1 // write_AIC23(A_AUDIO_PATH,0x014); //MIC ADC DAC ON 0DB
251 1 // write_AIC23(A_AUDIO_PATH,0x1fc); //bypass MIC ADC DAC ON 0DB sidetone
252 1 write_AIC23(A_AUDIO_PATH,0x07d); //bypass MIC ADC DAC ON 20DB sidetone(-6db)
253 1 // write_AIC23(A_AUDIO_PATH,0x011); //LINE ADC DAC ON
254 1
255 1 write_AIC23(D_AUDIO_PATH,0x04);
256 1
257 1 write_AIC23(D_AUDIO_INTERFACE,0x043); //master dsp mode
258 1 }
259 void write_AIC23(uchar addr,uint dat)
260 {
261 1 uchar i;
262 1 dat|=addr<<9;
263 1 CS=0;
264 1 for(i=0;i<16;i++)
265 1 {
266 2 SCLK=0;
267 2 if((dat<<i)&0x8000)
268 2 SDIN=1;
269 2 else
270 2 SDIN=0;
271 2 SCLK=1;
272 2 }
273 1 SCLK=0;
274 1 CS=1;
275 1 }
276 /*
277 unsigned char getkey()
278 {
279 uchar key;
280 if(RI)
281 {
282 RI=0;
283 key=SBUF;
284 return(key);
285 }
286 return(255);
287 }
288 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 626 ----
CONSTANT SIZE = 1060 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 9
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -