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

📄 can_c.lst

📁 单片机和GPS接收机构成的车载卫星定位系统
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.05a   CAN_C                                                                06/20/2008 07:43:20 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE CAN_C
OBJECT MODULE PLACED IN CAN_C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CAN_C.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #pragma   large
   2          #include  <reg52.h>
   3          #include  <SJA_BCANCONF.H>
*** WARNING C318 IN LINE 3 OF CAN_C.C: can't open file 'SJA_BCANCONF.H'
   4          #include  <absacc.h>
   5          #include  <string.h>
   6          #include  <intrins.h>
   7          #define   uchar  unsigned char
   8          #define   uint   unsigned int
   9          /*----------------------------lcd---------------------------------*/
  10          #define clear   0x01  //清屏幕,约1.6ms
  11          #define home    0x02   //光标回零(左上角)
  12          #define f_set   0x30  //并行、基本指令
  13          #define dis_on  0x0f  //打开显示,光标,闪烁功能
  14          #define in_mode 0x06  //输入方式,地址增1,光标右移
  15          #define panel_num 10
  16          
  17          sbit P_RS=P1^3;   //P0^1; P1.5  片选CS高电平选中即有效
  18          sbit P_RW=P1^4;   //P0^2;  SID
  19          sbit P_E=P1^5;    // P0^3;   CLK
  20          bdata uchar ab,d;
  21          sbit abit0=ab^0;sbit abit1=ab^1;sbit abit2=ab^2;sbit abit3=ab^3;
  22          sbit abit4=ab^4;sbit abit5=ab^5;sbit abit6=ab^6;sbit abit7=ab^7;
  23          //idata uchar teleph0[17]={0x08,0xfd,0x04,0x0d,0,0,0,0,0,0,0,0,0,0,0,0,0};//0x38,0x36,0x31,0x33,0x38,0x34,
             -0x35,0x31,0x32,
  24                                  //0x34,0x36,0x34,0x32};
  25          idata uchar str[10];
  26          data uchar start;
  27          //data uchar plat_data;
  28          //uchar i;
  29          /******************/
  30           /*---------------------------------------------------------*/
  31          /****************************************************************
  32          CAN总线数据协议:
  33          
  34                 0          "1" to "20"          目标ID
  35                 1            "0x08"             特定
  36                 2          "m" or "p" or  "d"   关节的选择
  37                 3          "1" to "3"           自身ID
  38                 4          "C" or "D"           命令口or数据口的选择
  39                 5          "R" or "A"            命令字
  40                 6-9          ......             数据
  41          
  42          ******************************************************************/
  43          
  44          sbit SJA_reset=P2^1;
  45          sbit green=P1^1;
  46          sbit red=P1^2;
  47          long real_position_m,real_position_p,real_position_d;
  48          unsigned char request_flag,interrupt_flag;   //是否为查询
  49          
  50          unsigned char data SystemBuf[10];   //系统设置的接收数据缓冲区
  51          unsigned char data SendBuf[10];   //系统设置的发送数据缓冲区
  52          /*---------------------------------------------------------*/
  53          void delay(uint j)    //  time=j*10+7 (us)延时函数/
