?? main.lst
字號:
140 #define addr_c_over_peak_max_count 0x0021 // C級 峰值上限超限次數(uchar)I2C存儲地址
141 #define addr_c_over_peak_min_count 0x0022 // C級 峰值下限超限次數(uchar)I2C存儲地址
142 #define addr_c_over_average_max_count 0x0023 // C級 均值上限超限次數(uchar)I2C存儲地址
143 #define addr_c_over_average_min_count 0x0024 // C級 均值下限超限次數(uchar)I2C存儲地址
144 #define addr_c_over_cv_max_count 0x0025 // C級 CV值極限超限次數(uchar)I2C存儲地址
145 #define addr_c_over_max_total 0x0026 // C級 超過上限次數的總和(uchar)I2C存儲地址
146 #define addr_c_over_min_total 0x0027 // C級 超過下限次數的總和(uchar)I2C存儲地址
147 #define addr_c_over_time_total 0x0028 // C級 超限持續時間的總和(uchar)I2C存儲地址(毫秒)
148 #define addr_c_super_max 0x0029 // C級 上上限(uchar)I2C存儲地址
149 #define addr_c_cut_silk_output 0x002A // C級 判斷是否輸出(uchar)I2C存儲地址(1-輸出)
150
151 #define addr_work_sill 0x002B // 非0區(工作區)門限(uchar)I2C存儲地址
152 #define addr_work_delay 0x002C // 過非0區(進入工作區)延時(uchar)I2C存儲地址
153
154 sbit out_clkled = P3^3; //LED輸出控制---時鐘
155 sbit out_dataled = P3^4; //LED輸出控制---數據
156 sbit out_ctrlled = P3^5; //LED輸出控制---使能
157 sbit out_clkjdq = P0^5; //繼電器輸出控制---時鐘
158 sbit out_datajdq = P0^3; //繼電器輸出控制---數據
159 sbit out_ctrljdq = P0^4; //繼電器輸出控制---使能
160 sbit out_bell = P2^5; //蜂鳴器控制
161 sbit out_work = P2^4; //工作指示燈控制
162 sbit in_button = P2^6; //按鍵輸入
163 sbit out_adctrl1 = P1^3; //24路AD切換控制,前8路選擇
164 sbit out_adctrl2 = P1^2; //24路AD切換控制,中8路選擇
165 sbit out_adctrl3 = P1^1; //24路AD切換控制,后8路選擇
166 sbit SDA = P3^7; //I2C數據線,注意雙向端口在輸入和輸出時的設置切換
167 sbit SCL = P3^6; //I2C時鐘線
168
169 sbit debug_flag = P1^0; //調試程序檢測位,0 進入調試程序
C51 COMPILER V7.50 MAIN 05/30/2007 20:43:12 PAGE 4
170
171 //--------------------------------------------------------------------------
172 // F020全局變量定義
173 //--------------------------------------------------------------------------
174 uchar bdata bit_byte;//定義可位操作的字節
175 sbit bit_byte_7=bit_byte^7;
176 sbit bit_byte_6=bit_byte^6;
177 sbit bit_byte_5=bit_byte^5;
178 sbit bit_byte_4=bit_byte^4;
179 sbit bit_byte_3=bit_byte^3;
180 sbit bit_byte_2=bit_byte^2;
181 sbit bit_byte_1=bit_byte^1;
182 sbit bit_byte_0=bit_byte^0;
183
184 //uchar xdata year _at_ 4096;//時鐘芯片操作變量
185 //uchar xdata month _at_ 4095;
186 //uchar xdata date _at_ 4094;
187 //uchar xdata week _at_ 4093;
188 //uchar xdata hour _at_ 4092;
189 //uchar xdata minute _at_ 4091;
190 //uchar xdata second _at_ 4090;
191
192 uchar weizhi;//表示在字符串匹配函數中第一個匹配字符與該串頭部之間的距離
193 uchar timer0_interrupt_counter;//定時器中斷次數計數器
194 uchar no_ethernet_data_timer; //無網絡數據持續時間計數器
195 bit i2c_response_signal; //I2C應答信號狀態
196
197 uchar xdata force_data[24][100] _at_ 600; //24路,每路100點,力值循環存儲器
198
199 uchar xdata jdq_state[25] _at_ 3000; //下標從1到24,表示24路繼電器的狀態
200 uchar xdata led_state[25] _at_ 3025; //下標從1到24,表示24路指示燈的狀態
201
202 uchar xdata uart0_buffer[30] _at_ 3050; //串口接收緩沖區
203 uchar uart0_buffer_address;//串口接收緩沖區地址計數器
204 uchar uart0_receive_start; //串口接收啟動
205 bit uart0_receive_ok; //串口接收(UART0)中斷里已接收完整消息標志
206
207 uchar xdata askii_data[5] _at_ 4085; //臨時變量
208 bit ad_start;//AD采樣開始標志,在中斷里置1,主程序中清0
209 uint xdata ad_temporary_data[10] _at_ 4065;//單通道測量10點//串口接收程序也使用了該數組
210 uchar xdata circle_save_pointer _at_ 4064;//AD采樣循環存儲位置標志
211 bit one_second_come_flag;//整數秒標志
212
213 uchar xdata in_work_flag[24] _at_ 3080; //采樣點是否在工作區中的標志
214 uchar xdata grade[24] _at_ 3104; //等級
215
216 uchar xdata previous_error_state[24] _at_ 3128;//上一次故障狀態
217 uchar xdata current_error_state[24] _at_ 3152;//這一次故障狀態
218
219 uchar xdata one_second_average[24] _at_ 3176;//24路AD量每秒平均值
220 uchar xdata one_second_cv[24] _at_ 3200;//24路AD量每秒CV值
221
222 uchar xdata over_peak_max_counter[24] _at_ 3224; //峰值上限超限次數
223 uchar xdata over_peak_min_counter[24] _at_ 3248; //峰值下限超限次數
224 uchar xdata over_average_max_counter[24] _at_ 3272;//均值上限超限次數
225 uchar xdata over_average_min_counter[24] _at_ 3296;//均值下限超限次數
226 uchar xdata over_cv_counter[24] _at_ 3320; //CV值極限超限次數
227 uint xdata in_work_delay_counter[24] _at_ 3344;//進入工作區后的延時計數器
228 ulong xdata over_time_total[24] _at_ 3392; //超限時間總和
229
230 uchar xdata b_cut_silk_flag _at_ 4063;
231 uchar xdata c_cut_silk_flag _at_ 4062;
C51 COMPILER V7.50 MAIN 05/30/2007 20:43:12 PAGE 5
232
233 float KKK;//用于AD量到力的轉換
234 float CCC;//用于AD量到力的轉換
235 //----------set by uart----------
236 uint xdata AD1 _at_ 4060;//標定傳感器用第一點 AD采樣值
237 uchar xdata Force1 _at_ 4059;//標定傳感器用第一點 對傳感器施加的外力值
238 uint xdata AD2 _at_ 4057;//標定傳感器用第二點 AD采樣值
239 uchar xdata Force2 _at_ 4056;//標定傳感器用第二點 對傳感器施加的外力值
240 ulong xdata my_ipaddr _at_ 4052;//0xC0A8000AL: This sets my IP address to 192.168.0.10
241 uint xdata server_assign_port _at_ 4050;//服務器分配的端口號
242 uchar xdata work_sill _at_ 4049;//非0區(工作區)門限,力
243 uchar xdata work_delay _at_ 4048;//過非0區(進入工作區)延時(默認90秒)
244
245 //----------set by ethnet----------
246 uchar xdata peak_max _at_ 4047;// 峰值上限
247 uchar xdata peak_min _at_ 4046;// 峰值下限
248 uchar xdata average_max _at_ 4045;// 均值上限
249 uchar xdata average_min _at_ 4044;// 均值下限
250 uchar xdata cv_max _at_ 4043;// CV值極限
251
252 uchar xdata b_over_peak_max_count _at_ 4042;// B級 峰值上限超限次數
253 uchar xdata b_over_peak_min_count _at_ 4041;// B級 峰值下限超限次數
254 uchar xdata b_over_average_max_count _at_ 4040;// B級 均值上限超限次數
255 uchar xdata b_over_average_min_count _at_ 4039;// B級 均值下限超限次數
256 uchar xdata b_over_cv_max_count _at_ 4038;// B級 CV值極限超限次數
257 uchar xdata b_over_max_total _at_ 4037;// B級 超過上限次數的總和
258 uchar xdata b_over_min_total _at_ 4036;// B級 超過下限次數的總和
259 uchar xdata b_over_time_total _at_ 4035;// B級 超限持續時間的總和(毫秒)
260 uchar xdata b_super_max _at_ 4034;// B級 上上限
261 uchar xdata b_cut_silk_output _at_ 4033;// B級 判斷是否輸出(1-輸出)
262
263 uchar xdata c_over_peak_max_count _at_ 4032;// C級 峰值上限超限次數
264 uchar xdata c_over_peak_min_count _at_ 4031;// C級 峰值下限超限次數
265 uchar xdata c_over_average_max_count _at_ 4030;// C級 均值上限超限次數
266 uchar xdata c_over_average_min_count _at_ 4029;// C級 均值下限超限次數
267 uchar xdata c_over_cv_max_count _at_ 4028;// C級 CV值極限超限次數
268 uchar xdata c_over_max_total _at_ 4027;// C級 超過上限次數的總和
269 uchar xdata c_over_min_total _at_ 4026;// C級 超過下限次數的總和
270 uchar xdata c_over_time_total _at_ 4025;// C級 超限持續時間的總和(秒)
271 uchar xdata c_super_max _at_ 4024;// C級 上上限
272 uchar xdata c_cut_silk_output _at_ 4023;// C級 判斷是否輸出(1-輸出)
273
274
275 //--------------------------------------------------------------------------
276 // f020 函數說明
277 //--------------------------------------------------------------------------
278 void init_cpu(void);
279 void init_system(void);
280 void ad_24route_switch(uchar ad_8route_select);
281 uchar ad_sampling(uchar cpu_ad_channel_select, uchar sampling_amount, uchar badpoint_amount);
282 uint ask_data(uchar cpu_ad_channel_select);
283 uchar split_askii(uint data_to_out);
284 //uchar change_bcd_to_hex(uchar shu);// 轉換BCD碼成十進制數
285 //uchar change_hex_to_bcd(uchar shu);// 轉換十進制數成BCD碼
286 //void i2c_ack(void);//I2C
287 //uchar reverse_byte_hl(uchar clock_data);//時鐘數據反轉
288 //void set_sd2000(void);//設置時鐘
289 //void read_sd2000_ys(void);//從SD2000A讀入當前時間數據,從年到秒
290 uchar change_askii_to_hex(uchar askii); // 轉換ASKII碼成HEX,實參范圍:30-39、41-46
291 uchar change_hex_to_askii(uchar data_hex);// HEX轉換成ASKII,實參范圍:0-9、A-F
292 void i2c_delay(void);//I2C
293 void i2c_start(void);//I2C
C51 COMPILER V7.50 MAIN 05/30/2007 20:43:12 PAGE 6
294 void i2c_stop(void); //I2C
295 void i2c_send8bit(uchar shu);//I2C
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -