⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmm.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 4 页
字号:
 540   3                {
 541   4                 SendReady = FALSE;
 542   4                 RecvReady = TRUE; 
 543   4                 RecvState = RECV_STX;
 544   4             En485 = RECV;
 545   4            
 546   4              };
 547   3        };
C51 COMPILER V7.05   MMM                                                                   03/01/2002 11:48:58 PAGE 10  

 548   2       }
 549   1        
 550   1         TR0=1;   
 551   1        TH0=0X90;
 552   1        TL0=0X95;
 553   1        //TR0=1;   
 554   1      }
 555          //**************************************************************
 556          unsigned char  Find(unsigned char addr)
 557          {       
 558   1          unsigned char i=0;
 559   1          TX_EN=1;
 560   1          Delay1ms(4);
 561   1         // Test_led=!Test_led;
 562   1              PutChar1(0x55);
 563   1              PutChar1(0xaa);
 564   1              PutChar1(addr);
 565   1              PutChar1(addr);
 566   1              TX_EN=0;
 567   1          Comm_On();
 568   1          Delay1ms(13);
 569   1      
 570   1        /*while(!rxok)
 571   1              {
 572   1                Delay1ms(1);
 573   1                i++;
 574   1                if(i>20)break;
 575   1              }*/
 576   1         Comm_Off();
 577   1          TX_EN=1;
 578   1         if(rxok)
 579   1         {
 580   2           rxok=0;
 581   2           if(ring_flg==2)Waring=1;
 582   2           return(ring_flg);
 583   2         }
 584   1         else
 585   1          {
 586   2                return 0;// return 0;
 587   2              }       
 588   1      
 589   1      }
 590          
 591          /****************************************************************************
 592          *                                                                           *
 593          * Function:     TransferRecord                                              *
 594          *                                                                           *
 595          * Input:        -  uchar 1                                                  *
 596          * Output:       -  0                                                        *
 597          *                                                                           *
 598          * Description:                                                              *
 599          ****************************************************************************/
 600           TransferRecord(unsigned char Day , unsigned int i)
 601          {    
 602   1             Day=0;
 603   1                      SerBuffer[3] = RemainRec[i][0];//.Flg ;
 604   1      
 605   1                      SerBuffer[4] = RemainRec[i][1];//ParkingRecord[i].CardID.chrX[3] ;
 606   1                      SerBuffer[5] =RemainRec[i][2];//ParkingRecord[i].CardID.chrX[2] ;
 607   1                      SerBuffer[6] =RemainRec[i][3];//ParkingRecord[i].CardID.chrX[1] ;
 608   1                      SerBuffer[7] =RemainRec[i][4];//ParkingRecord[i].CardID.chrX[0] ;
 609   1      
C51 COMPILER V7.05   MMM                                                                   03/01/2002 11:48:58 PAGE 11  

 610   1                      SerBuffer[8] = RemainRec[i][5];// ParkingRecord[i].BeginTime.hour ;
 611   1                      SerBuffer[9] =RemainRec[i][6];// ParkingRecord[i].BeginTime.minute ;
 612   1                      SerBuffer[10]= RemainRec[i][7];// ParkingRecord[i].BeginTime.second ;
 613   1      
 614   1                      SerBuffer[11] =RemainRec[i][8];                                 // ParkingRecord[i].BeginTime.century ;
 615   1                      SerBuffer[12] =RemainRec[i][9];// ParkingRecord[i].BeginTime.year ;
 616   1                      SerBuffer[13] =RemainRec[i][10];// ParkingRecord[i].BeginTime.month ;
 617   1                      SerBuffer[14] =RemainRec[i][11];// ParkingRecord[i].BeginTime.day ;
 618   1              SerBuffer[15] =RemainRec[i][12];
 619   1              SerBuffer[16] =RemainRec[i][13];
 620   1              SerBuffer[17] =RemainRec[i][14];
 621   1              SerBuffer[18] =RemainRec[i][15];
 622   1              //SerBuffer[14] =RemainRec[i][16];
 623   1      }
 624          //*************************************************************************
 625          void  SetPosNum(unsigned char xdata *dat)
 626          {
 627   1       //ByteWrite_Check (124,dat[0]); 
 628   1        ByteWrite_Check(20,dat[0]);
 629   1       ADDR=dat[0];
 630   1       
 631   1      }
 632           /****************************************************************************
 633          *               cmd_execution();                                                             *
 634          * Function:                                            *
 635          *                                                                           *
 636          * Input:                                                                    *
 637          * Output:       -                                                           *
 638          *                                                                           *
 639          * Description:                                                              *
 640          ****************************************************************************/
 641          void cmd_execution(void)
 642          {   unsigned char len ; //Status ;//, adr ;
 643   1              //unsigned int e;
 644   1          //unsigned char idata size , tt[2];
 645   1      
 646   1              //WatchDog();
 647   1              len = SerBuffer[2] ; 
 648   1              SerBuffer[2] = 0 ;
 649   1      
 650   1          switch ( SerBuffer[1] )
 651   1              { 
 652   2              case 0x80:                                //Write time
 653   2                      
 654   2                                      SerBuffer[1] = 0;
 655   2                                      SerBuffer[2] = 0;
 656   2                                      break;  
 657   2                case 0x81:                              //green LED
 658   2                      if ( SerBuffer[3] == 1) {LED_GREEN  = 1;}
 659   2                                      else if( SerBuffer[3] == 0) { LED_GREEN  = 0;};    
 660   2      
 661   2                                      SerBuffer[1] = 0;
 662   2                                      SerBuffer[2] = 0;
 663   2                                      break;
 664   2      
 665   2                case 0x82:                              //red RED
 666   2                      if ( SerBuffer[3] == 1) {LED_RED  = 1;}
 667   2                                      else if( SerBuffer[3] == 0) { LED_RED  = 0;};    
 668   2      
 669   2                                      SerBuffer[1] = 0;
 670   2                                      SerBuffer[2] = 0;
 671   2                                      break;
C51 COMPILER V7.05   MMM                                                                   03/01/2002 11:48:58 PAGE 12  

 672   2      
 673   2      
 674   2                case 0x83:                              //Transfer Record
 675   2                              //      Status = TransferRecord(SerBuffer[3],SerBuffer[4]);
 676   2                              //      SerBuffer[1] = Status;
 677   2                                  recordint.chrX[1]=SerBuffer[4];
 678   2                                  recordint.chrX[0]=SerBuffer[5];
 679   2                      
 680   2                                  TransferRecord(SerBuffer[3],recordint.intX);
 681   2                                      SerBuffer[1] =0;
 682   2                                      SerBuffer[2] =16;
 683   2                                      
 684   2                     
 685   2                      
 686   2                      
 687   2                                      break;
 688   2      
 689   2                case 0x85:                              //Config FeeRate
 690   2                              
 691   2                                      SerBuffer[1] = 0;
 692   2                                      SerBuffer[2] = 0;
 693   2                                      break;
 694   2      
 695   2                case 0x86:                              //return ocuppy or vacance
 696   2                              
 697   2                                      SerBuffer[2] = 0;
 698   2                                      break;
 699   2      
 700   2                case 0x87:                              //Set Meter Number
 701   2                                      //MeterNum.chrX[3] = SerBuffer[3]; 
 702   2                              //      MeterNum.chrX[2] = SerBuffer[4]; 
 703   2                              //      MeterNum.chrX[1] = SerBuffer[5]; 
 704   2                              //      MeterNum.chrX[0] = SerBuffer[6]; 
 705   2                                      SetPosNum(&SerBuffer[3]); //add
 706   2                                      SerBuffer[1] = 0;
 707   2                                      SerBuffer[2] = 0;
 708   2                                      break;
 709   2            case 0x90:
 710   2                      SerBuffer[1] = 0;
 711   2                                      SerBuffer[2] = 0;
 712   2                                      break;
 713   2            case 0x91:
 714   2                      SerBuffer[1] = 0;
 715   2                                      SerBuffer[2] = 0;
 716   2                                      break;
 717   2            case 0x92:
 718   2                      SerBuffer[1] = 0;
 719   2                                      SerBuffer[2] = 0;
 720   2                                      break;
 721   2            case 0x93:
 722   2                      SerBuffer[1] = 0;
 723   2                                      SerBuffer[2] = 0;
 724   2                                      break;
 725   2      
 726   2      
 727   2                default:
 728   2                                      SerBuffer[1] = 250;  //command error
 729   2                                      SerBuffer[2] = 0;
 730   2                                  break;
 731   2              };  
 732   1                               
 733   1      }
