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

📄 can_main.lst

📁 CAN总线源程序,欢迎大家共同学习
💻 LST
字号:
C51 COMPILER V6.12  CAN_MAIN                                                               11/24/2006 12:29:25 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE CAN_MAIN
OBJECT MODULE PLACED IN .\CAN_MAIN.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE .\CAN_MAIN.c DEBUG OBJECTEXTEND SRC(.\CAN_MAIN.SRC) 

stmt level    source

   1          #include <reg51.h>
   2          #include <head.h>
   3          #include <out.h>
   4          my_flag1 my_flag;
   5          unsigned char buf[13];
   6          unsigned char a;
   7          unsigned char tuf[13];
   8          CAN_INI();
   9          
  10          
  11          delay(unsigned char a);
  12          
  13          
  14          main()
  15          {unsigned char i;
  16   1      for (i=0;i<13;i++)
  17   1      {buf[i]=0x0;
  18   2      tuf[i]=0x0;}
  19   1      delay(0x02);
  20   1      SP=0x60;
  21   1      P3_1=0;
  22   1      my_flag.value=0x0000;	
  23   1      out(LED,0x20);
  24   1      CAN_INI();
  25   1      PX0=1;
  26   1      EX0=1;
  27   1      EA=1;
  28   1      while(1)
  29   1      {if (my_flag.flags.REC_REMOTE_FRAME)
  30   2      {
  31   3      my_flag.flags.REC_REMOTE_FRAME=0;
  32   3      REC_REMOTE();
  33   3      }
  34   2      if(my_flag.flags.REC_DATA_FRAME)
  35   2      {my_flag.flags.REC_DATA_FRAME=0;
  36   3      REC_DATA();
  37   3      }
  38   2      if(my_flag.flags.ERR_FLAG)
  39   2      {
  40   3      my_flag.flags.ERR_FLAG=0;
  41   3      ERR();
  42   3      }
  43   2      if(my_flag.flags.BERR_FLAG)
  44   2      {my_flag.flags.BERR_FLAG=0;
  45   3      BERR();
  46   3      }
  47   2      if(tuf[5]!=readdata())
  48   2      {tuf[5]=readdata();
  49   3      tuf[0]=0x01;
  50   3      tuf[1]=0x00;
  51   3      tuf[2]=0x02;
  52   3      TDATA();
  53   3      out(LED,tuf[5]);
  54   3      }
  55   2      
C51 COMPILER V6.12  CAN_MAIN                                                               11/24/2006 12:29:25 PAGE 2   

  56   2      //out(LED,in(SR));
  57   2      }
  58   1      }
  59          
  60          CAN_INI()
  61          {test();
  62   1      while (in(BTR0)^0x00) 
  63   1      {out(BTR0,0x00);
  64   2      out(LED,0x80);}
  65   1      while (in(BTR1)^0x36)
  66   1      {out(BTR1,0x36);
  67   2      out(LED,0x90);}
  68   1      while (in(CDR)^0xC7)
  69   1      {out(CDR,0xC7);
  70   2      out(LED,0x50);}
  71   1      while (in(OCR)^0xAA)
  72   1      {out(OCR,0xAA);
  73   2      out(LED,0x01);}
  74   1      out(RBSA,0x0);
  75   1      out(TXERR,0x0);
  76   1      out(RXERR,0x0);
  77   1      out(ECC,0x0);
  78   1      out(EWLR,0x60);
  79   1      out(MODE,(in(MODE)&0xF1));
  80   1      out(ACR0,0x02);
  81   1      out(ACR1,0xFF);
  82   1      out(ACR2,0x00);
  83   1      out(ACR3,0x00);
  84   1      out(LED,0x70);
  85   1      out(AMR0,0xFF);
  86   1      out(AMR1,0xFF);
  87   1      out(AMR2,0x01);
  88   1      out(AMR3,0xFF);
  89   1      while (in(MODE)&0x01)
  90   1      {out(MODE,(in(MODE)&0xFE));
  91   2      out(LED,0x55);
  92   2      }
  93   1      out(IER,0x85);
  94   1      }
  95          
  96          
  97          
  98          
  99          SEARCH() interrupt 0
 100          {
 101   1      #pragma asm
 102   1      CLR EA;
 103   1      PUSH DPH;
 104   1      PUSH DPL;
 105   1      PUSH PSW;
 106   1      PUSH ACC;
 107   1      #pragma endasm
 108   1      
 109   1      a=in(IR);
 110   1      if(a&0x01)
 111   1      {RCVDATA();
 112   2      
 113   2      while(in(SR)&0x01)
 114   2      RCVDATA();
 115   2      }
 116   1      else if (a&0x02)
 117   1      
C51 COMPILER V6.12  CAN_MAIN                                                               11/24/2006 12:29:25 PAGE 3   

 118   1      my_flag.flags.ERR_FLAG=1;
 119   1      
 120   1      else
 121   1      
 122   1      my_flag.flags.BERR_FLAG=1;
 123   1      #pragma asm
 124   1      POP ACC;
 125   1      POP PSW;
 126   1      POP DPL;
 127   1      POP DPH;
 128   1      SETB EA;
 129   1      #pragma endasm
 130   1      
 131   1      
 132   1      }
 133          
 134          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    625    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     29    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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