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

📄 main.lst

📁 C51 CAN开发测试软件和驱动程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 763   2              case   5:
 764   2                     DispFlag|=0x50;
 765   2                 break;
 766   2              case   6:
 767   2                     DispFlag|=0x90;
 768   2                 break;
 769   2              case   7:
 770   2                     DispFlag|=0x60;
 771   2                 break;
 772   2              case   8:
 773   2                     DispFlag|=0xa0;
 774   2                 break;
 775   2              case   9:
 776   2                     DispFlag|=0xc0;
 777   2                 break;
 778   2              case   10:
 779   2                     DispFlag|=0x70;
 780   2                 break;
 781   2              case   11:
 782   2                     DispFlag|=0xb0;
 783   2                 break;
 784   2              case   12:
 785   2                     DispFlag|=0xe0;
 786   2                 break;
 787   2              case   13:
 788   2                     DispFlag|=0xd0;
 789   2                 break;
 790   2              case   14:
 791   2                     DispFlag|=0xf0;
 792   2                 break;
 793   2          default:
 794   2                     break;
 795   2         }
 796   1      }
 797          
 798          //
 799          void   FlightDispPrg(uchar *databuf)                                    //闪烁处理函数  
C51 COMPILER V7.01  MAIN                                                                   01/24/2003 11:54:43 PAGE 14  

 800          {  
 801   1         ClearDispAttr();
 802   1         memcpy(&DispBuf[1],&databuf[1],4);
 803   1         DispFlag=0;
 804   1        switch(databuf[0])
 805   1         {  
 806   2          case   0:
 807   2                     DispFlag|=0x01;
 808   2                 break;
 809   2              case   1:
 810   2                     DispFlag|=0x02;
 811   2                 break;
 812   2          case   2:
 813   2                     DispFlag|=0x04;
 814   2                 break;
 815   2              case   3:
 816   2                     DispFlag|=0x08;
 817   2                 break;
 818   2              case   4:
 819   2                     DispFlag|=0x03;
 820   2                 break;
 821   2              case   5:
 822   2                     DispFlag|=0x05;
 823   2                 break;
 824   2              case   6:
 825   2                     DispFlag|=0x09;
 826   2                 break;
 827   2              case   7:
 828   2                     DispFlag|=0x06;
 829   2                 break;
 830   2              case   8:
 831   2                     DispFlag|=0x0a;
 832   2                 break;
 833   2              case   9:
 834   2                     DispFlag|=0x0c;
 835   2                 break;
 836   2              case   10:
 837   2                     DispFlag|=0x07;
 838   2                 break;
 839   2              case   11:
 840   2                     DispFlag|=0x0b;
 841   2                 break;
 842   2              case   12:
 843   2                     DispFlag|=0x0e;
 844   2                 break;
 845   2              case   13:
 846   2                     DispFlag|=0x0d;
 847   2                 break;
 848   2              case   14:
 849   2                     DispFlag|=0x0f;
 850   2                 break;
 851   2          default:
 852   2                     break;
 853   2         }
 854   1      }
 855          
 856          //
 857          void   LiftCrcDispPrg(uchar *databuf)           //左循环显示处理
 858          {
 859   1         ClearDispAttr();
 860   1         memcpy(&DispBuf[1],&databuf[1],4);
 861   1         LiftCrcDispFlag=1;RightCrcDispFlag=0;
C51 COMPILER V7.01  MAIN                                                                   01/24/2003 11:54:43 PAGE 15  

 862   1      }
 863          void   RightCrcDispPrg(uchar *databuf)          //右循环显示处理
 864          {
 865   1        ClearDispAttr();
 866   1        memcpy(&DispBuf[1],&databuf[1],4);
 867   1        LiftCrcDispFlag=0;RightCrcDispFlag=1;
 868   1      }
 869          
 870          //
 871          void   CanSend_Prg(void)                                        //can发送数据
 872          {
 873   1              if(AutoSendFlag)
 874   1              {
 875   2                      if((DispBuf[1]==0x05)&&(DispBuf[2]==0x0d))      //
 876   2                      {
 877   3                              DispBuf[3]=     (unsigned char )TestSendData>>4;
 878   3                              DispBuf[4]=     ((unsigned char )TestSendData)&0x0f;
 879   3                      }       
 880   2              }
 881   1      }
 882          void   CanErr_Prg(void)                             //发现错误后处理
 883          {
 884   1              DispBuf[1]=0;
 885   1              DispBuf[2]=0;
 886   1              Config_SJA();                                                                   //
 887   1              Error_disp(CAN_BUS_ERR); 
 888   1      }
 889          void   CanDtOver_Prg(void)                      //超载处理
 890          {
 891   1      //  BCAN_CMD_PRG(COS_CMD);
 892   1      }
 893          void   CanWui_Prg(void)                         //唤醒中断处理
 894          {
 895   1        
 896   1      }
 897          
 898          //
 899          void   UartRcv_Prg(void)                                                //串口接收到数据处理
 900          {
 901   1          BCAN_DATA_WRITE(RcvBuf);                                //将编辑的数据发送到can总线
 902   1          BCAN_CMD_PRG(TR_CMD);
 903   1      }
 904          
 905          //自动发送
 906          void   AutoSendDataToCanBus(void)
 907          {
 908   1              
 909   1              if(AutoSendFlag)
 910   1              {
 911   2                      if((ReadSjaReg(REG_CONTROL)&0x01)==0)
 912   2                      {
 913   3                              AutoSendFrameID >>=5;
 914   3                              AutoSendFrameID++;
 915   3                              if(AutoSendFrameID>0x0fe00)
 916   3                              {
 917   4                                      AutoSendFrameID=0;      
 918   4                              }
 919   3                              AutoSendFrameID <<=5;
 920   3                              TestSendData++;
 921   3                              WriteSjaReg(REG_TxBuffer1,AutoSendFrameID>>8);
 922   3                              WriteSjaReg(REG_TxBuffer2,((unsigned char)AutoSendFrameID&0xf0)|0x06);
 923   3                              WriteSjaReg(REG_TxBuffer3,0xc1);
C51 COMPILER V7.01  MAIN                                                                   01/24/2003 11:54:43 PAGE 16  

 924   3                              WriteSjaReg(REG_TxBuffer4,14);
 925   3                              WriteSjaReg(REG_TxBuffer5,(unsigned char)(TestSendData>>12));
 926   3                              WriteSjaReg(REG_TxBuffer6,(unsigned char)((TestSendData>>8)&0x0f));
 927   3                              WriteSjaReg(REG_TxBuffer7,((unsigned char)TestSendData>>4));
 928   3                              WriteSjaReg(REG_TxBuffer8,((unsigned char)TestSendData&0x0f));
 929   3                              BCAN_CMD_PRG(TR_CMD);
 930   3                      }
 931   2                      else
 932   2                      {       
 933   3                              AutoSendFlag=0;
 934   3                              Write_DispBuf(0,0x0E,0x12,0x0f,0x0d);//在复位模式
 935   3                      }
 936   2              }
 937   1        
 938   1      }
 939          
 940          //提取波特率的对应值
 941          unsigned        char    ValueToBandRate(void)
 942          {
 943   1              unsigned        char    i;
 944   1              unsigned        int             BandRate;       
 945   1              BCAN_ENTER_RETMODEL();
 946   1              i = ReadSjaReg(REG_BTR0);
 947   1              BandRate=(unsigned      int)(i<<8);
 948   1              i = ReadSjaReg(REG_BTR1);
 949   1              BandRate +=i;
 950   1              BCAN_QUIT_RETMODEL();
 951   1              switch(BandRate)
 952   1              {
 953   2                      case    0xbfff:                                         //;5KBPS的预设值
 954   2                              i =0;
 955   2                              break;
 956   2                      case    0x672f:                                         //;10KBPS的预设值
 957   2                              i =1;
 958   2                              break;
 959   2              case    0x532F:                        //;20KBPS的预设值
 960   2                              i =2;
 961   2                              break;
 962   2              case    0x87FF:                     //;40KBPS的预设值
 963   2                              i =3;
 964   2                              break;
 965   2              case    0x472F:                     //;50KBPS的预设值
 966   2                              i =4;
 967   2                              break;
 968   2              case    0x83FF:                     //;80KBPS的预设值
 969   2                              i =5;
 970   2                              break;
 971   2              case    0x432f:                     //;100KBPS的预设值
 972   2                              i =6;
 973   2                              break;
 974   2              case    0x031c:                     //;125KBPS的预设值
 975   2                              i =7;
 976   2                              break;
 977   2              case    0x81fa:                     //;200KBPS的预设值
 978   2                              i =8;
 979   2                              break;
 980   2              case    0x011c:                     //;250KBPS的预设值
 981   2                              i =9;
 982   2                              break;
 983   2              case    0x80fa:                     //;400KBPS的预设值
 984   2                              i =10;
 985   2                              break;
C51 COMPILER V7.01  MAIN                                                                   01/24/2003 11:54:43 PAGE 17  

 986   2              case    0x001c:                     //;500KBPS的预设值
 987   2                              i =11;
 988   2                              break;
 989   2              case    0x80b6:                     //;666KBPS的预设值
 990   2                              i =12;
 991   2                              break;
 992   2              case    0x0016:                    //;800KBPS的预设值
 993   2                              i =13;
 994   2                              break;
 995   2              case    0x0014:                      //;1000KBPS的预设值
 996   2                              i =14;
 997   2                              break;
 998   2                      default:
 999   2                              i=0xff;
1000   2                              break;
1001   2              }
1002   1              return  i;
1003   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3712    ----
   CONSTANT SIZE    =     49    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     43      36
   IDATA SIZE       =     36    ----
   BIT SIZE         =      8       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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