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

📄 main.lst

📁 这是CAN总线收发器SJA1000的控制程序,采用C语言编写的,有一定参考价值,
💻 LST
📖 第 1 页 / 共 3 页
字号:
 534   3                case 0xc6:                                                            //闪烁
 535   3                     FlightDispPrg(&buf[3]);            
 536   3                     break;
 537   3                case 0xc9:                                                            //改变总线波特率命令
 538   3                default:
 539   3                     break;
 540   3              }
 541   2        }
 542   1      }
 543          
 544          //
 545          void   DrecDisplay(uchar *databuf)      //直通显示
 546          {
 547   1         ClearDispAttr();
 548   1         memcpy(&DispBuf[1],&databuf[1],4);
 549   1         switch(databuf[0])
 550   1         {  
 551   2          case   0:
C51 COMPILER V6.23a  MAIN                                                                  08/06/2002 16:18:58 PAGE 10  

 552   2                     DispFlag|=0xe0;
 553   2                 break;
 554   2              case   1:
 555   2                     DispFlag|=0xd0;
 556   2                 break;
 557   2          case   2:
 558   2                     DispFlag|=0xb0;
 559   2                 break;
 560   2              case   3:
 561   2                     DispFlag|=0x70;
 562   2                 break;
 563   2              case   4:
 564   2                     DispFlag|=0xc0;
 565   2                 break;
 566   2              case   5:
 567   2                     DispFlag|=0xa0;
 568   2                 break;
 569   2              case   6:
 570   2                     DispFlag|=0x60;
 571   2                 break;
 572   2              case   7:
 573   2                     DispFlag|=0x90;
 574   2                 break;
 575   2              case   8:
 576   2                     DispFlag|=0x50;
 577   2                 break;
 578   2              case   9:
 579   2                     DispFlag|=0x30;
 580   2                 break;
 581   2              case   10:
 582   2                     DispFlag|=0x80;
 583   2                 break;
 584   2              case   11:
 585   2                     DispFlag|=0x40;
 586   2                 break;
 587   2              case   12:
 588   2                     DispFlag|=0x10;
 589   2                 break;
 590   2              case   13:
 591   2                     DispFlag|=0x20;
 592   2                 break;
 593   2              case   14:
 594   2                     DispFlag=0;
 595   2                 break;
 596   2          default:
 597   2                     break;
 598   2         }
 599   1      
 600   1      }
 601          
 602          //测试处理函数
 603          void   TestDispPrg(void)                       //测试处理函数
 604          {
 605   1         uchar i;
 606   1         DispFlag=0;
 607   1         DispFlag|=0x0f;
 608   1         for(i=1;i<5;i++) DispBuf[i]=0x08;        
 609   1            
 610   1      }
 611          //消隐处理函数
 612          void   ClearDispPrg(uchar *databuf)                                             //消隐处理函数
 613          {
C51 COMPILER V6.23a  MAIN                                                                  08/06/2002 16:18:58 PAGE 11  

 614   1         ClearDispAttr();
 615   1         memcpy(&DispBuf[1],&databuf[1],4);
 616   1         DispFlag=0;
 617   1        switch(databuf[0])
 618   1         {  
 619   2          case   0:
 620   2                     DispFlag|=0x10;
 621   2                 break;
 622   2              case   1:
 623   2                     DispFlag|=0x20;
 624   2                 break;
 625   2          case   2:
 626   2                     DispFlag|=0x40;
 627   2                 break;
 628   2              case   3:
 629   2                     DispFlag|=0x80;
 630   2                 break;
 631   2              case   4:
 632   2                     DispFlag|=0x30;
 633   2                 break;
 634   2              case   5:
 635   2                     DispFlag|=0x50;
 636   2                 break;
 637   2              case   6:
 638   2                     DispFlag|=0x90;
 639   2                 break;
 640   2              case   7:
 641   2                     DispFlag|=0x60;
 642   2                 break;
 643   2              case   8:
 644   2                     DispFlag|=0xa0;
 645   2                 break;
 646   2              case   9:
 647   2                     DispFlag|=0xc0;
 648   2                 break;
 649   2              case   10:
 650   2                     DispFlag|=0x70;
 651   2                 break;
 652   2              case   11:
 653   2                     DispFlag|=0xb0;
 654   2                 break;
 655   2              case   12:
 656   2                     DispFlag|=0xe0;
 657   2                 break;
 658   2              case   13:
 659   2                     DispFlag|=0xd0;
 660   2                 break;
 661   2              case   14:
 662   2                     DispFlag|=0xf0;
 663   2                 break;
 664   2          default:
 665   2                     break;
 666   2         }
 667   1      }
 668          
 669          //
 670          void   FlightDispPrg(uchar *databuf)                                    //闪烁处理函数  
 671          {  
 672   1         ClearDispAttr();
 673   1         memcpy(&DispBuf[1],&databuf[1],4);
 674   1         DispFlag=0;
 675   1        switch(databuf[0])
C51 COMPILER V6.23a  MAIN                                                                  08/06/2002 16:18:58 PAGE 12  

 676   1         {  
 677   2          case   0:
 678   2                     DispFlag|=0x01;
 679   2                 break;
 680   2              case   1:
 681   2                     DispFlag|=0x02;
 682   2                 break;
 683   2          case   2:
 684   2                     DispFlag|=0x04;
 685   2                 break;
 686   2              case   3:
 687   2                     DispFlag|=0x08;
 688   2                 break;
 689   2              case   4:
 690   2                     DispFlag|=0x03;
 691   2                 break;
 692   2              case   5:
 693   2                     DispFlag|=0x05;
 694   2                 break;
 695   2              case   6:
 696   2                     DispFlag|=0x09;
 697   2                 break;
 698   2              case   7:
 699   2                     DispFlag|=0x06;
 700   2                 break;
 701   2              case   8:
 702   2                     DispFlag|=0x0a;
 703   2                 break;
 704   2              case   9:
 705   2                     DispFlag|=0x0c;
 706   2                 break;
 707   2              case   10:
 708   2                     DispFlag|=0x07;
 709   2                 break;
 710   2              case   11:
 711   2                     DispFlag|=0x0b;
 712   2                 break;
 713   2              case   12:
 714   2                     DispFlag|=0x0e;
 715   2                 break;
 716   2              case   13:
 717   2                     DispFlag|=0x0d;
 718   2                 break;
 719   2              case   14:
 720   2                     DispFlag|=0x0f;
 721   2                 break;
 722   2          default:
 723   2                     break;
 724   2         }
 725   1      }
 726          
 727          //
 728          void   LiftCrcDispPrg(uchar *databuf)           //左循环显示处理
 729          {
 730   1         memcpy(&DispBuf[1],&databuf[1],4);
 731   1         LiftCrcDispFlag=1;RightCrcDispFlag=0;
 732   1      }
 733          void   RightCrcDispPrg(uchar *databuf)          //右循环显示处理
 734          {
 735   1        memcpy(&DispBuf[1],&databuf[1],4);
 736   1        LiftCrcDispFlag=0;RightCrcDispFlag=1;
 737   1      }
