📄 yejing320240.lst
字号:
279 2 //0x51f9,5218,2a18
280 2 hi=temp1/256;
281 2 lo=temp1%256;
282 2 outcode(0x46);
283 2 outdata(lo);
284 2 outdata(hi);
285 2 outcode(0x42);
286 2 outdata(num16[c++]);
287 2 outdata(num16[c++]);
288 2 temp1+=AP;// d=d+1;
289 2 }
290 1 }
291
292
293 void drawtable()
294 { uchar i;
295 1 for(i=0;i<9;i++)
296 1 fixline2(2184+i*5);
297 1 for(i=0;i<5;i++)
298 1 fixline(2184+i*1680);
299 1 }
300 void warn3(uchar canghao[],uchar j)
301 { uchar i,temp[2];
302 1 initram();
C51 COMPILER V7.06 YEJING320240 12/05/2005 18:17:14 PAGE 6
303 1 drawtable();
304 1 showchinese32(345,shui);
305 1 showchinese32(349,wei);
306 1 showchinese32(353,yi);
307 1 showchinese32(357,chang);
308 1 showchinese32(361,cang);
309 1 showchinese32(365,wei);
310 1 for(i=0;i<j;i++)
311 1 { temp[0]=(canghao[i]-1)/8;
312 2 temp[1]=(canghao[i]-1)%8;
313 2 shownumber16(2353+1680*temp[0]+temp[1]*5,temp[0]);
314 2 shownumber16(2355+1680*temp[0]+temp[1]*5,temp[1]);
315 2 }
316 1 }
317
318 void xszc() //显示正常画面
319 { initram();
320 1 showchinese32(1852,chuan);
321 1 showchinese32(1856,cang);
322 1 showchinese32(1860,jin);
323 1 showchinese32(1864,shui);
324 1 showchinese32(1868,jian);
325 1 showchinese32(1872,ce);
326 1 showchinese32(1876,xi);
327 1 showchinese32(1880,tong);
328 1 showchinese32(3872,shui);
329 1 showchinese32(3879,wei);
330 1 showchinese32(3886,zheng);
331 1 showchinese32(3893,chang);
332 1 shownumber16(6441,10);
333 1 shownumber16(6443,10);
334 1 shownumber16(6445,10);
335 1 shownumber16(6447,15);
336 1 shownumber16(6449,13);
337 1 shownumber16(6451,14);
338 1 shownumber16(6453,8);
339 1 shownumber16(6455,8);
340 1 shownumber16(6457,15);
341 1 shownumber16(6459,11);
342 1 shownumber16(6461,12);
343 1 }
344
345 void warn0(uchar canghao[],j)
346 {uint addr;
347 1 uchar i,temp;
348 1 addr=2524;
349 1 initram();
350 1 showchinese32(350,jing);
351 1 showchinese32(358,gao);
352 1 for (i=0;i<j;i++)
353 1 { temp=canghao[i]/10;
354 2 shownumber16(addr,temp);
355 2 temp=canghao[i]%10;
356 2 shownumber16(addr+2,temp);
357 2 showchinese32(addr+4,hao);
358 2 showchinese32(addr+8,chuan);
359 2 showchinese32(addr+12,cang);
360 2 showchinese32(addr+16,shui);
361 2 showchinese32(addr+20,wei);
362 2 showchinese32(addr+24,yi);
363 2 showchinese32(addr+28,chang);
364 2 if(i==0)
C51 COMPILER V7.06 YEJING320240 12/05/2005 18:17:14 PAGE 7
365 2 addr+=1848;
366 2 else addr+=1680;
367 2 _nop_(); _nop_();
368 2 _nop_(); _nop_();
369 2 }
370 1 }
371 /********************************/
372 /*键盘扫描?*
373 /********************************/
374 uchar kbscan(void)
375 {uchar t,temp=0;
376 1 if((P1&0x0e)!=0x0e)
377 1 {delay(5);
378 2 if((P1&0x0e)!=0x0e)
379 2 {t=P1&0x0e;
380 3 switch (t)
381 3 {case 0x0c:temp=1;break;
382 4 case 0x0a:temp=2;break;
383 4 //case 0x06:temp=3;break;
384 4 default : break;
385 4 }
386 3 }
387 2 }
388 1 return(temp);
389 1 }
390 /***************************************************
391 rs232
392 ****************************************************/
393 /****RS232初始化***************/
394 void init232(void)
395 { TMOD=0x21;
396 1 PCON=0x80;
397 1 TH0=100;
398 1 TL0=50;
399 1 TH1=250;
400 1 TL1=250; //波特率为1200
401 1 //当TH1=244时为2400,当TH1=250时为4800,
402 1 //当TH1=253时为9600
403 1 TR1=1;
404 1 TR0=1;
405 1 ET0=1;
406 1 SCON=0x50;
407 1 }
408 /****RS232发送数据****/
409 void send232(uchar *p , uchar num)
410 {
411 1 uchar i;//,temp;,count=0;
412 1 EA=0;//关中断防止进入中断服务程序
413 1
414 1 for(i=0;i<num;i++)
415 1 { SBUF= *(p+i) ; //发送数据
416 2
417 2 while(TI!=1);
418 2 TI=0;
419 2 }
420 1 EA=1;
421 1
422 1 }
423 /*********************************************/
424 void send(uchar num)
425 { EA=0;
426 1 SBUF=num;
C51 COMPILER V7.06 YEJING320240 12/05/2005 18:17:14 PAGE 8
427 1 while(TI==0);
428 1 TI=0;
429 1 EA=1;
430 1 }
431
432
433 /******************************************
434 GPRS
435 ******************************************/
436 void gprs(void) interrupt 1
437 {TH0=20;
438 1 TL0=100;
439 1 switch(gprsflag++)
440 1 {case 0: send232(at1,3);break;
441 2 case 6: send232(at2,10);break;
442 2 case 20:send232(at3,22);break;
443 2 case 40:sendnum();gprsflag=0;EA=0; break;
444 2 //case 70:gprsflag=0;break;
445 2 default:break;
446 2 }
447 1 }
448 /********************************************/
449 void sendnum(void)
450 {uchar i, k,canghao[24],j,temp[2],t;
451 1 count(canghao,&j);
452 1 for(i=0;i<j;i++)
453 1 { temp[0]=canghao[i]/10;
454 2 temp[1]=canghao[i]%10;
455 2 for(k=0;k<2;k++)
456 2 if(temp[k]!=0)
457 2 {t=temp[k]+0x30;
458 3 send(t);
459 3 }
460 2 t=0x21;
461 2 send(t);
462 2 }
463 1 t=0x1a;
464 1 send(t);
465 1
466 1 }
467 /***********************************************/
468 void kaiji()
469 {
470 1 initram();
471 1 showchinese32(2026,huan);
472 1 showchinese32(2031,ying);
473 1 showchinese32(2036,shi);
474 1 showchinese32(2041,yong);
475 1 showchinese32(4039,qian);
476 1 showchinese32(4043,jing2);
477 1 showchinese32(4047,dian);
478 1 showchinese32(4051,zi);
479 1 showchinese32(4055,ji);
480 1 showchinese32(4059,shu);
481 1
482 1 shownumber16(6441,10);
483 1 shownumber16(6443,10);
484 1 shownumber16(6445,10);
485 1 shownumber16(6447,15);
486 1 shownumber16(6449,13);
487 1 shownumber16(6451,14);
488 1 shownumber16(6453,8);
C51 COMPILER V7.06 YEJING320240 12/05/2005 18:17:14 PAGE 9
489 1 shownumber16(6455,8);
490 1 shownumber16(6457,15);
491 1 shownumber16(6459,11);
492 1 shownumber16(6461,12);
493 1 delay(1000);
494 1 }
495 /**************************************************
496 计算舱号
497 ***********************************************/
498 void count(uchar canghao[],uchar*p)
499 {uchar k,i,j;
500 1 j=0;
501 1 for(k=0;k<3;k++)
502 1 {for (i=0;i<8;i++)
503 2 {if ((d[k]>>i)&0x01)
504 3 canghao[j++]=i+1+8*k;
505 3 }
506 2 }
507 1 *p=j;
508 1 }
509 /**********************************************/
510 void main()
511 { uchar k,j=0,f[3]={0} ;
512 1 uchar canghao[24]={0};
513 1 bit alarmflag0=0,alarmflag1=0;
514 1 init232();
515 1 alarm=0;
516 1 initall();
517 1 kaiji();
518 1 CAddr=mode ;
519 1 xszc();
520 1 while(1)
521 1 { d[0]=PortC;d[1]=PortA;d[2]=0xff;
522 2 d[0]=d[0]^0xff;d[1]=d[1]^0xff; d[2]=d[2]^0xff;
523 2 if((d[0]==f[0])&&(d[1]==f[1])&&(d[2]==f[2]));
524 2 else
525 2 { f[0]=d[0];f[1]=d[1];f[2]=d[2];
526 3 count(canghao,&j);
527 3
528 3 if(j==0) xszc();
529 3 else{
530 4 if(j<5) warn0(canghao,j);
531 4 else warn3(canghao,j);
532 4 EA=1;
533 4 }
534 3 }
535 2 if(alarmflag1==0)
536 2 {
537 3 if(j==0) alarmflag0=0,alarm=0;
538 3 if(j>0)
539 3 if(alarmflag0==0) alarm=1;
540 3 }
541 2
542 2 k=kbscan();
543 2 switch (k)
544 2 {case 1:alarmflag1=alarmflag1^1;alarm=~alarm;delay(200);break;
545 3 case 2: alarmflag0=1; alarm=0;break;
546 3 default : break;
547 3 }
548 2 }
549 1 }
C51 COMPILER V7.06 YEJING320240 12/05/2005 18:17:14 PAGE 10
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2470 ----
CONSTANT SIZE = 4472 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 98
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -