📄 lprtpos1.lst
字号:
312 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
313 1 p37=0;
314 1 P2=P2&0xe0;vp15=0;
315 1 P0=led[ time[2] % 16];
316 1 p37=1;
317 1 vp21=1;
318 1 delay(1);
319 1
320 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
321 1 p37=0;
322 1 P2=P2&0xe0;vp15=0;
323 1 if ((nmm / 50)==0) {P0=0x08;} else {P0=0x00;}
324 1 p37=1;
325 1 vp21=1;
326 1 delay(1);
327 1
328 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
329 1 p37=0;
330 1 P2=P2&0xe0;vp15=0;
331 1 P0=led[ time[1] / 16];
332 1 p37=1;
333 1 vp22=1;
334 1 delay(1);
335 1
336 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
337 1 p37=0;
338 1 P2=P2&0xe0;vp15=0;
339 1 P0=led[ time[1] % 16];
340 1 p37=1;
341 1 vp23=1;
342 1 delay(1);
343 1
344 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
345 1 p37=0;
346 1 P2=P2&0xe0;vp15=0;
347 1 P0=0;
348 1 p37=1;
349 1 vp24=1;
350 1 delay(1);
351 1
352 1 /*
353 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
354 1 p37=0;
355 1 P2=P2&0xe0;vp15=0;
356 1 P0=0;
357 1 p37=1;
358 1 vp15=1;
359 1 delay(1);
360 1 */
361 1 }
362
363 /*pad program*/
364 UINT8 kbscanR(void)
365 {
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 7
366 1 UINT8 jjz;
367 1 jjz=0;
368 1 P1=0x9f;
369 1 P2=P2&0x1f;
370 1 if ((P1&0x9f)!=0x9f)
371 1 {
372 2 delay(3);
373 2 if ((P1&0x9f)!=0x9f)
374 2 {
375 3 switch (P1&0x9f)
376 3 {
377 4 case 0x9e: /* 1、2、3*/
378 4 jjz=1;break;
379 4 case 0x9d: /*4、5、6*/
380 4 jjz=2;break;
381 4 case 0x9b: /*7、8、9*/
382 4 jjz=3;break;
383 4 case 0x97: /*0、A、B*/
384 4 jjz=4;break;
385 4 case 0x8f: /*C、F、D*/
386 4 jjz=5;break;
387 4 case 0x1f: /*回车键*/
388 4 jjz=6; lcbj=1; break;
389 4 case 0x1e: /*回车+1、2、3*/
390 4 jjz=7;break;
391 4 case 0x1d: /*回车+4、5、6*/
392 4 jjz=8;break;
393 4 case 0x1b: /*回车+7、8、9*/
394 4 jjz=9;break;
395 4 case 0x17: /*回车+0、A、B*/
396 4 jjz=10;break;
397 4 case 0x0f: /*回车+C、F、D*/
398 4 jjz=11;break;
399 4 default :
400 4 jjz=0;break;
401 4 }
402 3 }
403 2 }
404 1
405 1 return(jjz);
406 1
407 1 }
408
409 UINT8 kbscanL(void)
410 {
411 1 UINT8 jjz;
412 1 jjz=0;
413 1
414 1 P2=P2|0xe0;
415 1 P1=P1&0x60;
416 1 if ((P2&0xe0)!=0xe0)
417 1 {
418 2 delay(3);
419 2 if ((P2&0xe0)!=0xe0)
420 2 {
421 3 switch (P2&0xe0)
422 3 {
423 4 case 0x60: /*1、4、7、0、C*/
424 4 jjz=1;break;
425 4 case 0xa0: /*2、5、8、A、F*/
426 4 jjz=2;break;
427 4 case 0xc0: /*3、6、9、B、D*/
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 8
428 4 jjz=3;break;
429 4 default :
430 4 jjz=0;break;
431 4 }
432 3 }
433 2 }
434 1
435 1 return(jjz);
436 1
437 1 }
438
439 UINT8 kbscan(void)
440 {
441 1 UINT8 jz,row,lin;
442 1 row=kbscanR();
443 1 lin=kbscanL();
444 1 jz=keytab[lin][row];
445 1 if (jz!=0xff) { flag=1;return(jz);}
446 1 else return(0xff);
447 1
448 1 }
449
450 /*padprogram*/
451 void errshow(void)
452 {
453 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
454 1 p37=0;P2=P2&0xe0;vp15=0;P0=0x73;vp21=1;p37=1;delay(1);
455 1
456 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
457 1 p37=0;P2=P2&0xe0;vp15=0;P0=0xf5;vp22=1;p37=1;delay(1);
458 1
459 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
460 1 p37=0;P2=P2&0xe0;vp15=0;P0=0xf5;vp23=1;p37=1;delay(1);
461 1
462 1 }
463 /*显示suc子程序*/
464 void setpassok(void)
465 {
466 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
467 1 p37=0;P2=P2&0xe0;vp15=0;P0=0x76;vp21=1;p37=1;delay(1);
468 1
469 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
470 1 p37=0;P2=P2&0xe0;vp15=0;P0=0xa7;vp22=1;p37=1;delay(1);
471 1
472 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
473 1 p37=0;P2=P2&0xe0;vp15=0;P0=0x63;vp23=1;p37=1;delay(1);
474 1
475 1 }
476
477
478 /*时钟设置*/
479
480 /*时钟设置显示子程序2006-09-28*/
481 void clockshow(UINT8 clockbj,clockH,clockL)
482 {
483 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
484 1 p37=0;P2=P2&0xe0;vp15=0;P0=clockbj;p37=1;vp20=1;delay(1);
485 1
486 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
487 1 p37=0;P2=P2&0xe0;vp15=0;P0=0x10;vp21=1;p37=1;delay(1);
488 1
489 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 9
490 1 p37=0;P2=P2&0xe0;vp15=0;P0=clockH;vp22=1;p37=1;delay(1);
491 1
492 1
493 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
494 1 p37=0;P2=P2&0xe0;vp15=0;P0=clockL;vp23=1;p37=1;delay(1);
495 1
496 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
497 1 p37=0;P2=P2&0xe0;vp15=0;P0=0xf4;vp15=1;p37=1;delay(1);
498 1
499 1 p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
500 1 p37=0;P2=P2&0xe0;vp15=0;P0=0xf5;vp24=1;p37=1;delay(1);
501 1
502 1
503 1 }
504
505
506 /*设置时钟子程序 0--year 1--month 2--day 3--week 4-- hour 5--min
507
508 按BCD码格式存放的日期 2006-09-28*/
509 void setclock(void)
510 {
511 1 UINT8 rq[6],ncount,ecount;
512 1 bit errbj;
513 1 UINT8 i,pjz,scount;
514 1 UINT8 rqbj,rqH,rqL;
515 1 UINT16 yrq;
516 1
517 1 P0=0;P2=P2&0xf6;P2=P2|0x09;
518 1 scount=ncount=0;pjz=0xff;rqbj=0x00;rqH=rqL=26;
519 1 for (i=0;i<6;i++) {rq[i]=0x00;}
520 1
521 1 while (scount==0)
522 1 {
523 2 clockshow(led[rqbj],led[rqH],led[rqL]);
524 2 if ((flag==0)&&(lcbj==0))
525 2 {
526 3 pjz=kbscan();
527 3 if ((lcbj==0)&&(pjz!=0xff))
528 3 {
529 4 while(flag==1)
530 4 {
531 5 P1=0x9f;
532 5 P2=P2&0x1f;
533 5 if ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
534 5 }
535 4 }
536 3 }
537 2 else {
538 3 P1=0x9f;
539 3 P2=P2&0x1f;
540 3 if ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
541 3 }
542 2
543 2 if ((pjz<0x0a)&&(flag==0))
544 2 {
545 3 if (ncount==0) {rqH=pjz;}
546 3 if (ncount==1) {rqL=pjz;}
547 3 ncount++;
548 3 pjz=0xff;
549 3 }
550 2 if (ncount>=2) ncount=0;
551 2 if (pjz==0x0b)
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 10
552 2 {
553 3 ncount=0; errbj=0;pjz=0xff;
554 3
555 3 rq[0]=(rqH<<4)|rqL;
556 3 if ((rq[0]<0x06)||(rq[0]>0x99)) {errbj=1;ecount++;}
557 3
558 3 if (errbj==0)
559 3 {
560 4 scount++;ncount=0;rqbj=0x01;
561 4 }
562 3 else
563 3 {
564 4 for (i=0;i<100;i++) errshow();
565 4 P0=0;P2=P2&0xf6;P2=P2|0x09;
566 4 delay(200);
567 4 for (i=0;i<100;i++) errshow();
568 4 P0=0;P2=P2&0xf6;P2=P2|0x09;
569 4 delay(200);
570 4 for (i=0;i<100;i++) errshow();
571 4 if (ecount>2) break;
572 4 }
573 3
574 3 }
575 2 if (pjz==0x0e) {pjz=0xff;break; }
576 2 }
577 1
578 1 ncount=0; pjz=0xff;
579 1 rqH=rqL=26;ecount=0;
580 1
581 1 while (scount==1)
582 1 {
583 2 clockshow(led[rqbj],led[rqH],led[rqL]);
584 2 if ((flag==0)&&(lcbj==0))
585 2 {
586 3 pjz=kbscan();
587 3 if ((lcbj==0)&&(pjz!=0xff))
588 3 {
589 4 while(flag==1)
590 4 {
591 5 P1=0x9f;
592 5 P2=P2&0x1f;
593 5 if ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
594 5
595 5 }
596 4 }
597 3
598 3 }
599 2 else {
600 3 P1=0x9f;
601 3 P2=P2&0x1f;
602 3 if ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
603 3 }
604 2
605 2 if ((pjz<0x0a)&&(flag==0))
606 2 {
607 3 if (ncount==0) {rqH=pjz;}
608 3 if (ncount==1) {rqL=pjz;}
609 3 ncount++;
610 3 pjz=0xff;
611 3 }
612 2 if (ncount>=2) ncount=0;
613 2 if (pjz==0x0b)
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 11
614 2 {
615 3 ncount=0; errbj=0;pjz=0xff;
616 3
617 3 rq[1]=(rqH<<4)|rqL;
618 3 if ((rq[1]>0x12)||(rq[1]<0x01)) {errbj=1;ecount++;}
619 3
620 3 if (errbj==0)
621 3 {
622 4 scount++;ncount=0;rqbj=scount;
623 4 }
624 3 else
625 3 {
626 4 for (i=0;i<100;i++) errshow();
627 4 P0=0;P2=P2&0xf6;P2=P2|0x09;
628 4 delay(200);
629 4 for (i=0;i<100;i++) errshow();
630 4 P0=0;P2=P2&0xf6;P2=P2|0x09;
631 4 delay(200);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -