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

📄 out.lst

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


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

stmt level    source

   1          #include <out.h>
   2          #include <reg51.h>
   3          #include <head.h>
   4          
   5          
   6          out( unsigned int addr, unsigned char value)
   7          {*( unsigned char xdata *)addr=value;
   8   1      }
   9          
  10          
  11          in(unsigned int addr)
  12          {unsigned char value;
  13   1      P0=0xFF;
  14   1      value=*(unsigned char xdata *)addr;
  15   1      return(value)
  16   1      ;}
  17          
  18          test()
  19          {
  20   1      out(TEST,0xAA);
  21   1      while((in(TEST)^0xAA))
  22   1      out(TEST,0xAA);
  23   1      
  24   1      }
  25          
  26          
  27          RCVDATA()
  28          {unsigned char i;
  29   1      buf[0]=in(CANRXB);
  30   1      if(buf[0]&0x80)
  31   1      {if(buf[0]&0x40)
  32   2      {my_flag.flags.REC_REMOTE_FRAME=1;
  33   3      buf[1]=in(RX_1);
  34   3      buf[2]=in(RX_2);
  35   3      buf[3]=in(RX_3);
  36   3      buf[4]=in(RX_4);
  37   3      }
  38   2      else
  39   2      {my_flag.flags.REC_DATA_FRAME=1;
  40   3      for(i=1;i<=((buf[0]&0x0F)+4);i++)
  41   3      buf[i]=in(CANRXB+i);
  42   3      }
  43   2      }
  44   1      else
  45   1      {if(buf[0]&0x40)
  46   2      {my_flag.flags.REC_REMOTE_FRAME=1;
  47   3      buf[1]=in(RX_1);
  48   3      buf[2]=in(RX_2);
  49   3      }
  50   2      else
  51   2      {my_flag.flags.REC_DATA_FRAME=1;
  52   3      for(i=1;i<=((buf[0]&0x0F)+2);i++)
  53   3      buf[i]=in(CANRXB+i);
  54   3      }
  55   2      }
C51 COMPILER V6.12  OUT                                                                    11/24/2006 12:29:26 PAGE 2   

  56   1      out(CMR,0x04);
  57   1      }
  58          
  59          TDATA()
  60          {unsigned char i;
  61   1      out (CANTXB,tuf[0]);
  62   1      out (TX_1,tuf[1]);
  63   1      out (TX_2,tuf[2]);
  64   1      if (!(tuf[0]&0x80))
  65   1      {
  66   2      if(tuf[0]&0x40);
  67   2      else
  68   2      for(i=0;i<(tuf[0]&0x0F);i++)
  69   2      out(TX_3+i,tuf[i+5]);
  70   2      }
  71   1      else
  72   1      {
  73   2      out (TX_3,tuf[1]);
  74   2      out (TX_4,tuf[2]);
  75   2      if(tuf[0]&0x40);
  76   2      else
  77   2      for(i=0;i<(tuf[0]&0x0F);i++)
  78   2      out(TX_DATA1+i,tuf[i+5]);
  79   2      }
  80   1      
  81   1      out (CMR,0x01);
  82   1      
  83   1      }
  84          
  85          REC_REMOTE()
  86          {
  87   1      tuf[0]=0x01;
  88   1      tuf[1]=0x00;
  89   1      tuf[2]=0x02;
  90   1      TDATA();
  91   1      out(LED,0x01);
  92   1      }
  93          
  94          
  95          REC_DATA()
  96          {if(buf[0]&0x80)
  97   1      out(LED,buf[5]);
  98   1      else
  99   1      out(LED,buf[3]);
 100   1      }
 101          
 102          
 103          ERR()
 104          {unsigned char b;
 105   1      b=in(SR);
 106   1      if(b&0x80)
 107   1      {if(b&0x40)
 108   2      {while (!(in(MODE)&0x01))
 109   3      {out(MODE,(in(MODE)|0x01));
 110   4      out(LED,0x55);
 111   4      }
 112   3      buf[0]=0x0;
 113   3      tuf[0]=0x0;
 114   3      delay(2);
 115   3      while (in(MODE)&0x01)
 116   3      {out(MODE,(in(MODE)&0xFE));
 117   4      out(LED,0x55);
C51 COMPILER V6.12  OUT                                                                    11/24/2006 12:29:26 PAGE 3   

 118   4      }
 119   3      }
 120   2      }
 121   1      else
 122   1      while (in(MODE)&0x01)
 123   1      {out(MODE,(in(MODE)&0xFE));
 124   2      out(LED,0x55);
 125   2      }
 126   1      }
 127          
 128          BERR()
 129          {while (!(in(MODE)&0x01))
 130   1      {out(MODE,(in(MODE)|0x01));
 131   2      out(LED,0x55);
 132   2      }
 133   1      delay(2);
 134   1      while (in(MODE)&0x01)
 135   1      {out(MODE,(in(MODE)&0xFE));
 136   2      out(LED,0x55);
 137   2      }
 138   1      }
 139          
 140          
 141          readdata()
 142          {unsigned char b;
 143   1      P1=0xFF;
 144   1      b=P1;
 145   1      delay1(0xFF02);
 146   1      if(b==P1);
 147   1      else
 148   1      b=tuf[5];
 149   1      return(b);
 150   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    582    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   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 + -