📄 main.lst
字号:
476 1 while(0==TI); // 等待发送完毕
477 1 TI = 0; // 清除发送标志
478 1 ES=1;
479 1 }
480 //**************************************************************
481 void main(void)
C51 COMPILER V7.05 MAIN 03/05/2003 15:44:08 PAGE 9
482 {
483 1 unsigned char Link_ok=0,j,CS_state=0;
484 1 // unsigned int xxx;
485 1
486 1
487 1 ports_init();
488 1 BEEP=0;
489 1 if(ISP)
490 1 {
491 2 user_uart_init();//用户串口初始化
492 2 watchdog_init();//初始化看门狗
493 2
494 2 }
495 1 else
496 1 {
497 2 uart_init(); //进入ISP模式
498 2 FLASH_WriteByte(0xc04, 0);
499 2 }
500 1 osc_init();
501 1 rtc_init();
502 1 EA=1;
503 1 ES=1;
504 1 CS=0;
505 1 TX_EN=0; //接收状态
506 1 PWR =1;
507 1 //rtc_start();
508 1 LED=0;
509 1 Delay100ms(2);
510 1 LED=1;
511 1 if((FLASH_ReadByte(0XC05)==0x55)&(FLASH_ReadByte(0XC06)==0xaa))//初始化模块的ID
512 1 {
513 2 EA=0;
514 2 ADDR=FLASH_ReadByte(0XC04);
515 2 EA=1;
516 2 //FLASH_WriteByte(0xc04, 0);
517 2 }
518 1 else
519 1 {
520 2 ADDR=0;
521 2 EA=0;
522 2 FLASH_WriteByte(0xc04, 0);
523 2 FLASH_WriteByte(0xc05, 0x55);
524 2 FLASH_WriteByte(0xc06, 0xAA);
525 2 EA=1;
526 2 }
527 1
528 1 //ADDR=2;
529 1
530 1
531 1 while(1)
532 1 {
533 2 if(beep_flg)
534 2 {
535 3 //BEEP=1;
536 3 flash_beep(3);
537 3 }
538 2 if(ISP)
539 2 {
540 3 watchdog_start();
541 3
542 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;}//有键按下
C51 COMPILER V7.05 MAIN 03/05/2003 15:44:08 PAGE 10
543 3 watchdog_feed();
544 3 if(rxok)
545 3 {
546 4 rxok=0;
547 4
548 4 xxxx=cal_crc( RXtem,4);
549 4 /*SBUF=xxxx>>8;
550 4 while(!TI);
551 4 TI=0;
552 4 SBUF=xxxx;
553 4 while(!TI);
554 4 TI=0;*/
555 4 if(xxxx==CRC.intX)//crc交验通过
556 4 {
557 5 if(RX_BEEP==0x33)
558 5 {
559 6 beep_delay=40000;
560 6 beep_flg=1;
561 6 }
562 5
563 5 Send_ok(key_tem);
564 5 flash_led(3);
565 5 i=0;
566 5 LED=1;
567 5 Link_ok=1;
568 5 watchdog_feed();
569 5 PWR =0;//关
570 5 }
571 4
572 4 }
573 3 if(set_ok)//设置模块的ID
574 3 {
575 4 watchdog_feed();
576 4 set_ok=0;
577 4 Send_ok(key_tem);
578 4
579 4 watchdog_feed();
580 4 EA=0;
581 4 FLASH_WriteByte(0xc04,RX_addr); //存入新ID
582 4 EA=1;
583 4 ADDR=RX_addr;
584 4 LED=0;
585 4 flash_led(5);
586 4 i=0;
587 4 LED=1;
588 4 Link_ok=1;
589 4 watchdog_feed();
590 4 }
591 3 rtc_start();
592 3 switch(CS_state)
593 3 {
594 4 case 0:
595 4 CS=0;
596 4 if(T_flag)
597 4 {
598 5
599 5 watchdog_feed();
600 5 rtc_stop();
601 5 T_flag=0;
602 5 if(i>=2)
603 5 {
604 6 PWR =1;
C51 COMPILER V7.05 MAIN 03/05/2003 15:44:08 PAGE 11
605 6 }
606 5
607 5 i++;
608 5
609 5 if(i>3)
610 5 {
611 6 i=0;
612 6 watchdog_feed();
613 6 if(Link_ok)
614 6 {
615 7 Link_ok=0;
616 7 watchdog_feed();
617 7
618 7 }
619 6 else
620 6 {
621 7 LED=0;
622 7 Delay1ms(50);
623 7 LED=1;
624 7 j++;
625 7 watchdog_feed();
626 7 CS_state=1;
627 7 if(j>5)
628 7 {
629 8 PWR =0;
630 8 j=0;
631 8 DIVM =0x00;
632 8 watchdog_feed();
633 8 power_mode(POWER_TOTALPOWERDOWN);//休眠
634 8 }
635 7 }
636 6 }
637 5 }
638 4 break;
639 4 case 1:
640 4 CS=1;
641 4 if(T_flag)
642 4 { // PWR =1;
643 5 watchdog_feed();
644 5 rtc_stop();
645 5 T_flag=0;
646 5 if(i>=2)
647 5 {
648 6 PWR =1;
649 6 }
650 5
651 5 i++;
652 5
653 5 if(i>3)
654 5 {
655 6 i=0;
656 6 watchdog_feed();
657 6 if(Link_ok)
658 6 {
659 7 Link_ok=0;
660 7 watchdog_feed();
661 7
662 7 }
663 6 else
664 6 {
665 7 LED=0;
666 7 Delay1ms(50);
C51 COMPILER V7.05 MAIN 03/05/2003 15:44:08 PAGE 12
667 7 LED=1;
668 7 j++;
669 7 watchdog_feed();
670 7 CS_state=0;
671 7 if(j>5)
672 7 {
673 8 PWR =0;
674 8 j=0;
675 8 DIVM =0x00;
676 8 watchdog_feed();
677 8 power_mode(POWER_TOTALPOWERDOWN);//休眠
678 8 }
679 7 }
680 6 }
681 5 }
682 4 break;
683 4 default:
684 4 CS_state=0;
685 4 break;
686 4 }//end swtich
687 3
688 3
689 3 }
690 2 else
691 2 {
692 3 LED=!LED;
693 3 Delay100ms(10);
694 3
695 3
696 3
697 3 if(set_ok)//设置模块的ID
698 3 {
699 4
700 4 watchdog_feed();
701 4 set_ok=0;
702 4 EA=0;
703 4 FLASH_WriteByte(0xc04,RX_addr); //存入新ID
704 4 EA=1;
705 4 ADDR=RX_addr;
706 4 LED=0;
707 4 flash_led(4);
708 4 i=0;
709 4 LED=1;
710 4 Link_ok=1;
711 4 watchdog_feed();
712 4 Setok();
713 4 }
714 3 }
715 2 }
716 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -