📄 7705.lst
字号:
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE 7705
OBJECT MODULE PLACED IN D:\2005_09\7705.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE D:\2005_09\7705.c SMALL DB OE CO OT(SIZE)
stmt level source
1 /************************************************************************/
2 /************************************************************************/
3 /* */
4 /* ad7705 */
5 /* */
6 /* Author: zhiqiang huo */
7 /* */
8 /* */
9 /************************************************************************/
10 //************************************************************************/
11 // set sig_coun=16, consult_con==1, gain==?,
12 // self_just
13 //
14 //
15 #include "math.h"
16 #include "reg52.h"
17 #include "typedef.h"
18 #include "function.h"
19 #include "define.h"
20 #include "varible.h"
21
22
23 #ifdef DC_SINGAL
24 #define MID_VIN_AD 0xbfff
25 #endif
26 sbit AD_CLK = P1^3;
27 sbit AD_IN = P1^4;
28 sbit AD_OUT = P1^5;
29 sbit CONTROL = P3^4; //lichi current control port
30
31
32
33
34 //**************function declare***************
35
36 void Adc_init(void);
37 void Setup_adc_device( unsigned char adjust_mode,unsigned char gain,unsigned char polarity,unsigned char u
-pdate_rate );
38 void Poisitive(int value);
39 void Add_consult( int value);
40 void Dec_consult( int value);
41 void Self_adjust(void);
42 //void Ad_start(void);
43 unsigned int Read_con_data(void); //
44 unsigned char Check_drdy(void); //
45 void Write_reg( unsigned char reg_data);
46 unsigned int Read_word(void); //
47 unsigned char Read_reg_byte(void);
48 void Precess_con_data(void);
49 void Delay(unsigned int timer);
50 void Return_to_init_status(void);
51 void Delay_1us(void);
52 unsigned char Two_square(void);
53
54 extern bit system_init_F;
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 2
55 /*********************************/
56
57
58 //****************int0**************************/
59 void Adc_init(void)
60 {
61 1 #ifndef DC_SINGAL
adc_gain = Read1B(0x25,0); //get system gain
#else
64 1 adc_gain = ADC_GAIN_1 ;
65 1 #endif
66 1 Delay(DELAY3S);
67 1 AD_CLK = 1; //7705-CLK high level
68 1 AD_IN = 1;
69 1 EA=0;
70 1 Return_to_init_status();
71 1 Setup_adc_device(ADC_SELF,adc_gain,ADC_BIPOLAR,ADC_200);
72 1 EA=1;
73 1 Delay(DELAY3S);
74 1
75 1
76 1 // ad_step = 0 ;
77 1 start_F = 0 ;
78 1 consult_coun = 1 ;
79 1 consult = 0 ;
80 1 consult_1 = 0 ;
81 1 consult_2 = 0 ;
82 1 consult_3 = 0 ;
83 1
84 1 return;
85 1 }
86
87 /***********************************/
88 /***********************************/
89 /*
90 void Adc_init_1(void)
91 {
92
93 adc_gain = Read1B(0x25,0); //get system gain
94 AD_CLK = 1; //7705-CLK high level
95 AD_IN = 1;
96 Return_to_init_status();
97 Setup_adc_device(ADC_SELF,adc_gain,ADC_BIPOLAR,ADC_200);
98
99 ad_step = 0 ;
100 start_F = 0 ;
101 consult_coun = 1 ;
102 consult_1 = 0 ;
103 consult_2 = 0 ;
104 consult_3 = 0 ;
105 return;
106 }
107 */
108 /*****************************/
109 /*****************************/
110
111 void Setup_adc_device( unsigned char adjust_mode,unsigned char gain,unsigned char polarity,unsigned char u
-pdate_rate )
112 {
113 1
114 1 // unsigned char byte;
115 1
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 3
116 1 Write_reg(CLK_REG|WRITE|CHANEL_0); //0X20+0X00+0X00=0X20 CLOCK REGISTER
117 1 Write_reg(update_rate);
118 1 // Write_reg(CLK_REG|READ|CHANEL_0); //0X20+0X00+0X00=0X20 CLOCK REGISTER
119 1 // byte = Read_reg_byte();
120 1
121 1 Write_reg(SET_REG|WRITE|CHANEL_0); //0X10
122 1
123 1 Write_reg(adjust_mode|gain|polarity);
124 1 // Write_reg(SET_REG|READ|CHANEL_0); //0X10
125 1 // byte = Read_reg_byte();
126 1 return;
127 1 }
128 /************************************************/
129 /* interrupt 1/10ms,
130 /*******************************/
131
132 /********************************/
133 /********************************/
134 void Signal(void) interrupt 0
135 //void Signal(void) interrupt 3
136 {
137 1 // unsigned int value;
138 1 EA=1; //mask interrupt
139 1 EX0 = 0 ;
140 1
141 1 /* debug
142 1 ET1 = 0 ;
143 1 TH1 = TM10MS_H ;
144 1 TL1 = TM10MS_L ;
145 1 /*
146 1 if(start_F != 1)
147 1 {
148 1 // if(ad_step == 0)
149 1 // Ad_start();
150 1 ad_step++;
151 1 if(ad_step ==16)
152 1 {
153 1 start_F = 1 ;
154 1 ad_step = 0 ;
155 1 }
156 1
157 1 }
158 1 else
159 1 { */
160 1 switch(ad_step)
161 1 {
162 2 case 0: //0x00
163 2 CONTROL = 1;
164 2
165 2 ad_step++;
166 2 break;
167 2 case 1:
168 2 if(system_init_F == 1)
169 2 {
170 3 Write_reg(SET_REG|WRITE|CHANEL_0); //0X10
171 3 Write_reg(adc_gain|ADC_BIPOLAR|START_AD);
172 3 }
173 2 ad_step++;
174 2 break;
175 2
176 2 case 7:
177 2 if(system_init_F == 1)
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 4
178 2 {
179 3 Precess_con_data();
180 3 Write_reg(SET_REG|WRITE|CHANEL_0); //0X10
181 3
182 3 Write_reg(adc_gain|ADC_BIPOLAR|DIS_AD);
183 3 }
184 2 ad_step++;
185 2 break;
186 2
187 2
188 2 // case POLAR_REVERS: //0x08
189 2 case 8:
190 2
191 2 CONTROL = 0 ;
192 2 // CONTROL = 1; //test
193 2 ad_step++;
194 2 break;
195 2
196 2 case 9:
197 2 // Precess_con_data();
198 2 // Write_reg(0x04);
199 2 if(system_init_F == 1)
200 2 {
201 3 Write_reg(SET_REG|WRITE|CHANEL_0); //0X10
202 3 Write_reg(adc_gain|ADC_BIPOLAR|START_AD);
203 3 }
204 2
205 2 ad_step++;
206 2 break;
207 2
208 2
209 2
210 2 case 15:
211 2 ad_step=0;
212 2 if(system_init_F == 1)
213 2 {
214 3 Precess_con_data();
215 3
216 3 Write_reg(SET_REG|WRITE|CHANEL_0); //0X10
217 3 Write_reg(adc_gain|ADC_BIPOLAR|DIS_AD);
218 3
219 3
220 3
221 3 if(consult_coun == 1)
222 3 {
223 4 consult_coun = 2;
224 4 consult_1=consult_1/2.0;
225 4 }
226 3 else if(consult_coun == 2)
227 3 {
228 4 consult_coun = 3;
229 4 consult_2 = consult_2/2.0;
230 4 }
231 3 else
232 3 {
233 4 consult_coun = 1;
234 4 consult_3=consult_3/2.0;
235 4 consult=(consult_1+consult_2+consult_3)/3.0;
236 4 consult_1=0;
237 4 consult_2=0;
238 4 consult_3=0;
239 4 }
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 5
240 3 }
241 2 break;
242 2 default:
243 2 ad_step++;
244 2 break;
245 2 }
246 1
247 1
248 1 EX0 = 1;
249 1 // ET1 = 1 ;
250 1 }
251
252
253 /*************************/
254 /*************************/
255 /*
256 void Poisitive(void)
257 //{
258
259 #ifdef POLARITY
260 if (consult >= 0x7fff)
261 {
262 consult = consult - 0x7fff;
263 if(CONTROL == 1)
264 // Add_consult(value);
265 liuxiang_F = POSITIVE ;
266 else
267 // Dec_consult(value);
268 liuxiang_F = REVERSE ;
269 }
270 else
271 {
272 consult = 0x7fff - consult;
273 if(CONTROL == 1)
274 // Dec_consult(value);
275 liuxiang_F = REVERSE ;
276 else
277 // Add_consult(value);
278 liuxiang_F = POSITIVE;
279 }
280 #else
281 if (consult >= 0x7fff)
282 {
283 consult = consult - 0x7fff;
284 if(CONTROL == 1)
285 // Dec_consult(value);
286 liuxiang_F = REVERSE ;
287 else
288 // Add_consult(value);
289 liuxiang_F = POSITIVE;
290 }
291 else
292 {
293 consult = 0x7fff - consult;
294 if(CONTROL == 1)
295 // Add_consult(value);
296 liuxiang_F = POSITIVE;
297 else
298 // Dec_consult(value);
299 liuxiang_F = REVERSE ;
300 }
301 #endif
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 6
302 da_data = consult ; //remain for da5615 convert used
303 return;
304 } */
305 /***********************************/
306
307 void Poisitive(int value)
308 {
309 1 /*
310 1 if (value < 0)
311 1 {
312 1 liuxiang_F = REVERSE ;
313 1 value = abs (value); //get abs value
314 1 Add_consult(value);
315 1 }
316 1
317 1 else if(value >= 0)
318 1 {
319 1 liuxiang_F = POSITIVE;
320 1 value = abs (value);
321 1 Add_consult(value);
322 1 }
323 1
324 1 return;
325 1 }
326 1 */
327 1
328 1 #ifdef POLARITY
329 1
330 1 if (value < 0)
331 1 {
332 2 value = 32768+value; //get abs value
333 2 // Add_consult(value);
334 2 #ifndef DC_SINGAL
if(CONTROL == 1)
{
Add_consult(value);
}
else
{
Dec_consult(value);
}
#else
344 2 Add_consult(value);
345 2 #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -