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

📄 mmm.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 5 页
字号:
 456   3         }  //end of if(RecvReady)
 457   2        };//end of if(RI)
 458   1      
 459   1      
 460   1        if ( TI && !RI )
 461   1        {  
 462   2               TI = 0 ;
 463   2               if ( SendReady )
 464   2               {  
 465   3                      SendReady = FALSE ;
 466   3                      
 467   3                  bcc = SerBuffer[0];   //计算BCC
 468   3                  for ( i = 1 ; i < SerBuffer[2]+3 ; i++ )
 469   3                      {
 470   4                        bcc = bcc ^ SerBuffer[i]  ;
 471   4                      };
 472   3                      SerBuffer[SerBuffer[2]+3] = bcc;
 473   3                  En485 = SEND;
 474   3              //Ir_En = SEND;
 475   3              SBUF = STX ;             //发送起始位}
 476   3                      RecvReady = TRUE ;
 477   3                      RecvState = RECV_DLE ;   //准备接收应答
 478   3              //      LED_GREEN = ~LED_GREEN;
 479   3                      while(!TI) ;
 480   3                      TI = FALSE ;
 481   3              En485 = RECV;
 482   3              //Ir_En = RECV;
 483   3                      START_T0(T_533_ms) ;        //chao shi 
 484   3               } ;
 485   2        };
C51 COMPILER V7.05   MMM                                                                   04/11/2005 02:18:28 PAGE 9   

 486   1      
 487   1      }
 488          /*************************原有的函数需改变*************************************
 489          *                                                                           *
 490          * Function:     isr_timer0                                                  *
 491          *                                                                           *
 492          * Input:        -                                                           *
 493          * Output:       -                                                           *
 494          *                                                                           *
 495          * Description:                                                              *
 496          *                                                                           *
 497          *                                                                           *
 498          ****************************************************************************/
 499          void isr_timer0(void) interrupt 1 using 0
 500          {
 501   1        //TR0=0;
 502   1        rest_delay++;
 503   1        if(com2)
 504   1        {
 505   2         if(RXTimerOUT!=0)        //此if{}else{} 为新加入的判断超时功能
 506   2          { 
 507   3             RXTimerOUT--;
 508   3          }
 509   2          else
 510   2          {
 511   3               
 512   3            RXSTAT=0;
 513   3            RXNOM=0;
 514   3          }
 515   2        }//end ifcom2
 516   1      
 517   1        if(com1)
 518   1        {
 519   2          if ( Timer0Cnt != 0 )
 520   2          {
 521   3                --Timer0Cnt;
 522   3          }
 523   2          else
 524   2          {
 525   3           TR0 = 0 ;
 526   3               if ((RecvState == RECV_DLE) || (RecvState == RECV_DLE_OR_NAK)) //发送起始字超时
 527   3               {
 528   4                 ErrorCount++;
 529   4                 if ( ErrorCount <= 1)
 530   4                 {       
 531   5                    SendReady = TRUE;
 532   5                        TI = 1;
 533   5                 }
 534   4                 else
 535   4                 {
 536   5                        ErrorCount = 0 ; 
 537   5                    SendReady = FALSE;
 538   5                    RecvReady = TRUE; 
 539   5                    RecvState = RECV_STX;
 540   5                    En485 = RECV;
 541   5                    //Ir_En = RECV;
 542   5      
 543   5              }
 544   4                }
 545   3               else                                     //接收超时
 546   3                {
 547   4                 SendReady = FALSE;
C51 COMPILER V7.05   MMM                                                                   04/11/2005 02:18:28 PAGE 10  

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

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

 672   1            unsigned char i;
 673   1              //WatchDog();
 674   1              len = SerBuffer[2] ; 
 675   1              SerBuffer[2] = 0 ;
 676   1      
 677   1          switch ( SerBuffer[1] )
 678   1              { 
 679   2              case 0x80:                                //Write time
 680   2                      
 681   2                                      SerBuffer[1] = 0;
 682   2                                      SerBuffer[2] = 0;
 683   2                                      break;  
 684   2                case 0x81:                              //green LED
 685   2                      if ( SerBuffer[3] == 1) {LED_GREEN  = 1;}
 686   2                                      else if( SerBuffer[3] == 0) { LED_GREEN  = 0;};    
 687   2      
 688   2                                      SerBuffer[1] = 0;

⌨️ 快捷键说明

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