📄 main.lst
字号:
504 2 //FLASH_WriteByte(0xc04, 0);
505 2 }
506 1 else
507 1 {
508 2 ADDR=0;
509 2 EA=0;
510 2 FLASH_ErasePage(0xc01);
511 2 FLASH_WriteByte(0xc04, 0);
512 2 FLASH_WriteByte(0xc05, 0x55);
513 2 FLASH_WriteByte(0xc06, 0xAA);
514 2 EA=1;
515 2 }
516 1
517 1 ADDR=60;
518 1
519 1
520 1 while(1)
521 1 {
522 2 if(beep_flg)
523 2 {
524 3 //BEEP=1;
525 3 flash_beep(3);
526 3 }
527 2 if(!POW_ON)
528 2 {
529 3 LED=0;
530 3 powoffdelay=0;
531 3 while(!POW_ON){powoffdelay++;if(powoffdelay>100)break;Delay100ms(1);}
532 3 if(powoffdelay>100)
533 3 {
534 4 PWR =0;//关
535 4 flash_led(2);
536 4 BEEP=1;Delay100ms(1);BEEP=0;Delay100ms(1); BEEP=1;Delay100ms(1);BEEP=0;
537 4 while(!POW_ON);
538 4 rtc_stop(); WDCON = WDCON&0XFE;
539 4 EA=1;
540 4 Delay100ms(5);
541 4 keypad_init();
542 4 DIVM =0x00;
543 4 // power_mode(POWER_TOTALPOWERDOWN ) ;
544 4
545 4 power_mode(POWER_POWERDOWN);
546 4 EKBI = 0;
547 4 WDCON = WDCON|0X01;
C51 COMPILER V7.05 MAIN 04/08/2005 13:54:31 PAGE 10
548 4 PWR =1;//凯
549 4 ports_init();
550 4 osc_init();
551 4 rtc_init();
552 4 BEEP=1;Delay100ms(1);BEEP=0;Delay100ms(1);
553 4 AUXR1=AUXR1| 0x08;
554 4 }
555 3 LED=1;
556 3 }
557 2 //**********************************************88
558 2 if(ISP)
559 2 {
560 3 watchdog_start();
561 3
562 3 if(!KEY){beep_flg=0;wring_send_times=3; key_tem=0x02; LED=0; Delay100ms(2); LED=!LED;LED=0; Delay100ms(
-2); LED=!LED;}//有键按下
563 3 watchdog_feed();
564 3 if(rxok)
565 3 {
566 4 rxok=0;
567 4
568 4 xxxx=cal_crc( RXtem,4);
569 4 /*SBUF=xxxx>>8;
570 4 while(!TI);
571 4 TI=0;
572 4 SBUF=xxxx;
573 4 while(!TI);
574 4 TI=0;*/
575 4 if(xxxx==CRC.intX)//crc交验通过
576 4 {
577 5 if(RX_BEEP==0x33)
578 5 {
579 6 beep_delay=40000;
580 6 beep_flg=1;
581 6 }
582 5
583 5 Send_ok(key_tem);
584 5 flash_led(3);
585 5 i=0;
586 5 LED=1;
587 5 Link_ok=1;
588 5 watchdog_feed();
589 5 PWR =0;//关
590 5 }
591 4
592 4 }
593 3 if(set_ok)//设置模块的ID
594 3 {
595 4 watchdog_feed();
596 4 set_ok=0;
597 4 Send_ok(key_tem);
598 4
599 4 watchdog_feed();
600 4 EA=0;
601 4 FLASH_ErasePage(0xc01);
602 4 FLASH_WriteByte(0xc05, 0x55);
603 4 FLASH_WriteByte(0xc06, 0xAA);
604 4 FLASH_WriteByte(0xc04,RX_addr); //存入新ID
605 4 EA=1;
606 4 ADDR=RX_addr;
607 4 LED=0;
608 4 flash_led(5);
C51 COMPILER V7.05 MAIN 04/08/2005 13:54:31 PAGE 11
609 4 i=0;
610 4 LED=1;
611 4 Link_ok=1;
612 4 watchdog_feed();
613 4 }
614 3 rtc_start();
615 3 switch(CS_state)
616 3 {
617 4 case 0:
618 4 CS=0;
619 4 if(T_flag)
620 4 {
621 5
622 5 watchdog_feed();
623 5 rtc_stop();
624 5 T_flag=0;
625 5 if(i>=2)
626 5 {
627 6 PWR =1;
628 6 }
629 5
630 5 i++;
631 5
632 5 if(i>3)
633 5 {
634 6 i=0;
635 6 watchdog_feed();
636 6 if(Link_ok)
637 6 {
638 7 Link_ok=0;
639 7 watchdog_feed();
640 7
641 7 }
642 6 else
643 6 {
644 7 LED=0;
645 7 Delay1ms(50);
646 7 LED=1;
647 7 j++;
648 7 watchdog_feed();
649 7 CS_state=1;
650 7 if(j>5)
651 7 {
652 8 PWR =0;
653 8 j=0;
654 8 DIVM =0x00;
655 8 watchdog_feed();
656 8 power_mode(POWER_TOTALPOWERDOWN);//休眠
657 8 }
658 7 }
659 6 }
660 5 }
661 4 break;
662 4 case 1:
663 4 CS=1;
664 4 if(T_flag)
665 4 { // PWR =1;
666 5 watchdog_feed();
667 5 rtc_stop();
668 5 T_flag=0;
669 5 if(i>=2)
670 5 {
C51 COMPILER V7.05 MAIN 04/08/2005 13:54:31 PAGE 12
671 6 PWR =1;
672 6 }
673 5
674 5 i++;
675 5
676 5 if(i>3)
677 5 {
678 6 i=0;
679 6 watchdog_feed();
680 6 if(Link_ok)
681 6 {
682 7 Link_ok=0;
683 7 watchdog_feed();
684 7
685 7 }
686 6 else
687 6 {
688 7 LED=0;
689 7 Delay1ms(50);
690 7 LED=1;
691 7 j++;
692 7 watchdog_feed();
693 7 CS_state=0;
694 7 if(j>5)
695 7 {
696 8 PWR =0;
697 8 j=0;
698 8 DIVM =0x00;
699 8 watchdog_feed();
700 8 power_mode(POWER_TOTALPOWERDOWN);//休眠
701 8 }
702 7 }
703 6 }
704 5 }
705 4 break;
706 4 default:
707 4 CS_state=0;
708 4 break;
709 4 }//end swtich
710 3
711 3
712 3 }
713 2 else
714 2 {
715 3 LED=!LED;
716 3 Delay100ms(10);
717 3
718 3
719 3
720 3 if(set_ok)//设置模块的ID
721 3 {
722 4
723 4 watchdog_feed();
724 4 set_ok=0;
725 4 EA=0;
726 4 yyy:
727 4 FLASH_ErasePage(0xc01);
728 4 FLASH_WriteByte(0xc04,RX_addr); //存入新ID
729 4 if(FLASH_ReadByte(0XC04)!=RX_addr)
730 4 goto yyy;
731 4 EA=1;
732 4 ADDR=RX_addr;
C51 COMPILER V7.05 MAIN 04/08/2005 13:54:31 PAGE 13
733 4 LED=0;
734 4 flash_led(4);
735 4 i=0;
736 4 LED=1;
737 4 Link_ok=1;
738 4 watchdog_feed();
739 4 Setok();
740 4 }
741 3 }
742 2 }
743 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1404 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 14
IDATA SIZE = ---- ----
BIT SIZE = 5 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -