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

📄 mmm.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 5 页
字号:
 478   4                        bcc = bcc ^ SerBuffer[i]  ;
 479   4                      };
 480   3                      SerBuffer[SerBuffer[2]+3] = bcc;
 481   3                  En485 = SEND;
 482   3              //Ir_En = SEND;
 483   3              SBUF = STX ;             //发送起始位}
 484   3                      RecvReady = TRUE ;
 485   3                      RecvState = RECV_DLE ;   //准备接收应答
C51 COMPILER V7.05   MMM                                                                   01/30/2003 18:32:34 PAGE 9   

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

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

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

 672          * Output:       -                                                           *
 673          *                                                                           *
 674          * Description:                                                              *
 675          ****************************************************************************/
 676          void cmd_execution(void)
 677          {   unsigned char len ; //Status ;//, adr ;
 678   1              //unsigned int e;
 679   1          //unsigned char idata size , tt[2];
 680   1            unsigned char i;
 681   1              //WatchDog();
 682   1              len = SerBuffer[2] ; 
 683   1              SerBuffer[2] = 0 ;
 684   1      
 685   1          switch ( SerBuffer[1] )
 686   1              { 
 687   2              case 0x80:                                //Write time
 688   2                      
 689   2                                      SerBuffer[1] = 0;
 690   2                                      SerBuffer[2] = 0;
 691   2                                      break;  
 692   2                case 0x81:                              //green LED
 693   2                      if ( SerBuffer[3] == 1) {LED_GREEN  = 1;}
 694   2                                      else if( SerBuffer[3] == 0) { LED_GREEN  = 0;};    
 695   2      
 696   2                                      SerBuffer[1] = 0;
 697   2                                      SerBuffer[2] = 0;
 698   2                                      break;
 699   2      
 700   2                case 0x82:                              //red RED
 701   2                      if ( SerBuffer[3] == 1) {LED_RED  = 1;}
 702   2                                      else if( SerBuffer[3] == 0) { LED_RED  = 0;};    
 703   2      
 704   2                                      SerBuffer[1] = 0;
 705   2                                      SerBuffer[2] = 0;
 706   2                                      break;
 707   2      
 708   2      
 709   2                case 0x83:                              //Transfer Record
 710   2                              //      Status = TransferRecord(SerBuffer[3],SerBuffer[4]);
 711   2                              //      SerBuffer[1] = Status;
 712   2                                  recordint.chrX[1]=SerBuffer[4];
 713   2                                  recordint.chrX[0]=SerBuffer[5];
 714   2                      
 715   2                                  TransferRecord(SerBuffer[3],recordint.intX);
 716   2                                      SerBuffer[1] =0;
 717   2                                      SerBuffer[2] =16;
 718   2                                      
 719   2                     
 720   2                      
 721   2                      

⌨️ 快捷键说明

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