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

📄 mmm.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 4 页
字号:
 522   3                --Timer0Cnt;
 523   3          }
 524   2          else
 525   2          {
 526   3           TR0 = 0 ;
 527   3               if ((RecvState == RECV_DLE) || (RecvState == RECV_DLE_OR_NAK)) //发送起始字超时
 528   3               {
 529   4                 ErrorCount++;
 530   4                 if ( ErrorCount <= 1)
 531   4                 {       
 532   5                    SendReady = TRUE;
 533   5                        TI = 1;
 534   5                 }
 535   4                 else
 536   4                 {
 537   5                        ErrorCount = 0 ; 
 538   5                    SendReady = FALSE;
 539   5                    RecvReady = TRUE; 
 540   5                    RecvState = RECV_STX;
 541   5                    En485 = RECV;
 542   5                    //Ir_En = RECV;
 543   5      
 544   5              }
 545   4                }
 546   3               else                                     //接收超时
 547   3                {
C51 COMPILER V7.05   MMM                                                                   07/08/2005 11:42:13 PAGE 10  

 548   4                 SendReady = FALSE;
 549   4                 RecvReady = TRUE; 
 550   4                 RecvState = RECV_STX;
 551   4             En485 = RECV;
 552   4            
 553   4              };
 554   3        };
 555   2       }
 556   1        
 557   1         TR0=1;   
 558   1        TH0=0X90;
 559   1        TL0=0X95;
 560   1        //TR0=1;   
 561   1      }
 562          //**************************************************************
 563          unsigned char  Find(unsigned char addr,bit call)
 564          {       
 565   1          unsigned char data i=0,j;
 566   1           unsigned int data crc;
 567   1          TX_EN=1;
 568   1          Delay1ms(2);
 569   1         // Test_led=!Test_led;
 570   1           RXtem[0]=0X55;
 571   1           RXtem[1]=0XAA;
 572   1               RXtem[2]=addr;
 573   1              if(call)                //有传呼信息
 574   1              {
 575   2                 RXtem[3]=0x33;
 576   2               // PutChar1(0x33);
 577   2          }
 578   1              else
 579   1              {
 580   2                   RXtem[3]=0x44;
 581   2             // PutChar1(0x44);
 582   2              }
 583   1          crc=cal_crc(RXtem, 4);
 584   1          RXtem[4]=crc>>8; 
 585   1          RXtem[5]=(unsigned char)crc;
 586   1              for(j=0;j<3;j++)
 587   1              {
 588   2                for(i=0;i<6;i++)
 589   2                {
 590   3                 PutChar1( RXtem[i]);
 591   3                }
 592   2          }
 593   1              TX_EN=0;
 594   1          Comm_On();
 595   1         Delay1ms(1);
 596   1          rxok=0;              //add
 597   1       /*while(!rxok)
 598   1              {
 599   1                Delay1ms(1);
 600   1                i++;
 601   1                if(i>15)break;
 602   1              }*/
 603   1              Delay1ms(22);
 604   1         Comm_Off();
 605   1          TX_EN=1;
 606   1         if(rxok)
 607   1         {
 608   2           rxok=0;
 609   2           if(ring_flg==2)Waring=1;
C51 COMPILER V7.05   MMM                                                                   07/08/2005 11:42:13 PAGE 11  

 610   2           return(ring_flg);
 611   2         }
 612   1         else
 613   1          {
 614   2                return 0;// return 0;
 615   2              }       
 616   1      
 617   1      }
 618          
 619          /****************************************************************************
 620          *                                                                           *
 621          * Function:     TransferRecord                                              *
 622          *                                                                           *
 623          * Input:        -  uchar 1                                                  *
 624          * Output:       -  0                                                        *
 625          *                                                                           *
 626          * Description:                                                              *
 627          ****************************************************************************
 628           TransferRecord(unsigned char Day , unsigned int i)
 629          {    
 630                 Day=0;
 631                          SerBuffer[3] = RemainRec[i][0];//.Flg ;
 632          
 633                          SerBuffer[4] = RemainRec[i][1];//ParkingRecord[i].CardID.chrX[3] ;
 634                          SerBuffer[5] =RemainRec[i][2];//ParkingRecord[i].CardID.chrX[2] ;
 635                          SerBuffer[6] =RemainRec[i][3];//ParkingRecord[i].CardID.chrX[1] ;
 636                          SerBuffer[7] =RemainRec[i][4];//ParkingRecord[i].CardID.chrX[0] ;
 637          
 638                          SerBuffer[8] = RemainRec[i][5];// ParkingRecord[i].BeginTime.hour ;
 639                          SerBuffer[9] =RemainRec[i][6];// ParkingRecord[i].BeginTime.minute ;
 640                          SerBuffer[10]= RemainRec[i][7];// ParkingRecord[i].BeginTime.second ;
 641          
 642                          SerBuffer[11] =RemainRec[i][8];                                 // ParkingRecord[i].BeginTime.century ;
 643                          SerBuffer[12] =RemainRec[i][9];// ParkingRecord[i].BeginTime.year ;
 644                          SerBuffer[13] =RemainRec[i][10];// ParkingRecord[i].BeginTime.month ;
 645                          SerBuffer[14] =RemainRec[i][11];// ParkingRecord[i].BeginTime.day ;
 646                  SerBuffer[15] =RemainRec[i][12];
 647                  SerBuffer[16] =RemainRec[i][13];
 648                  SerBuffer[17] =RemainRec[i][14];
 649                  SerBuffer[18] =RemainRec[i][15];
 650                  //SerBuffer[14] =RemainRec[i][16];
 651          }*/
 652          //*************************************************************************
 653          void  SetPosNum(unsigned char xdata *dat)
 654          {
 655   1       //ByteWrite_Check (124,dat[0]); 
 656   1        ByteWrite_Check(20,dat[0]);
 657   1       ADDR=dat[0];
 658   1       
 659   1      }
 660           /****************************************************************************
 661          *               cmd_execution();                                                             *
 662          * Function:                                            *
 663          *                                                                           *
 664          * Input:                                                                    *
 665          * Output:       -                                                           *
 666          *                                                                           *
 667          * Description:                                                              *
 668          ****************************************************************************/
 669          void cmd_execution(void)
 670          {   unsigned char len,lensend=0 ; //Status ;//, adr ;
 671   1              //unsigned int e;
C51 COMPILER V7.05   MMM                                                                   07/08/2005 11:42:13 PAGE 12  

 672   1          //unsigned char idata size , tt[2];
 673   1            unsigned char i;
 674   1              //WatchDog();
 675   1              len = SerBuffer[2] ; 
 676   1              SerBuffer[2] = 0 ;
 677   1      
 678   1          switch ( SerBuffer[1] )
 679   1              { 
 680   2              case 0x80:                                //Write time
 681   2                      
 682   2                                      SerBuffer[1] = 0;
 683   2                                      SerBuffer[2] =1 ;
 684   2                                      SerBuffer[3]= Numptr*2;
 685   2      
 686   2                                      break;  
 687   2                case 0x81:                              //green LED
 688   2                   
 689   2      
 690   2                                      SerBuffer[1] = 0;
 691   2                                      SerBuffer[2] = 0;
 692   2                                      break;
 693   2      
 694   2                case 0x82:                              //red RED
 695   2                      if ( SerBuffer[3] == 1) {LED_RED  = 1;}
 696   2                                      else if( SerBuffer[3] == 0) { LED_RED  = 0;};    
 697   2      
 698   2                                      SerBuffer[1] = 0;
 699   2                                      SerBuffer[2] = 0;
 700   2                                      break;
 701   2      
 702   2      
 703   2                case 0x83:                              //Transfer Record
 704   2                              //      Status = TransferRecord(SerBuffer[3],SerBuffer[4]);
 705   2                              //      SerBuffer[1] = Status;
 706   2                                  lensend= Numptr*2;
 707   2                                      SerBuffer[1] =0;
 708   2                                      SerBuffer[2] =lensend+4;
 709   2                      memcpy(&SerBuffer[3], RemainRec,lensend);
 710   2                      SerBuffer[3+lensend]=0;//wasi
 711   2                      SerBuffer[4+lensend]=0;//wasi
 712   2      
 713   2                                      rx_bcc.intX=cal_crc3964(&SerBuffer[3],2+lensend);//16);
 714   2                      SerBuffer[5+lensend]=rx_bcc.chrX[0];
 715   2                                      SerBuffer[6+lensend]=rx_bcc.chrX[1];
 716   2                              
 717   2                                      
 718   2                     
 719   2                      
 720   2                      
 721   2                                      break;
 722   2      
 723   2                case 0x85:                              //
 724   2                     for(i=0;i<8;i++)
 725   2                                 Call_id[i]= SerBuffer[i*2+4]; 
 726   2                                      SerBuffer[1] = 0;
 727   2                                      SerBuffer[2] = 0;
 728   2                                      break;
 729   2      
 730   2                case 0x86:                              //return ocuppy or vacance
 731   2                              
 732   2                                      SerBuffer[2] = 0;
 733   2                                      break;
C51 COMPILER V7.05   MMM                                                                   07/08/2005 11:42:13 PAGE 13  

 734   2      
 735   2                case 0x87:                              //Set Meter Number
 736   2                                      //MeterNum.chrX[3] = SerBuffer[3]; 
 737   2                              //      MeterNum.chrX[2] = SerBuffer[4]; 
 738   2                              //      MeterNum.chrX[1] = SerBuffer[5]; 
 739   2                              //      MeterNum.chrX[0] = SerBuffer[6]; 
 740   2                                      SetPosNum(&SerBuffer[3]); //add
 741   2                                      SerBuffer[1] = 0;
 742   2                                      SerBuffer[2] = 0;
 743   2                                      break;
 744   2            case 0x90:
 745   2                      SerBuffer[1] = 0;
 746   2                                      SerBuffer[2] = 0;
 747   2                                      break;
 748   2            case 0x91:
 749   2                      SerBuffer[1] = 0;
 750   2                                      SerBuffer[2] = 0;
 751   2                                      break;
 752   2            case 0x92:
 753   2                      SerBuffer[1] = 0;
 754   2                                      SerBuffer[2] = 0;
 755   2                                      
 756   2                                      break;
 757   2            case 0x93:
 758   2                      SerBuffer[1] = 0;
 759   2                                      SerBuffer[2] = 0;
 760   2                                      break;
 761   2      
 762   2      
 763   2                default:
 764   2                                      SerBuffer[1] = 250;  //command error
 765   2                                      SerBuffer[2] = 0;
 766   2                                  break;
 767   2              };  
 768   1                               
 769   1      }
 770          /********************************************************************8*/
 771          void Check_call(void)
 772          {
 773   1         unsigned char idata i,tt;
 774   1         for(i=0;i<8;i++)
 775   1         {
 776   2          if((Call_id[i]>0)&&(Call_id[i]<201))
 777   2              {   
 778   3                 tt=Find(Call_id[i],1);
 779   3                 if(!tt)Find(Call_id[i],1);
 780   3      
 781   3              }
 782   2         }
 783   1      }
 784          //*********************************************************************8
 785          void addNum(unsigned int num)
 786          {
 787   1        inttem.intX= num;
 788   1        RemainRec[Numptr][0]=inttem.chrX[0];

⌨️ 快捷键说明

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