C51 COMPILER V8.05a   CAN_C                                                                06/20/2008 07:43:20 PAGE 2   

  54          {
  55   1          data uchar ch;
  56   1          while(j--)
  57   1          {
  58   2          ch++; ch--;
  59   2          }
  60   1      }
  61          /*---------------------------------------------------------*/
  62          
  63          
  64          
  65          /************************************************************************
  66           *以下为基本的函数说明(BasicCAN)                                       *
  67           ************************************************************************/
  68          
  69          /************************************************************************
  70           *函数原型:  bit   BCAN_CREATE_COMMUNATION(void)                        *
  71           *参数说明:  无                                                         *
  72           *返回值:                                                               *
  73           *           0 ; 表示SJA1000接口正常                                    *
  74           *           1 ; 表示SJA1000与处理器接口不正常                          *
  75           *                                                                      *
  76           *说明:该函数用于检测CAN控制器的接口是否正常                            *
  77           ************************************************************************/
  78           bit   BCAN_CREATE_COMMUNATION(void)
  79           {
  80   1          SJA_BCANAdr=REG_TEST;                     //访问测试寄存器
*** ERROR C202 IN LINE 80 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
  81   1      
  82   1          *SJA_BCANAdr   =0xaa;                     //写入测试值
*** ERROR C202 IN LINE 82 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
  83   1          if(*SJA_BCANAdr == 0xaa)
*** ERROR C202 IN LINE 83 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
  84   1          {
  85   2              return    0;                          //读测试正确
  86   2          }
  87   1          else
  88   1          {
  89   2             return    1;
  90   2          }
  91   1       }
  92          
  93          /************************************************************************
  94           *函数原型:      bit   BCAN_ENTER_RETMODEL(void)                        *
  95           *参数说明:  无                                                         *
  96           *返回值:                                                               *
  97           *           0 ; 表示成功进入复位工作模式                               *
  98           *           1 ; 表示不能进入复位工作模式                               *
  99           *                                                                      *
 100           *说明:      CAN控制器进入复位工作模式                                  *
 101           ************************************************************************/
 102           bit   BCAN_ENTER_RETMODEL(void)
 103           {
 104   1          unsigned   char   TempData;
 105   1          SJA_BCANAdr  = REG_CONTROL;                   //访问地址指向控制寄存器
*** ERROR C202 IN LINE 105 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 106   1          TempData=  *SJA_BCANAdr;                      //保存原始值
*** ERROR C202 IN LINE 106 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 107   1          *SJA_BCANAdr=(TempData|0x01);                 //置位复位请求
*** ERROR C202 IN LINE 107 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 108   1          if((*SJA_BCANAdr&0x01) == 1)
*** ERROR C202 IN LINE 108 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
C51 COMPILER V8.05a   CAN_C                                                                06/20/2008 07:43:20 PAGE 3   

 109   1          {
 110   2             return   0;
 111   2          }
 112   1          else
 113   1          {
 114   2             return   1;
 115   2          }
 116   1      
 117   1       }
 118          
 119          /************************************************************************
 120           *函数原型:      bit   BCAN_QUIT_RETMODEL(void)                         *
 121           *参数说明:  无                                                         *
 122           *返回值:                                                               *
 123           *           0 ; 表示成功退出复位工作模式                               *
 124           *           1 ; 表示不能退出复位工作模式                               *
 125           *                                                                      *
 126           *说明:      CAN控制器退出复位工作模式                                  *
 127           ************************************************************************/
 128           bit   BCAN_QUIT_RETMODEL(void)
 129           {
 130   1          unsigned   char   TempData;
 131   1          SJA_BCANAdr = REG_CONTROL;                   //访问地址指向控制寄存器
*** ERROR C202 IN LINE 131 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 132   1          TempData    = *SJA_BCANAdr;                  //保存原始值
*** ERROR C202 IN LINE 132 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 133   1          *SJA_BCANAdr=(TempData&0xfe);                        //清除复位请求
*** ERROR C202 IN LINE 133 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 134   1          if((*SJA_BCANAdr&0x01) == 0)
*** ERROR C202 IN LINE 134 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 135   1          {
 136   2             return   0;                               //
 137   2          }
 138   1          else
 139   1          {
 140   2             return   1;                              //退出成功
 141   2          }
 142   1      
 143   1       }
 144          
 145          /************************************************************************
 146          ;*函数原型:   bit   BCAN_SET_BANDRATE(unsigned char CAN_ByteRate)       *
 147          ;*参数说明:    R7            波特率(Kbit/s) BTR0     BTR1             *
 148                                              500K
 149          ;*返回值:                                                               *
 150          ;*           0 ;波特率设置成功                                          *
 151          ;*           1 ;波特率设置失败                                          *
 152          ;*                                                                      *                                 
             -                       *
 153          ;************************************************************************/
 154          bit   BCAN_SET_BANDRATE()
 155          {
 156   1         unsigned char BTR0_num=0x00;  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 157   1         unsigned char BTR1_num=0x1c;  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 158   1        //将波特率的的预设值装入sja1000的总线定时器
 159   1        SJA_BCANAdr=REG_BTR0;                         //访问地址指向总线定时寄存器0
*** ERROR C202 IN LINE 159 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 160   1        *SJA_BCANAdr=BTR0_num;                        //写入参数
*** ERROR C202 IN LINE 160 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 161   1        if(*SJA_BCANAdr != BTR0_num)                  //校验写入值
*** ERROR C202 IN LINE 161 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 162   1        {
C51 COMPILER V8.05a   CAN_C                                                                06/20/2008 07:43:20 PAGE 4   

 163   2          return  1;
 164   2        }
 165   1        SJA_BCANAdr=REG_BTR1;                         //访问地址指向总线定时寄存器
*** ERROR C202 IN LINE 165 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 166   1        *SJA_BCANAdr=BTR1_num;                        //写入参数
*** ERROR C202 IN LINE 166 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 167   1        if(*SJA_BCANAdr != BTR1_num)                  //校验写入值
*** ERROR C202 IN LINE 167 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 168   1        {
 169   2          return  1;
 170   2        }
 171   1      
 172   1        return    0;
 173   1      }
 174          
 175          
 176          /************************************************************************
 177          ;*函数原型:    BCAN_SET_OBJECT                                          *
 178          *参数说明:                                                              *
 179           *    BCAN_ACR:存放验收代码寄存器(ACR)的参数设置                      *
 180           *    BCAN_AMR:存放接收屏蔽寄存器(AMR)的参数设置                      *
 181          ;*返回值:                                                               *
 182          ;*           0 ;通信对象设置成功                                        *
 183          ;*           1 ;通信对象设置失败                                        *
 184          ;*                                                                      *
 185          ;*说明:设置CAN节点的通讯对象,允许接收的报文ID号的高8位(D10--D3) 。     *
 186          ;*     允许接收的报文,是由AMR和ACR共同决定的.                           *
 187          ;*    满足以下条件的ID号的报文才可以被接收                              *
 188          ;*[(ID.10-ID.3)≡(AC.7-AC.0)]||(AM.7-AM.0)≡11111111              *
 189          ;*    该子程序只能用于复位模式                                          *                                 
             -                                                                                    *
 190          ;************************************************************************/
 191          bit    BCAN_SET_OBJECT(unsigned char  BCAN_ACR,unsigned char  BCAN_AMR)
 192          {
 193   1         SJA_BCANAdr=REG_ACR;                         //访问地址指向验收代码寄存器(ACR)
*** ERROR C202 IN LINE 193 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 194   1        *SJA_BCANAdr=BCAN_ACR;                        //写入参数
*** ERROR C202 IN LINE 194 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 195   1        if(*SJA_BCANAdr != BCAN_ACR)                  //校验写入值
*** ERROR C202 IN LINE 195 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 196   1        {
 197   2          return  1;
 198   2        }
 199   1        SJA_BCANAdr=REG_AMR;                          //访问地址指向验收屏蔽寄存器(AMR)
*** ERROR C202 IN LINE 199 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 200   1        *SJA_BCANAdr=BCAN_AMR;                        //写入参数
*** ERROR C202 IN LINE 200 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 201   1        if(*SJA_BCANAdr != BCAN_AMR)                  //校验写入值
*** ERROR C202 IN LINE 201 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
 202   1        {
 203   2          return  1;
 204   2        }
 205   1      
 206   1        return    0;
 207   1      }
 208          
 209          /************************************************************************
 210          ;*函数原型: bit  BCAN_SET_OUTCLK (unsigned char Out_Control,            *
 211                                            unsigned char  Clock_Out);            *
 212          ;*参数说明:                                                                                                                     *

⌨️ 快捷键说明

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