C51 COMPILER V6.23a  MAIN                                                                  08/06/2002 16:18:58 PAGE 13  

 738          
 739          //
 740          void   CanSend_Prg(void)                                        //can发送数据
 741          {
 742   1      }
 743          void   CanErr_Prg(void)                             //发现错误后处理
 744          {
 745   1        Error_disp(CAN_BUS_ERR); 
 746   1        Config_SJA();                                                                 //
 747   1      }
 748          void   CanDtOver_Prg(void)                      //超载处理
 749          {
 750   1      //  BCAN_CMD_PRG(COS_CMD);
 751   1      }
 752          void   CanWui_Prg(void)                         //唤醒中断处理
 753          {
 754   1        
 755   1      }
 756          
 757          //
 758          void   UartRcv_Prg(void)                                                //串口接收到数据处理
 759          {
 760   1          BCAN_DATA_WRITE(RcvBuf);                                //将编辑的数据发送到can总线
 761   1          BCAN_CMD_PRG(TR_CMD);
 762   1      }
 763          
 764          //自动发送
 765          void   AutoSendDataToCanBus(void)
 766          {
 767   1       /* uchar i;
 768   1       if((DispBuf[1]==0x05)&&(DispBuf[2]==0x0d))
 769   1       {
 770   1              
 771   1              if(EditMsSendCount ==0){
 772   1                      EditMsSendCount = EditMsSendSave;
 773   1                      SendDataCount++;
 774   1                      SetSystemBuf[0]++;
 775   1                      SetSystemBuf[1]=0x08;
 776   1              for(i=2;i<10;i++)
 777   1                              SetSystemBuf[i]=SendDataCount;
 778   1              BCAN_DATA_WRITE(SetSystemBuf);                          //将编辑的数据发送到can总线
 779   1              BCAN_CMD_PRG(TR_CMD); 
 780   1                      DispBuf[3]=SendDataCount>>4;
 781   1                      DispBuf[4]=SendDataCount&0x0f;
 782   1              }
 783   1              else{
 784   1           EditMsSendCount--;
 785   1              }
 786   1       }*/
 787   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2867    ----
   CONSTANT SIZE    =     45    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     39      33
   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 + -