📄 main.lst
字号:
591 1 if(TAX_HEAD[1]==0x11)
592 1 SP=(unsigned char *)&MAX_VALUE;
593 1 if(TAX_HEAD[1]==0x22)
594 1 SP=(unsigned char *)&PRINT_DATA;// 赋3级越限数据缓冲首址//
595 1 for(i=0;i<TAX_HEAD[2]*TAX_HEAD[3];i++)// not include check_sum
596 1 {
597 2 SETint1=1;
598 2 _nop_();
599 2 _nop_();
600 2 WUDK_ADDR=*SP++;
601 2 SETint1=0;
602 2 _nop_();
603 2 _nop_();
604 2 while((SETdata==0)&&(m++<5000))
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 11
605 2 Watch_Dog=~Watch_Dog;
606 2 if(m>=5000)
607 2 {
608 3 MCU_LED2=0;
609 3 break;
610 3 }
611 2 }
612 1 }
613 void TAX_To_MCUU( )
614 {
615 1 unsigned int i;
616 1 unsigned int m=0;
617 1 unsigned char check_sum=0;
618 1 unsigned char *SP;
619 1 if(TAX_HEAD[1]==0x11)
620 1 SP=(unsigned char *)&MAX_VALUE;
621 1 if(TAX_HEAD[1]==0x22)
622 1 SP=(unsigned char *)&PRINT_DATA;// 赋3级越限数据缓冲首址//
623 1 for(i=1;i<4;i++)
624 1 check_sum+=TAX_HEAD[i];
625 1 for(i=0;i<TAX_HEAD[2]*TAX_HEAD[3];i++)
626 1 check_sum+=*SP++;
627 1 TAX_HEAD[4]=check_sum;
628 1 EA=0;
629 1 for(i=0;i<4;i++)
630 1 {
631 2 Watch_Dog=~Watch_Dog;
632 2 SETint1=1;
633 2 _nop_();
634 2 _nop_();
635 2 _nop_();
636 2 _nop_();
637 2 WUDK_ADDR=TAX_HEAD[i];
638 2 SETint1=0;
639 2 _nop_();
640 2 _nop_();
641 2 _nop_();
642 2 _nop_();
643 2 while((SETdata==0)&&(m++<2000))
644 2 Watch_Dog=~Watch_Dog;
645 2 if(m>=2000)
646 2 {
647 3 MCU_LED2=0;
648 3 goto int1_exit;
649 3 }
650 2 }
651 1 //---------------------------------buck data;
652 1 Write_To_MCUU();
653 1 //---------------------------------send check_sum
654 1 SETint1=1;
655 1 _nop_();
656 1 _nop_();
657 1 WUDK_ADDR=TAX_HEAD[4];
658 1 SETint1=0;
659 1 _nop_();
660 1 _nop_();
661 1 while((SETdata==0)&&(m++<600))
662 1 Watch_Dog=~Watch_Dog;
663 1
664 1 PRINT_MCU=1;
665 1 //---------------------------------
666 1 int1_exit:
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 12
667 1 EA=1;
668 1 }
669 void Init_COMM( )
670 {
671 1 SCON = 0x52;
672 1 PCON = 0x80;
673 1 TMOD |= 0x20;
674 1 TCON |= 0x40; /* TCON */
675 1 TH1 = 0xFC; // 9600bps @ 11.0592MHz
676 1
677 1 TI=0;
678 1 RI=0;
679 1 PS=1;
680 1 ES = 1;
681 1
682 1 }
683 void temp()
684 {
685 1 unsigned int i;
686 1 //GPS_DATA.dtmiles=20;
687 1 //----------1/16s licheng jifen
688 1 mileageL=mileageL+GPS_DATA.dtmiles/10;
689 1 //----------1/16s jingweidu jifen
690 1 if(ALTERNATE)
691 1 {
692 2 now_longitude=GPS_DATA.longitude;
693 2 now_latitude=GPS_DATA.latitude;
694 2 ALTERNATE=0;
695 2 if(CHECK_BCODE!=0xff)
696 2 {
697 3 if(!COUNTd_STARTUP)
698 3 {
699 4 if(BIG_LON)
700 4 {
701 5 if(abs(now_longitude-longitude_LOCATED)/GPS_DATA.dtlon<=16)
702 5 {
703 6 MCOUNTd=abs(now_longitude-longitude_LOCATED)/GPS_DATA.dtlon;
704 6 COUNTd_STARTUP=1;
705 6 }
706 5 }
707 4 else
708 4 {
709 5 if(abs(now_latitude-latitude_LOCATED)/GPS_DATA.dtlat<=16)
710 5 {
711 6 MCOUNTd=abs(now_latitude-latitude_LOCATED)/GPS_DATA.dtlat;
712 6 COUNTd_STARTUP=1;
713 6 }
714 5 }
715 4 }
716 3 }
717 2 }
718 1 else
719 1 {
720 2 i=GPS_DATA.state&0x0f;
721 2 switch(i)
722 2 {
723 3 case 1: {now_longitude=now_longitude+GPS_DATA.dtlon;now_latitude=now_latitude+GPS_DATA.dtlat;break;}
724 3 case 2: {now_longitude=now_longitude+GPS_DATA.dtlon;now_latitude=now_latitude+GPS_DATA.dtlat;break;}
725 3 case 3: {now_longitude=now_longitude+GPS_DATA.dtlon;now_latitude=now_latitude-GPS_DATA.dtlat;break;}
726 3 case 4: {now_longitude=now_longitude+GPS_DATA.dtlon;now_latitude=now_latitude-GPS_DATA.dtlat;break;}
727 3 case 5: {now_longitude=now_longitude-GPS_DATA.dtlon;now_latitude=now_latitude-GPS_DATA.dtlat;break;}
728 3 case 6: {now_longitude=now_longitude-GPS_DATA.dtlon;now_latitude=now_latitude-GPS_DATA.dtlat;break;}
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 13
729 3 case 7: {now_longitude=now_longitude-GPS_DATA.dtlon;now_latitude=now_latitude+GPS_DATA.dtlat;break;}
730 3 case 8: {now_longitude=now_longitude-GPS_DATA.dtlon;now_latitude=now_latitude+GPS_DATA.dtlat;break;}
731 3 break;
732 3 }
733 2 }
734 1 if(COUNTd_STARTUP)
735 1 { if(MCOUNTd!=0)
736 2 MCOUNTd--;
737 2 if(MCOUNTd==0)
738 2 {
739 3 mileageH=mileage_LOCATED;
740 3 mileageL=0;
741 3 COUNTd_STARTUP=0;
742 3 if((gap_LOCATED>=0x7fff)&&(gap_LOCATED<0xfff0))
743 3 {
744 4 mileageL=(gap_LOCATED-0x7fff)*10;
745 4 XIANHAO=STORE_DATAb[ CHECK_BCODE].xianhao;
746 4 }
747 3 //----------------------将下一公里标信息写入缓冲
748 3 NOW_BCODE=1+CHECK_BCODE;
749 3 if(NOW_BCODE<100)
750 3 CHECK_BCODE=Get_next_biao(NOW_BCODE);
751 3 }
752 2 }
753 1 else
754 1 {
755 2 if(STORE_DATAb[NOW_BCODE].gap==0)
756 2 {
757 3 if(mileageL/10>=1500)
758 3 {
759 4 if(DIRECTOR)
760 4 mileageH++;
761 4 else
762 4 mileageH--;
763 4 STORE_DATAb[NOW_BCODE].mileage=mileageH;
764 4 mileageL=mileageL-10000;
765 4 NOW_BCODE++;
766 4 }
767 3 }
768 2
769 2 if(NOW_BCODE==CHECK_BCODE)
770 2 {
771 3 i=STORE_DATAb[NOW_BCODE].gap;
772 3 if(STORE_DATAb[NOW_BCODE].gap>=0x7fff&&STORE_DATAb[NOW_BCODE].gap<0xffff)
773 3 i=1200;
774 3 if(STORE_DATAb[NOW_BCODE].gap==0xffff)
775 3 i=2200;
776 3 if((mileageL/10)>i*6/5)
777 3 {
778 4
779 4 mileageH=STORE_DATAb[NOW_BCODE].mileage;
780 4 if((gap_LOCATED>=0x7fff)&&(gap_LOCATED<0xfff0))
781 4 mileageL=(gap_LOCATED-0x7fff)*10;
782 4 else
783 4 mileageL=0;
784 4 NOW_BCODE++;
785 4 if(NOW_BCODE<100)
786 4 CHECK_BCODE=Get_next_biao(NOW_BCODE);
787 4 }
788 3 }
789 2
790 2 }
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 14
791 1
792 1 }
793
794 void intT0_dealing( ) interrupt 1
795 {
796 1 Watch_Dog=~Watch_Dog;
797 1 bXXGFlags.bits.bTimer = 1;
798 1 HALF_COUNT++;
799 1 if(new_yxdata==1)
800 1 {
801 2 if(abs(Lastmile-mileageL/10)>=20)
802 2 new_yxdata=0;
803 2 }
804 1
805 1 if(HALF_COUNT>=2)
806 1 {
807 2 HALF_COUNT=0;
808 2 TIMING_FLAG=1;
809 2 }
810 1 if(FMQ_CNTcai!=0)
811 1 FMQ_CNTcai--;
812 1 if(START_RUN)
813 1 temp();
814 1 TH0=0xff;TL0=0xff;
815 1 }
816 void intT2_dealing( ) interrupt 5
817 {
818 1 unsigned char i;
819 1 unsigned int m=0;
820 1 unsigned char checksum=0;
821 1 Watch_Dog=~Watch_Dog;
822 1 EA=0;
823 1 ADC[0]=RADC_ADDR;
824 1 TH2=0xff;TL2=0xff;TF2=0;
825 1 if(ADC[0]==0xff)
826 1 {
827 2 for(i=1;i<5;i++)
828 2 { while(!TF2&&(m++<5000))
829 3 Watch_Dog=~Watch_Dog;
830 3 ADC[i]=RADC_ADDR;
831 3 TH2=0xff;
832 3 TL2=0xff;
833 3 TF2=0;
834 3 if(m>=5000)
835 3
836 3 goto intT2_exit;
837 3 }
838 2 checksum=ADC[1]+ADC[2]+ADC[3]+ADC[4];
839 2 if(checksum==0)
840 2 {
841 3 if(ADC[1]==0x01)
842 3 {
843 4
844 4 if(START_RUN)
845 4 {
846 5
847 5 accH=ADC[2]/4;
848 5 accV=ADC[3]/4;
849 5 MAX_VALUE[MLEN].speed=GPS_DATA.speed;
850 5 MAX_VALUE[MLEN].mileageH=mileageH;
851 5 MAX_VALUE[MLEN].mileageL=mileageL;
852 5 MAX_VALUE[MLEN].accH=accH;
C51 COMPILER V6.20c MAIN 10/09/2005 11:31:22 PAGE 15
853 5 MAX_VALUE[MLEN++].accV=accV;
854 5 if(MLEN>=2)
855 5 MLEN=1;
856 5 MAX_VALUESEND=1;
857 5 Watch_Dog=~Watch_Dog;
858 5 if(mileageH==0)
859 5 SEND_LCD=1;
860 5 if(new_yxdata==0)
861 5 {
862 6 new_yxdata=1;
863 6 if(accH>MEN_TAB[25+GPS_DATA.speed/10]&&accV>MEN_TAB[GPS_DATA.speed/10])
864 6 {
865 7 LCD_DATA.yue_flag=0xa3;
866 7 YUE_XIAN=1;
867 7 }
868 6 else if(accH>MEN_TAB[25+GPS_DATA.speed/10])
869 6 {
870 7 LCD_DATA.yue_flag=0xa2;
871 7 YUE_XIAN=1;
872 7 }
873 6 else if(accV>MEN_TAB[GPS_DATA.speed/10])
874 6 {
875 7 LCD_DATA.yue_flag=0xa1;
876 7 YUE_XIAN=1;
877 7 }
878 6 else if(accH>(MEN_TAB[25+GPS_DATA.speed/10]*7/10)||accV>(MEN_TAB[GPS_DATA.speed/10]*7/10))
879 6 {
880 7 YUE_XIAN_rank2=1;
881 7 YUE_XIAN=1;
882 7 }
883 6 else if(accH>(MEN_TAB[25+GPS_DATA.speed/10]*4/10)||accV>(MEN_TAB[GPS_DATA.speed/10]*4/10))
884 6 {
885 7 STORE_DATAy1[YX1_LEN].mileage=mileageH*1000+mileageL/10;
886 7 STORE_DATAy1[YX1_LEN].speed=GPS_DATA.speed;
887 7 STORE_DATAy1[YX1_LEN].accelerath=accH;
888 7 STORE_DATAy1[YX1_LEN].acceleratv=accV;
889 7 STORE_DATAy1[YX1_LEN].date=GPS_DATA.date;
890 7 STORE_DATAy1[YX1_LEN].month=GPS_DATA.month;
891 7 STORE_DATAy1[YX1_LEN].year=GPS_DATA.year;
892 7 STORE_DATAy1[YX1_LEN].hour=GPS_DATA.hour;
893 7 STORE_DATAy1[YX1_LEN].min=GPS_DATA.min;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -