📄 bujinmain.lst
字号:
205 1 yy.c[0]=TH0;
206 1 yy.c[1]=TL0;
207 1 yy.x+=0xfe70;
208 1 if(yy.x<0xfe70)yy.x=0xfff0;
209 1 TH0=yy.c[0];
210 1 TL0=yy.c[1];
211 1 TR0=1;*/
212 1 scanfkey=1;
213 1 read_input();
214 1 }
215 /***************************************************************************
216 * 中断3:定时器1 12M/12T时20mS中断一次
217 ****************************************************************************/
218 void int_timer1(void) interrupt 3 using 1
219 {
220 1 uchar data mem_inn; //做堆栈用--AUXR
221 1 TH1=0x63;
222 1 TL1=0xC0;
223 1 mem_inn=AUXR;
224 1 AUXR &=0xfd;
225 1 dispkeyok=1;
226 1 disp_key();
227 1 read_input1(); //读计量脉冲
228 1 if (k1spk_time==100 || k1spk_time==50 || k1spk_time==20) k1spk=0; //打开蜂鸣器1
229 1 if (k1spk_time==60 || k1spk_time==30 || k1spk_time==0) k1spk=1; //关闭蜂鸣器1
230 1
231 1 if (k1spk_time>0) k1spk_time--;
232 1 if (k1spk_time==0) k1spk=1;
233 1 /****************************/
234 1 if (k2spk_time==110 || k2spk_time==50 || k2spk_time==20) k2spk=0; //打开蜂鸣器1
235 1 if (k2spk_time==60 || k2spk_time==30 || k2spk_time==0) k2spk=1; //关闭蜂鸣器1
236 1
237 1 if (k2spk_time>0) k2spk_time--;
238 1 if (k2spk_time==0) k2spk=1;
239 1 //-------------------
240 1 read_input1(); //读计量脉冲
241 1 //-----------------------
C51 COMPILER V7.00 BUJINMAIN 09/14/2006 16:35:47 PAGE 5
242 1 timesec++;
243 1 if(timesec==50)ration_mode_a=1;
244 1 if(timesec==100) //秒
245 1 { timesec=0;dispprn_a=1;ration_mode_a=1;
246 2 if(disp_floor_level_a>(gun1.pulse+4))disp_floor_level_a-=4;
247 2 if(disp_floor_level_b>(gun2.pulse+4))disp_floor_level_b-=4;
248 2 if(prn1time>0)prn1time--;
249 2 if(state1==4 && menu1==4 && temp_mema==4) temp_mema=0;
250 2 if(state2==4 && menu2==4 && temp_memb==4) temp_memb=0;
251 2 //------------------- 临时时间继电器
252 2 //time_temp_delay--;
253 2 //if(time_temp_delay>9) time_temp_delay=9;
254 2 //if(time_temp_delay==5)dely1=1;
255 2 //if(time_temp_delay==0){dely1=0;time_temp_delay=9;}
256 2 //-------------------
257 2 }
258 1 read_input1(); //读计量脉冲
259 1 if(mcstoptime_a>0)mcstoptime_a--;
260 1 if(mcstoptime_b>0)mcstoptime_b--;
261 1 update_worka=1;update_workb=1;
262 1 if(hang_time1!=0) hang_time1--; //挂枪延时
263 1 if(hang_time2!=0) hang_time2--; //挂枪延时
264 1 AUXR=mem_inn;
265 1 }
266 /*****************************************************************************
267 * 功能:串行中断,接收上位机数据
268 *****************************************************************************/
269 void seri_int (void) interrupt 4 using 2
270 { uchar data mem_inn; //做堆栈用--AUXR
271 1 //uchar data i;
272 1 //uchar data rece_data;
273 1 uchar data verify=0;
274 1 mem_inn=AUXR; //做堆栈用
275 1 AUXR &=0xfd;
276 1
277 1 AUXR=mem_inn; //做堆栈用
278 1 }
279 /***************************************************************************
280 * 中断5:定时器2 12T时:可调时间中断1次
281 ****************************************************************************/
282 void int_timer2(void) interrupt 5 using 3
283 { uchar data mem_inn; //做堆栈用--AUXR
284 1 TF2=0;
285 1 TXD=hlow;
286 1 if(electromotor){hlow=~hlow;}
287 1 mem_inn=AUXR;
288 1 AUXR &=0xfd;
289 1
290 1 if(runsum>0 && !hlow)runsum--;
291 1 if(runsum==0 && electromotor && !hlow)
292 1 { runsum=400;price_a++; //price_a为圏数
293 2 //gun1.sale+=modehl_a;
294 2 if(price_a==1)
295 2 { if(gun1.pulse>70)modehl_a=100;
296 3 if(gun2.pulse>70)modehl_b=100;
297 3 }
298 2 if(cmdstop && runf.x<63300 ){cmdstop=0;electromotor=0;} //停机 12M时为64500
299 2 if(price_a>=price_b) cmdstop=1;
300 2 }
301 1 RCAP2H=runf.c[0];
302 1 RCAP2L=runf.c[1];
303 1 if(!cmdstop && runf.x<increment_b && !hlow){runf.x++;runf.x++;} //加速
C51 COMPILER V7.00 BUJINMAIN 09/14/2006 16:35:47 PAGE 6
304 1 if(cmdstop && runf.x>63000 && !hlow){runf.x--;runf.x--;} //减速
305 1 AUXR=mem_inn;
306 1 }
307 /***************************************************************************
308 * 功能: 工作面A计量处理
309 ****************************************************************************/
310 void workajl(void)
311 { if(update_worka)
312 1 { update_worka=0;updatea=1;
313 2 if(jl1s>0)
314 2 {
315 3 while (jl1s>0)
316 3 { gun1.pulse+=1;
317 4 jl1s--;
318 4 gun1.pulse_jsq++;
319 4 //if (gun1.pulse_jsq==120) { gun1.pulse_jsq=0;jsq1out=1;} //通知计数器
320 4 updatea=1;save_oka=1;idle_numa=0;
321 4 }
322 3 }
323 2 else
324 2 {
325 3 if(state1!=1 || !INT0) //if(state1==0 || !INT0) 2006-07-11
326 3 {
327 4 if(idle_numa<20)idle_numa++;
328 4 if(ration_a && (idle_numa>3)) //定量加油完毕
329 4 { ration_a=0;
330 5 save_oka=1;idle_numa=20;
331 5 if(ration_mode_a)gun1.liter=ration_num_a;
332 5 else gun1.sale=ration_num_a;
333 5 disp_key_clear_a();
334 5 updatea=1;
335 5 }
336 4 //if(idle_numa==20 && save_oka){save_oka=0;sum_a();} //累計
337 4 }
338 3 else idle_numa=0;
339 3 }
340 2
341 2 }
342 1 }
343
344
345 /***************************************************************************
346 * 功能: 工作面B计量处理 [ok]
347 ****************************************************************************/
348 void workaj2(void)
349 { if(update_workb)
350 1 { update_workb=0;updateb=1;
351 2 if(jl2s>0)
352 2 {
353 3 while (jl2s>0)
354 3 { gun2.pulse+=1;
355 4 jl2s--;
356 4 gun2.pulse_jsq++;
357 4 //if (gun2.pulse_jsq==120) { gun2.pulse_jsq=0;jsq2out=1;} //通知计数器
358 4 updateb=1;save_okb=1;idle_numb=0;
359 4 }
360 3 }
361 2 else
362 2 {
363 3 if(state2!=1 || !INT0) //if(state2==0 || !INT0) 2006-07-11
364 3 {
365 4 if(idle_numb<20)idle_numb++;
C51 COMPILER V7.00 BUJINMAIN 09/14/2006 16:35:47 PAGE 7
366 4 if(ration_b && (idle_numb>3)) //定量加油完毕
367 4 { ration_b=0;
368 5 save_okb=1;idle_numb=20;
369 5 if(ration_mode_b)gun2.liter=ration_num_b;
370 5 else gun2.sale=ration_num_b;
371 5 disp_key_clear_b();
372 5 updateb=1;
373 5 }
374 4 // if(idle_numb==20 && save_okb){save_okb=0;sum_b();} //累計
375 4 }
376 3 else idle_numb=0;
377 3 }
378 2
379 2 }
380 1 }
381
382 /***************************************************************************
383 * 功能:读出EEPROM保存数据
384 * JiangMaoZHou
385 ***************************************************************************/
386 void read_eeprom(void)
387 {
388 1 void *pt;
389 1
390 1 pt=&gun1;
391 1 readbyteseq(0x01,pt,37); //读EEPROM
392 1
393 1 wdt=!wdt; //WDT
394 1 WDT_CONTR=0x34;
395 1
396 1 pt=&gun2;
397 1 readbyteseq(38,pt,37); //读EEPROM
398 1
399 1 pt=&(price_a);
400 1 readbyteseq(502,pt,2);//单价a
401 1 pt=&(price_b);
402 1 readbyteseq(504,pt,2);//单价b
403 1
404 1
405 1 oil_types_a=readbyte(78); //油品
406 1 oil_types_b=readbyte(79); //油品
407 1 residue_a=readbyte(87); //提前量
408 1 residue_b=readbyte(87+7); //提前量
409 1 close_num_a=readbyte(88); //提前关机量
410 1 close_num_b=readbyte(88+7); //提前关机量
411 1 gunadd_a=readbyte(89); //中控地址
412 1 gunadd_b=readbyte(89+7); //中控地址
413 1 decimal_a=readbyte(90); //读小数点a
414 1
415 1 decimal_b=readbyte(90+7); //读小数点b
416 1
417 1 increment_a=readbyte(91); //每秒增量1--3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -