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

📄 mmm.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 3 页
字号:
 287          *                                                                           *
 288          *                                                                           *
 289          ****************************************************************************/
 290          void isr_timer0(void) interrupt 1 using 0
 291          {
 292   1        //TR0=0;
 293   1        if(com2)
 294   1        {
 295   2         if(RXTimerOUT!=0)        //此if{}else{} 为新加入的判断超时功能
 296   2          { 
 297   3             RXTimerOUT--;
 298   3          }
C51 COMPILER V7.05   MMM                                                                   09/08/2004 21:09:47 PAGE 6   

 299   2          else
 300   2          {
 301   3               
 302   3            RXSTAT=0;
 303   3            RXNOM=0;
 304   3          }
 305   2        }//end ifcom2
 306   1      
 307   1        if(com1)
 308   1        {
 309   2          if ( Timer0Cnt != 0 )
 310   2          {
 311   3                --Timer0Cnt;
 312   3          }
 313   2          else
 314   2          {
 315   3           TR0 = 0 ;
 316   3               if ((RecvState == RECV_DLE) || (RecvState == RECV_DLE_OR_NAK)) //发送起始字超时
 317   3               {
 318   4                 ErrorCount++;
 319   4                 if ( ErrorCount <= 1)
 320   4                 {       
 321   5                    SendReady = TRUE;
 322   5                        TI = 1;
 323   5                 }
 324   4                 else
 325   4                 {
 326   5                        ErrorCount = 0 ; 
 327   5                    SendReady = FALSE;
 328   5                    RecvReady = TRUE; 
 329   5                    RecvState = RECV_STX;
 330   5                    En485 = RECV;
 331   5                    //Ir_En = RECV;
 332   5      
 333   5              }
 334   4                }
 335   3               else                                     //接收超时
 336   3                {
 337   4                 SendReady = FALSE;
 338   4                 RecvReady = TRUE; 
 339   4                 RecvState = RECV_STX;
 340   4             En485 = RECV;
 341   4            
 342   4              };
 343   3        };
 344   2       }
 345   1        
 346   1         TR0=1;   
 347   1        TH0=0X90;
 348   1        TL0=0X95;
 349   1        //TR0=1;   
 350   1      }
 351          //**************************************************************
 352          unsigned char  Find(unsigned char addr)
 353          {       
 354   1          unsigned char i=0;
 355   1          TX_EN=1;
 356   1          Delay1ms(4);
 357   1         // Test_led=!Test_led;
 358   1              PutChar1(0x55);
 359   1              PutChar1(0xaa);
 360   1              PutChar1(addr);
C51 COMPILER V7.05   MMM                                                                   09/08/2004 21:09:47 PAGE 7   

 361   1              PutChar1(addr);
 362   1              TX_EN=0;
 363   1          Comm_On();
 364   1          Delay1ms(13);
 365   1      
 366   1        /*while(!rxok)
 367   1              {
 368   1                Delay1ms(1);
 369   1                i++;
 370   1                if(i>20)break;
 371   1              }*/
 372   1         Comm_Off();
 373   1          TX_EN=1;
 374   1         if(rxok)
 375   1         {
 376   2           rxok=0;
 377   2           if(ring_flg==2)Waring=1;
 378   2           return(ring_flg);
 379   2         }
 380   1         else
 381   1          {
 382   2                return 0;// return 0;
 383   2              }       
 384   1      
 385   1      }
 386          
 387          /****************************************************************************
 388          *                                                                           *
 389          * Function:     TransferRecord                                              *
 390          *                                                                           *
 391          * Input:        -  uchar 1                                                  *
 392          * Output:       -  0                                                        *
 393          *                                                                           *
 394          * Description:                                                              *
 395          ****************************************************************************/
 396           TransferRecord(unsigned char Day , unsigned int i)
 397          {    
 398   1             Day=0;
 399   1                      SerBuffer[3] = RemainRec[i][0];//.Flg ;
 400   1      
 401   1                      SerBuffer[4] = RemainRec[i][1];//ParkingRecord[i].CardID.chrX[3] ;
 402   1                      SerBuffer[5] =RemainRec[i][2];//ParkingRecord[i].CardID.chrX[2] ;
 403   1                      SerBuffer[6] =RemainRec[i][3];//ParkingRecord[i].CardID.chrX[1] ;
 404   1                      SerBuffer[7] =RemainRec[i][4];//ParkingRecord[i].CardID.chrX[0] ;
 405   1      
 406   1                      SerBuffer[8] = RemainRec[i][5];// ParkingRecord[i].BeginTime.hour ;
 407   1                      SerBuffer[9] =RemainRec[i][6];// ParkingRecord[i].BeginTime.minute ;
 408   1                      SerBuffer[10]= RemainRec[i][7];// ParkingRecord[i].BeginTime.second ;
 409   1      
 410   1                      SerBuffer[11] =RemainRec[i][8];                                 // ParkingRecord[i].BeginTime.century ;
 411   1                      SerBuffer[12] =RemainRec[i][9];// ParkingRecord[i].BeginTime.year ;
 412   1                      SerBuffer[13] =RemainRec[i][10];// ParkingRecord[i].BeginTime.month ;
 413   1                      SerBuffer[14] =RemainRec[i][11];// ParkingRecord[i].BeginTime.day ;
 414   1              SerBuffer[15] =RemainRec[i][12];
 415   1              SerBuffer[16] =RemainRec[i][13];
 416   1              SerBuffer[17] =RemainRec[i][14];
 417   1              SerBuffer[18] =RemainRec[i][15];
 418   1              //SerBuffer[14] =RemainRec[i][16];
 419   1      }
 420          //*************************************************************************
 421          void  SetPosNum(unsigned char xdata *dat)
 422          {
C51 COMPILER V7.05   MMM                                                                   09/08/2004 21:09:47 PAGE 8   

 423   1       //ByteWrite_Check (124,dat[0]); 
 424   1        ByteWrite_Check(20,dat[0]);
 425   1       ADDR=dat[0];
 426   1       
 427   1      }
 428           /****************************************************************************
 429          *               cmd_execution();                                                             *
 430          * Function:                                            *
 431          *                                                                           *
 432          * Input:                                                                    *
 433          * Output:       -                                                           *
 434          *                                                                           *
 435          * Description:                                                              *
 436          ****************************************************************************/
 437          void cmd_execution(void)
 438          {   unsigned char len ; //Status ;//, adr ;
 439   1              //unsigned int e;
 440   1          //unsigned char idata size , tt[2];
 441   1      
 442   1              //WatchDog();
 443   1              len = SerBuffer[2] ; 
 444   1              SerBuffer[2] = 0 ;
 445   1      
 446   1          switch ( SerBuffer[1] )
 447   1              { 
 448   2              case 0x80:                                //Write time
 449   2                      
 450   2                                      SerBuffer[1] = 0;
 451   2                                      SerBuffer[2] = 0;
 452   2                                      break;  
 453   2                case 0x81:                              //green LED
 454   2                      if ( SerBuffer[3] == 1) {LED_GREEN  = 1;}
 455   2                                      else if( SerBuffer[3] == 0) { LED_GREEN  = 0;};    
 456   2      
 457   2                                      SerBuffer[1] = 0;
 458   2                                      SerBuffer[2] = 0;
 459   2                                      break;
 460   2      
 461   2                case 0x82:                              //red RED
 462   2                      if ( SerBuffer[3] == 1) {LED_RED  = 1;}
 463   2                                      else if( SerBuffer[3] == 0) { LED_RED  = 0;};    
 464   2      
 465   2                                      SerBuffer[1] = 0;
 466   2                                      SerBuffer[2] = 0;
 467   2                                      break;
 468   2      
 469   2      
 470   2                case 0x83:                              //Transfer Record
 471   2                              //      Status = TransferRecord(SerBuffer[3],SerBuffer[4]);
 472   2                              //      SerBuffer[1] = Status;
 473   2                                  recordint.chrX[1]=SerBuffer[4];
 474   2                                  recordint.chrX[0]=SerBuffer[5];
 475   2                      
 476   2                                  TransferRecord(SerBuffer[3],recordint.intX);
 477   2                                      SerBuffer[1] =0;
 478   2                                      SerBuffer[2] =16;
 479   2                                      
 480   2                     
 481   2                      
 482   2                      
 483   2                                      break;
 484   2      
C51 COMPILER V7.05   MMM                                                                   09/08/2004 21:09:47 PAGE 9   

 485   2                case 0x85:                              //Config FeeRate
 486   2                              
 487   2                                      SerBuffer[1] = 0;
 488   2                                      SerBuffer[2] = 0;
 489   2                                      break;
 490   2      
 491   2                case 0x86:                              //return ocuppy or vacance
 492   2                              
 493   2                                      SerBuffer[2] = 0;
 494   2                                      break;
 495   2      
 496   2                case 0x87:                              //Set Meter Number
 497   2                                      //MeterNum.chrX[3] = SerBuffer[3]; 
 498   2                              //      MeterNum.chrX[2] = SerBuffer[4]; 
 499   2                              //      MeterNum.chrX[1] = SerBuffer[5]; 
 500   2                              //      MeterNum.chrX[0] = SerBuffer[6]; 
 501   2                                      SetPosNum(&SerBuffer[3]); //add
 502   2                                      SerBuffer[1] = 0;
 503   2                                      SerBuffer[2] = 0;
 504   2                                      break;
 505   2            case 0x90:
 506   2                      SerBuffer[1] = 0;
 507   2                                      SerBuffer[2] = 0;
 508   2                                      break;
 509   2            case 0x91:
 510   2                      SerBuffer[1] = 0;
 511   2                                      SerBuffer[2] = 0;
 512   2                                      break;
 513   2            case 0x92:
 514   2                      SerBuffer[1] = 0;
 515   2                                      SerBuffer[2] = 0;
 516   2                                      break;
 517   2            case 0x93:
 518   2                      SerBuffer[1] = 0;
 519   2                                      SerBuffer[2] = 0;
 520   2                                      break;
 521   2      
 522   2      
 523   2                default:
 524   2                                      SerBuffer[1] = 250;  //command error
 525   2                                      SerBuffer[2] = 0;
 526   2                                  break;
 527   2              };  
 528   1                               
 529   1      }
 530          //**************************************************************************
 531          void main(void)
 532          {
 533   1           unsigned int  xx=0;
 534   1      
 535   1           unsigned char idata i=0,j;
 536   1               unsigned long idata yyy=0;
 537   1      
 538   1         TX_EN=0;
 539   1        Test_led=0;
 540   1         Delay100ms(1);
 541   1         Test_led=1;
 542   1         TX_EN=1;
 543   1         init_com();
 544   1         InitREG();
 545   1         UartInit();
 546   1         Delay100ms(1);  
C51 COMPILER V7.05   MMM                                                                   09/08/2004 21:09:47 PAGE 10  

 547   1         Comm_Off();
 548   1         PWR_UP=1;
 549   1         Watch_dog();
 550   1         EA=1;
 551   1         Init_X25045(0x00);
 552   1         ByteWrite_Check (22,0X34);
 553   1        if( ByteRead_Check (22)==0x34)//测试25045
 554   1        {   Test_led=!Test_led;
 555   2            Delay100ms(10); 
 556   2               Test_led=!Test_led;
 557   2        }
 558   1      
 559   1         if((ByteRead_Check(20)==0x00)||(ByteRead_Check(20)==0xff))ADDR=0XD2;
 560   1        else
 561   1         ADDR=ByteRead_Check(20);
 562   1        // ADDR=0xd2;
 563   1        if(ADDR%2)
 564   1         {
 565   2          CS=0;
 566   2         }
 567   1        else
 568   1         {
 569   2           CS=1;
 570   2          }
 571   1        for(i=0;i<4;i++)//clear
 572   1         {
 573   2           for(j=0;j<16;j++)
 574   2              RemainRec[i][j]=0;
 575   2         }
 576   1          En485=0;
 577   1        while(1)
 578   1         {  
 579   2          Watch_dog();
 580   2          if (Cmdok)            //通讯
 581   2              {
 582   3              Cmdok = FALSE;
 583   3                       En485=1;
 584   3                      TI = 1;

⌨️ 快捷键说明

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