C51 COMPILER V7.05   MMM                                                                   03/01/2002 11:48:58 PAGE 13  

 734          //**************************************************************************
 735          void main(void)
 736          {
 737   1           unsigned int  xx=0;
 738   1      
 739   1           unsigned char idata i=0,j,ttt,uuu;
 740   1               unsigned long idata yyy=0;
 741   1      
 742   1         TX_EN=0;
 743   1        Test_led=0;
 744   1         Delay100ms(1);
 745   1         Test_led=1;
 746   1         TX_EN=1;
 747   1         init_com();
 748   1         InitREG();
 749   1         UartInit();
 750   1         Delay100ms(1);  
 751   1         Comm_Off();
 752   1         PWR_UP=1;
 753   1         Watch_dog();
 754   1         EA=1;
 755   1         Init_X25045(0x00);
 756   1         ByteWrite_Check (22,0X34);
 757   1        if( ByteRead_Check (22)==0x34)//测试25045
 758   1        {   Test_led=!Test_led;
 759   2            Delay100ms(10); 
 760   2               Test_led=!Test_led;
 761   2        }
 762   1      
 763   1         if((ByteRead_Check(20)==0x00)||(ByteRead_Check(20)==0xff))ADDR=0XD2;
 764   1        else
 765   1         ADDR=ByteRead_Check(20);
 766   1        // ADDR=0xd2;
 767   1        if(ADDR%2)
 768   1         {
 769   2          CS=0;
 770   2         }
 771   1        else
 772   1         {
 773   2           CS=1;
 774   2          }
 775   1        for(i=0;i<4;i++)//clear
 776   1         {
 777   2           for(j=0;j<16;j++)
 778   2              RemainRec[i][j]=0;
 779   2         }
 780   1        while(1)
 781   1         {  
 782   2          Watch_dog();
 783   2          if (Cmdok)            //通讯
 784   2              {
 785   3              Cmdok = FALSE;
 786   3                      Waring=0;                    //报警清掉
 787   3                      RecvReady = FALSE;
 788   3                      SendReady = FALSE;
 789   3                      cmd_execution();
 790   3                      SendReady = TRUE ;   //发起始字
 791   3                      TI = 1;
 792   3           
 793   3          }
 794   2         for(i=1;i<150;i++)
 795   2         {  
C51 COMPILER V7.05   MMM                                                                   03/01/2002 11:48:58 PAGE 14  

 796   3          Watch_dog(); 
 797   3          if (Cmdok)            //通讯
 798   3               {
 799   4              Cmdok = FALSE;
 800   4                      RecvReady = FALSE;
 801   4                      SendReady = FALSE;
 802   4                      cmd_execution();
 803   4                      SendReady = TRUE ;   //发起始字
 804   4                      TI = 1;
 805   4             Test_led=!Test_led;
 806   4                  Watch_dog();
 807   4           }
 808   3                Watch_dog();
 809   3               ttt=Find(i);
 810   3                Watch_dog();
 811   3            if(ttt==0)
 812   3                { 
 813   4                  ttt=Find(i);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -