📄 config.lst
字号:
C51 COMPILER V7.05 CONFIG 08/24/2006 23:48:54 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE CONFIG
OBJECT MODULE PLACED IN config.OBJ
COMPILER INVOKED BY: F:\program files\silabs\IDEfiles\C51\BIN\C51.exe config.c DB OE
stmt level source
*** WARNING C500 IN LINE 1 OF CONFIG.C: MISSING DEVICE (SECURITY KEY NOT FOUND)
1 /////////////////////////////////////
2 // Generated Initialization File //
3 /////////////////////////////////////
4
5 #include "c8051F020.h"
6 #include <math.h>
7 #include <absacc.h>
8
9 // Peripheral specific initialization functions,
10 // Called from the Init_Device() function
11 void Reset_Sources_Init()
12 {
13 1 WDTCN = 0xFF;
14 1 }
15
16 void Timer_Init()
17 {
18 1 TMOD = 0x10;
19 1 T2CON = 0x04;
20 1 RCAP2L = 0xAF;
21 1 RCAP2H = 0x3C;
22 1 TL2 = 0xAF;
23 1 TH2 = 0x3C;
24 1 }
25
26 void ADC_Init()
27 {
28 1 ADC0CN = 0xCC;
29 1 ADC0LTH = 0x08;
30 1 ADC0LTL = 0x59;
31 1 ADC0GTH = 0x07;
32 1 ADC0GTL = 0x90;
33 1 }
34
35 void DAC_Init()
36 {
37 1 DAC0CN = 0x80;
38 1 }
39
40 void Comparator_Init()
41 {
42 1 int i = 0;
43 1 CPT0CN = 0x85;
44 1 for (i = 0; i < 60; i++); // Wait 20us for initialization
45 1 CPT0CN &= ~0x30;
46 1 }
47
48 void Voltage_Reference_Init()
49 {
50 1 REF0CN = 0x03;
51 1 }
52
53 void Port_IO_Init()
54 {
C51 COMPILER V7.05 CONFIG 08/24/2006 23:48:54 PAGE 2
55 1 P0MDOUT = 0xFF;
56 1 P1MDOUT = 0xFF;
57 1 P2MDOUT = 0xFF;
58 1 P3MDOUT = 0xFF;
59 1 XBR2 = 0x40;
60 1 }
61
62 void Oscillator_Init()
63 {
64 1 int i = 0;
65 1 OSCXCN = 0x67;
66 1 for (i = 0; i < 3000; i++); // Wait 1ms for initialization
67 1 while ((OSCXCN & 0x80) == 0);
68 1 OSCICN = 0x0C;
69 1 }
70
71 void Interrupts_Init()
72 {
73 1 IE = 0xA0;
74 1 IP = 0x20;
75 1 EIE1 = 0x04;
76 1 EIE2 = 0x02;
77 1 }
78
79 // Initialization function for device,
80 // Call Init_Device() from your main program
81 void Init_Device(void)
82 {
83 1 Oscillator_Init();
84 1 Reset_Sources_Init();
85 1 Timer_Init();
86 1 ADC_Init();
87 1 DAC_Init();
88 1 Comparator_Init();
89 1 Voltage_Reference_Init();
90 1 Port_IO_Init();
91 1 Interrupts_Init();
92 1 }
93
94 void timer2int(void);
95 void adc0int(void);
96 void adc0wint(void);
97 void bootdsp(void);
98 void wait(void);
99
100 sbit hint=P0^0;
101 sbit hwr=P0^1;
102 sbit hrdy=P0^2;
103 sbit hcnt0=P0^3;
104 sbit hcnt1=P0^4;
105 sbit hcs=P0^5;
106 sbit hds2=P0^6;
107 sbit hds1=P0^7;
108 sbit has=P3^0;
109 sbit txen=P3^3;
110 sbit rxen=P3^4;
111 sbit bf1=P3^5;
112 sbit bf2=P3^6;
113 sbit bf3=P3^7;
114
115
116 unsigned int flag1=0;
C51 COMPILER V7.05 CONFIG 08/24/2006 23:48:54 PAGE 3
117 unsigned int flag2=0;
118 unsigned int flag3=0;
119 unsigned int i,j,a;
120
121 void main (void) {
122 1
123 1 WDTCN = 0xde; //禁止看门狗
124 1 WDTCN = 0xad;
125 1 Init_Device(); //初始化片内设备
126 1 has=1;
127 1 hcs=1;
128 1 hds2=1;
129 1 hint=1;
130 1 a=0;
131 1 wait();
132 1 while(bf2==1);
133 1 while(hrdy==0);
134 1 bootdsp(); //DSP加载
135 1
136 1 WDTCN = 0x7f;
137 1 bf1=0;
138 1 txen=1;
139 1 rxen=0;
140 1 while (1)
141 1 {WDTCN = 0xa5;
142 2 }
143 1 }
144
145 void timer2int(void) interrupt 5 //定时器2溢出中断
146 {
147 1 TF2=0;
148 1 WDTCN = 0xa5;
149 1 }
150
151 void adc0int(void) interrupt 15 //ADC采集完毕中断
152 {
153 1 a=ADC0H;
154 1 a=(a<<8)+ADC0L;
155 1
156 1 if(flag2==0)
157 1 {flag1=0;
158 2 flag1=0;}
159 1 else if(flag2>=16)
160 1 { if((flag2-flag1)<1)
161 2 txen=0;
162 2 else txen=1;
163 2
164 2 flag1=0;
165 2 flag2=0;
166 2 flag3=0;
167 2 }
168 1
169 1 if((a<0x790)||(a>0x859))
170 1 flag3++;
171 1 if(flag3>=2)
172 1 {
173 2 txen=1;}
174 1
175 1 flag2++;
176 1 AD0INT=0;
177 1 WDTCN = 0xa5;
178 1 }
C51 COMPILER V7.05 CONFIG 08/24/2006 23:48:54 PAGE 4
179
180 void adc0wint(void) interrupt 8 //ADC窗口比较器中断
181 {
182 1
183 1 flag1++;
184 1 AD0WINT=0;
185 1 WDTCN = 0xa5;
186 1 }
187
188 void wait() //延时
189 {for(j=0;j<10;j++)
190 1 {WDTCN = 0xa5;}}
191
192 void bootdsp(void) //DSP加载程序
193 {
194 1 hwr=1;
195 1 has=1;
196 1 hds1=1;
197 1 while(hrdy==0)
198 1 {WDTCN = 0xa5;}
199 1
200 1 hcs=0; //设置加载程序区首地址
201 1 hwr=0;
202 1 hcnt0=0;
203 1 hcnt1=1;
204 1 P1=0x01;
205 1 P2=0x00;
206 1 has=0;
207 1 hds1=0;
208 1 has=1;
209 1 hwr=0;
210 1 hds1=1;
211 1 while(hrdy==0)
212 1 {WDTCN = 0xa5;}
213 1 wait();
214 1
215 1 for(i=8192;i<24320;i++) //自动地址增加方式加载程序,DSP程序在片内0X4000开始的空间
216 1 {
217 2 hwr=0;
218 2 hcnt0=1;
219 2 hcnt1=0;
220 2 P1=CBYTE[i*2];
221 2 P2=CBYTE[i*2+1];
222 2 has=1;
223 2 hds1=0;
224 2 has=1;
225 2 hwr=0;
226 2 has=1;
227 2 hds1=1;
228 2 while(hrdy==0)
229 2 {WDTCN = 0xa5;}
230 2 wait();
231 2 }
232 1
233 1 hcs=0; //设置启动入口暂存区字地址1
234 1 hcs=0;
235 1 hwr=0;
236 1 hcnt0=0;
237 1 hcnt1=1;
238 1 P1=0x00;
239 1 P2=0x61;
240 1 has=0;
C51 COMPILER V7.05 CONFIG 08/24/2006 23:48:54 PAGE 5
241 1 hds1=0;
242 1 has=1;
243 1 hwr=0;
244 1 hds1=1;
245 1 while(hrdy==0)
246 1 {WDTCN = 0xa5;}
247 1 wait();
248 1
249 1 hwr=0; //写入程序入口字节地址低16位
250 1 hcnt0=1;
251 1 hcnt1=1;
252 1 P1=0x2b;
253 1 P2=0xde;
254 1 has=1;
255 1 hds1=0;
256 1 has=1;
257 1 hwr=0;
258 1 hds1=1;
259 1 while(hrdy==0)
260 1 {WDTCN = 0xa5;}
261 1 wait();
262 1
263 1 hwr=0; //设置启动入口暂存区字地址2
264 1 hcnt0=0;
265 1 hcnt1=1;
266 1 P1=0x00;
267 1 P2=0x60;
268 1 has=0;
269 1 hds1=0;
270 1 has=1;
271 1 hwr=0;
272 1 hds1=1;
273 1 while(hrdy==0)
274 1 {WDTCN = 0xa5;}
275 1 wait();
276 1
277 1 hwr=0; //写入程序入口字节地址高8位并指示可以运行
278 1 hcnt0=1;
279 1 hcnt1=1;
280 1 P1=0xff;
281 1 P2=0x00;
282 1 has=1;
283 1 hds1=0;
284 1 has=1;
285 1 hwr=0;
286 1 hds1=1;
287 1 while(hrdy==0)
288 1 {WDTCN = 0xa5;}
289 1 wait();
290 1
291 1 hwr=0; //清除复位标志
292 1 hcnt0=0;
293 1 hcnt1=0;
294 1 P1=0x00;
295 1 P2=0x01;
296 1 has=0;
297 1 hds1=0;
298 1 has=1;
299 1 hwr=0;
300 1 hds1=1;
301 1 while(hrdy==0)
302 1 {WDTCN = 0xa5;}
C51 COMPILER V7.05 CONFIG 08/24/2006 23:48:54 PAGE 6
303 1 hwr=1;
304 1 hcs=1;
305 1
306 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 713 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -