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

📄 main.lst

📁 基于SJA1000的CAN开发程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 442   2        }
 443   1        if(BCAN_QUIT_RETMODEL())
 444   1        {
 445   2          status = CAN_QUITRESET_ERR;
 446   2          return(status);
 447   2        }
 448   1        
 449   1        SJA_BCANAdr=REG_CONTROL;
 450   1        *SJA_BCANAdr=0X1E;
 451   1        
 452   1        return  status; 
 453   1      }
 454          
 455          //
 456          void   CanRcv_Prg(void)
 457          {
 458   1        uchar  data buf[10],status;
 459   1         if(BCAN_DATA_RECEIVE(buf))                                   //接收数据
 460   1         {status=0xe9;
 461   2          Error_disp(status);
 462   2         }
 463   1      
 464   1       } 
 465          
 466          //测试处理函数
 467          void   TestDispPrg(void)                       //测试处理函数
 468          {
 469   1         uchar i;
 470   1         DispFlag=0;
 471   1         DispFlag|=0x0f;
 472   1         for(i=1;i<5;i++) DispBuf[i]=0x08;        
 473   1            
 474   1      }
 475          //消隐处理函数
 476          void   ClearDispPrg(uchar *databuf)                                             //消隐处理函数
 477          {
 478   1         ClearDispAttr();
 479   1         memcpy(&DispBuf[1],&databuf[1],4);
 480   1         DispFlag=0;
 481   1        switch(databuf[0])
 482   1         {  
 483   2          case   0:
 484   2                     DispFlag|=0x10;
 485   2                 break;
 486   2              case   1:
 487   2                     DispFlag|=0x20;
 488   2                 break;
 489   2          case   2:
C51 COMPILER V7.02a   MAIN                                                                 08/06/2004 10:57:50 PAGE 9   

 490   2                     DispFlag|=0x40;
 491   2                 break;
 492   2              case   3:
 493   2                     DispFlag|=0x80;
 494   2                 break;
 495   2              case   4:
 496   2                     DispFlag|=0x30;
 497   2                 break;
 498   2              case   5:
 499   2                     DispFlag|=0x50;
 500   2                 break;
 501   2              case   6:
 502   2                     DispFlag|=0x90;
 503   2                 break;
 504   2              case   7:
 505   2                     DispFlag|=0x60;
 506   2                 break;
 507   2              case   8:
 508   2                     DispFlag|=0xa0;
 509   2                 break;
 510   2              case   9:
 511   2                     DispFlag|=0xc0;
 512   2                 break;
 513   2              case   10:
 514   2                     DispFlag|=0x70;
 515   2                 break;
 516   2              case   11:
 517   2                     DispFlag|=0xb0;
 518   2                 break;
 519   2              case   12:
 520   2                     DispFlag|=0xe0;
 521   2                 break;
 522   2              case   13:
 523   2                     DispFlag|=0xd0;
 524   2                 break;
 525   2              case   14:
 526   2                     DispFlag|=0xf0;
 527   2                 break;
 528   2          default:
 529   2                     break;
 530   2         }
 531   1      }
 532          
 533          //
 534          void   FlightDispPrg(uchar *databuf)                                    //闪烁处理函数  
 535          {  
 536   1         ClearDispAttr();
 537   1         memcpy(&DispBuf[1],&databuf[1],4);
 538   1         DispFlag=0;
 539   1        switch(databuf[0])
 540   1         {  
 541   2          case   0:
 542   2                     DispFlag|=0x01;
 543   2                 break;
 544   2              case   1:
 545   2                     DispFlag|=0x02;
 546   2                 break;
 547   2          case   2:
 548   2                     DispFlag|=0x04;
 549   2                 break;
 550   2              case   3:
 551   2                     DispFlag|=0x08;
C51 COMPILER V7.02a   MAIN                                                                 08/06/2004 10:57:50 PAGE 10  

 552   2                 break;
 553   2              case   4:
 554   2                     DispFlag|=0x03;
 555   2                 break;
 556   2              case   5:
 557   2                     DispFlag|=0x05;
 558   2                 break;
 559   2              case   6:
 560   2                     DispFlag|=0x09;
 561   2                 break;
 562   2              case   7:
 563   2                     DispFlag|=0x06;
 564   2                 break;
 565   2              case   8:
 566   2                     DispFlag|=0x0a;
 567   2                 break;
 568   2              case   9:
 569   2                     DispFlag|=0x0c;
 570   2                 break;
 571   2              case   10:
 572   2                     DispFlag|=0x07;
 573   2                 break;
 574   2              case   11:
 575   2                     DispFlag|=0x0b;
 576   2                 break;
 577   2              case   12:
 578   2                     DispFlag|=0x0e;
 579   2                 break;
 580   2              case   13:
 581   2                     DispFlag|=0x0d;
 582   2                 break;
 583   2              case   14:
 584   2                     DispFlag|=0x0f;
 585   2                 break;
 586   2          default:
 587   2                     break;
 588   2         }
 589   1      }
 590          
 591          //
 592          void   LiftCrcDispPrg(uchar *databuf)           //左循环显示处理
 593          {
 594   1         memcpy(&DispBuf[1],&databuf[1],4);
 595   1         LiftCrcDispFlag=1;RightCrcDispFlag=0;
 596   1      }
 597          void   RightCrcDispPrg(uchar *databuf)          //右循环显示处理
 598          {
 599   1        memcpy(&DispBuf[1],&databuf[1],4);
 600   1        LiftCrcDispFlag=0;RightCrcDispFlag=1;
 601   1      }
 602          
 603          //
 604          void   CanSend_Prg(void)                                        //can发送数据
 605          {
 606   1      }
 607          void   CanErr_Prg(void)                             //发现错误后处理
 608          {
 609   1        Error_disp(CAN_BUS_ERR); 
 610   1        Config_SJA();                                                                 //
 611   1      }
 612          void   CanDtOver_Prg(void)                      //超载处理
 613          {
C51 COMPILER V7.02a   MAIN                                                                 08/06/2004 10:57:50 PAGE 11  

 614   1      //  BCAN_CMD_PRG(COS_CMD);
 615   1      }
 616          void   CanWui_Prg(void)                         //唤醒中断处理
 617          {
 618   1        
 619   1      }
 620          
 621          //
 622          void   UartRcv_Prg(void)                                                //串口接收到数据处理
 623          {
 624   1          BCAN_DATA_WRITE(RcvBuf);                                //将编辑的数据发送到can总线
 625   1          BCAN_CMD_PRG(TR_CMD);
 626   1      }
 627          
 628          //自动发送
 629          void   AutoSendDataToCanBus(void)
 630          {
 631   1       /* uchar i;
 632   1       if((DispBuf[1]==0x05)&&(DispBuf[2]==0x0d))
 633   1       {
 634   1              
 635   1              if(EditMsSendCount ==0){
 636   1                      EditMsSendCount = EditMsSendSave;
 637   1                      SendDataCount++;
 638   1                      SetSystemBuf[0]++;
 639   1                      SetSystemBuf[1]=0x08;
 640   1              for(i=2;i<10;i++)
 641   1                              SetSystemBuf[i]=SendDataCount;
 642   1              BCAN_DATA_WRITE(SetSystemBuf);                          //将编辑的数据发送到can总线
 643   1              BCAN_CMD_PRG(TR_CMD); 
 644   1                      DispBuf[3]=SendDataCount>>4;
 645   1                      DispBuf[4]=SendDataCount&0x0f;
 646   1              }
 647   1              else{
 648   1           EditMsSendCount--;
 649   1              }
 650   1       }*/
 651   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2765    ----
   CONSTANT SIZE    =     45    ----
   XDATA SIZE       =      2      19
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     37      12
   IDATA SIZE       =     35    ----
   BIT SIZE         =      7       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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