📄 dataprc.lst
字号:
C51 COMPILER V6.02 DATAPRC 09/10/2005 17:35:06 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE DATAPRC
OBJECT MODULE PLACED IN D:\2005_09\Dataprc.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE D:\2005_09\Dataprc.c SMALL DB OE CO OT(SIZE)
stmt level source
1 #include "MATH.H"
2 #include "reg52.h"
3 #include "typedef.h"
4 #include "function.h"
5 #include "define.h"
6 #include "varible.h"
7
8 /****************************/
9
10 void System_data_init(void);
11 void Data_prc(void);
12 void Ad_data_prc(void);
13 float Get_lchen_data(unsigned char address,unsigned char point);
14 float Get_alarmup_data(void);
15 float Get_alarmdm_data(void);
16 float Get_pn_data(unsigned char start_address);
17 unsigned long int Get_high_data(float fdata);
18 unsigned int Get_low_data(float fdata);
19 void Modify_adc_gain(unsigned char gain);
20
21 /********************************/
22 /********************************/
23 void System_data_init(void)
24 {
25 1
26 1 dp_point = Read1B(0x0e,0);
27 1
28 1 if(dp_point > 3)
29 1 {
30 2 dp_point = 2 ; //system moren de xiaosudin
31 2 Write1B(dp_point,0x0e,0);
32 2 }
33 1 pulse_dp = Read1B(0x2a,0);
34 1 if(pulse_dp > 3)
35 1 {
36 2 pulse_dp = 2 ;
37 2 Write1B(pulse_dp,0x2a,0);
38 2 }
39 1 sensor_dp = Read1B(0x34,0) ;
40 1 if(sensor_dp > 3)
41 1 {
42 2 sensor_dp = 2 ;
43 2 Write1B(sensor_dp,0x34,0);
44 2 }
45 1 /* add zero offset set */
46 1
47 1 sensor_k = Get_lchen_data(0x30,sensor_dp);
48 1 //get liangchen
49 1 lchen_data = Get_lchen_data(0x18,dp_point);
50 1 lchen_data_old = lchen_data ;
51 1 //get disp xisu
52 1 // system_k = sensor_k*lchen_data*1.5/0x7fff ; //system_k is designed to sensor_k and lchen 2003-12-10
53 1 system_k = sensor_k*lchen_data/0x7fff ;
54 1
55 1 zero_dp = Read1B(0x3d,0);
C51 COMPILER V6.02 DATAPRC 09/10/2005 17:35:06 PAGE 2
56 1 zero_symbol = Read1B(0x38,0);
57 1 if(zero_dp > 3)
58 1 {
59 2 zero_dp = 2 ;
60 2 Write1B(zero_dp,0xd,0);
61 2 }
62 1 // zero_offset = Get_lchen_data(0x39,zero_dp);
63 1
64 1 zero_code = (unsigned int)( Get_lchen_data(0x39,zero_dp)/10.0*32767);
65 1 pulse_danlan = Get_lchen_data(0x26,pulse_dp); //calculator danlan
66 1 //get filter zhisu
67 1 filter_data = Read1B(0x1c,0);
68 1 //get xiaoliuliang value
69 1
70 1 cut_slope = Read1B(0x1d,0); //xiaoliuliang cut value
71 1 cut_data = (cut_slope/100.0)*lchen_data ; //this cut_data is used for compare with moment_data
72 1 //get alarm_up_data
73 1 alarm_up_data = Get_alarmup_data();
74 1
75 1 //get alarm_dm_data
76 1 alarm_dm_data = Get_alarmdm_data();
77 1 data_prc_time = 0 ;
78 1 sec_time = 0;
79 1 adjust_time = 0 ;
80 1
81 1 system_dp = Read1B(0x24,0);
82 1 system_lchen = Get_lchen_data(0x20,system_dp);
83 1
84 1 page1_start_addr = Read1B(0x10,0); //get need baochen address
85 1 p_count_data = Get_pn_data(page1_start_addr);
86 1
87 1 n_count_data = Get_pn_data(page1_start_addr+4);
88 1 net_count_data = p_count_data - n_count_data ;
89 1 net_count_data_old = net_count_data ;
90 1 net_cha = 0;
91 1
92 1 // consult = 0x4fff; //test
93 1 }
94
95 /********************************/
96 /********************************/
97
98 void Data_prc(void)
99 {
100 1 EE_BUFFER write_data;
101 1
102 1 // float compare_k;
103 1 // if(data_prc_time != 0)
104 1 // data_prc_time--;
105 1 // else
106 1 // {
107 1
108 1 //judge lchen change
109 1 if(lchen_data != lchen_data_old) //if change lianchen range
110 1 {
111 2 lchen_data_old = lchen_data ;
112 2 // system_k = sensor_k*lchen_data*1.5/0x7fff ;
113 2 system_k = sensor_k*lchen_data/0x7fff ; //2003-12-10
114 2
115 2 cut_data = (cut_slope/100.0)*lchen_data;
116 2
117 2 alarm_up_data = Get_alarmup_data();
C51 COMPILER V6.02 DATAPRC 09/10/2005 17:35:06 PAGE 3
118 2 //get alarm_dm_data
119 2 alarm_dm_data = Get_alarmdm_data();
120 2 /*
121 2 compare_k = lchen_data/system_lchen ; //calculate lchen changed how much???
122 2 if((compare_k > 1.5)&&(compare_k < 3)) //lchen range expand one time
123 2 {
124 2
125 2 Modify_adc_gain(ADC_GAIN_8); //adc_gain from 16 to 8
126 2
127 2 }
128 2 else if(compare_k < 0.67) //if //lchen range reduce one timer
129 2 {
130 2
131 2 Modify_adc_gain(ADC_GAIN_32); //changed adc_gain from 16 to 32
132 2 }
133 2 else
134 2 {
135 2 Modify_adc_gain(ADC_GAIN_16);
136 2 } */ //update:2003-09-20
137 2 }
138 1
139 1 if(adjust_time != 0)
140 1 adjust_time--;
141 1 else if(data_prc_time != 0)
142 1 {
143 2 self_adj_F = 0;
144 2 data_prc_time--;
145 2 }
146 1 else
147 1 {
148 2 data_prc_time = TM500MS ;
149 2 Ad_data_prc(); //500ms precess once
150 2 sec_time++;
151 2 if(sec_time >= 2) //1s time up
152 2 {
153 3 hour_time++;
154 3 sec_time = 0;
155 3
156 3 // page1_start_addr = Read1B(0x10,0); //get need baochen address
157 3
158 3
159 3 net_count_data_old = net_count_data ;
160 3 if(liuxiang_F == POSITIVE) //baochen zhenxiang leiji liuliang
161 3 {
162 4 // p_count_data = p_count_data +moment_data*1.025/3600.0;
163 4 p_count_data = p_count_data +moment_data*1.012/3600.0;
164 4 if(hour_time%60 == 0)
165 4 {
166 5 write_data.ad_data = p_count_data;
167 5 Write1B(write_data.set_data.first_data,page1_start_addr,1); //save
168 5 Write1B(write_data.set_data.second_data,page1_start_addr+1,1);
169 5 Write1B(write_data.set_data.third_data,page1_start_addr+2,1);
170 5 Write1B(write_data.set_data.fouth_data,page1_start_addr+3,1);
171 5 }
172 4 }
173 3 else //baochen fanxiang leiji liuliang
174 3 {
175 4 // n_count_data +=((moment_data*1.025)/3600.0);
176 4 n_count_data +=((moment_data*1.012)/3600.0);
177 4 if(hour_time%60 == 0)
178 4 {
179 5 write_data.ad_data = n_count_data ;
C51 COMPILER V6.02 DATAPRC 09/10/2005 17:35:06 PAGE 4
180 5 Write1B(write_data.set_data.first_data,page1_start_addr+4,1);
181 5 Write1B(write_data.set_data.second_data,page1_start_addr+5,1);
182 5 Write1B(write_data.set_data.third_data,page1_start_addr+6,1);
183 5 Write1B(write_data.set_data.fouth_data,page1_start_addr+7,1);
184 5 }
185 4 }
186 3 net_count_data = (p_count_data - n_count_data) ;
187 3 //net_cha += (net_count_data - net_count_data_old)*1.004;
188 3 net_cha += (net_count_data - net_count_data_old) ;
189 3
190 3
191 3
192 3
193 3
194 3
195 3
196 3
197 3
198 3
199 3 if(hour_time >= ONE_HOUR) //one hour time up
200 3 {
201 4 hour_time = 0;
202 4 Write1B(page1_start_addr+8,0x10,0); //save xianzhai dizhi
203 4 page1_start_addr += 8 ;
204 4 // Self_adjust();
205 4 // adjust_time = 4 ;
206 4 }
207 3 }
208 2 }
209 1
210 1
211 1 }
212
213
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -