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

📄 do.lst

📁 2个F040之间的CAN通讯
💻 LST
字号:
C51 COMPILER V7.10   DO                                                                    07/27/2008 16:49:15 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE DO
OBJECT MODULE PLACED IN do.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE do.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "c8051f040.h"
   2          #include "can.h"
   3          
   4          //-----------------------------------------------------------------------------
   5          // GLOBAL CONSTANTS
   6          //-----------------------------------------------------------------------------
   7          
   8          //-----------------------------------------------------------------------------
   9          // Functions
  10          //-----------------------------------------------------------------------------
  11          void SYSCLK_Init (void);
  12          void PORT_Init (void);
  13          void INT_Init (void);
  14          void CAN_Init (void);
  15          void CAN_Start(void);
  16          void CAN_Transmit_Init (unsigned char MsgNum , unsigned char id);
  17          void CAN_Receive_Init (unsigned char MsgNum , unsigned char id);
  18          void Timer_Init (void);
  19          
  20          void CAN_Receive_Interrupt (void);
  21          void INT0_Interrupt (void);
  22          void Timer0_Overflow_Interrupt (void);
  23          
  24          //void Get_DO_Address (void);
  25          void Control_DO (void);
  26          
  27          
  28          void CAN_Transmit(unsigned char MsgNum,unsigned char *p_data );
  29          void CAN_Receive (unsigned char MsgNum ,unsigned char *p);
  30          void CAN_RemoteRqst_Init(unsigned char MsgNum , unsigned char id);  
  31          void CAN_RemoteRqst(unsigned char MsgNum);
  32          void CAN_Remote_Send_Init(unsigned char MsgNum,unsigned char id );
  33          void CAN_Remote_Updata(unsigned char MsgNum,unsigned char *p_data );
  34          void delay1ms(unsigned int time);
  35          
  36          //-----------------------------------------------------------------------------
  37          // Global Variables
  38          //-----------------------------------------------------------------------------
  39          sbit            OE = P4^0;             //74HC245 ENABLE
  40          sbit            CANLED = P4^1;         //CANLED 0 MEANS ON
  41          bit             b_data1=0;          //  DO_Error_Flag;
  42          bit             b_data2=0;          //  DO_Control_Flag;
  43          bit             b_data3=0;          //  DO_Message_Req_Flag;
  44          
  45          unsigned char   DO_Control_Data0;
  46          unsigned char   DO_Control_Data1;
  47          unsigned char   DO_Control_Data_New0;
  48          unsigned char   DO_Control_Data_New1;
  49          unsigned char   DO_Control_Data_Ordered0;
  50          unsigned char   DO_Control_Data_Ordered1;
  51          unsigned char   temp1, temp2;
  52          unsigned char   temppage,CAN_Status;
  53          
  54          //xdata unsigned char ss1[8]={0x1a,0x2a,0x3a,0x4a,0x5a,0x6a,0x7a,0x8a};
  55          //xdata unsigned char ss2[8]={0x1b,0x2b,0x3b,0x4b,0x5b,0x6b,0x7b,0x8b};
C51 COMPILER V7.10   DO                                                                    07/27/2008 16:49:15 PAGE 2   

  56          //xdata unsigned char ss3[8]={0x1c,0x2c,0x3c,0x4c,0x5c,0x6c,0x7c,0x8c};
  57          xdata unsigned char rr1[8]={0,0,0,0,0,0,0,0}; 
  58          xdata unsigned char rr2[8]={0,0,0,0,0,0,0,0}; 
  59          xdata unsigned char rr3[8]={0,0,0,0,0,0,0,0}; 
  60          
  61          void delay1ms(unsigned int time)
  62          {
  63   1        unsigned int i;
  64   1        unsigned int j;
  65   1        for(i=0;i<time;i++)
  66   1        {
  67   2          for(j=0;j<300;j++);
  68   2        }
  69   1      }
  70          
  71          
  72          //-----------------------------------------------------------------------------
  73          // Main Routine
  74          //-----------------------------------------------------------------------------
  75          void main ()
  76          {  
  77   1      
  78   1       //unsigned char state;  //CANSTAT
  79   1      
  80   1        EA = 0;
  81   1      
  82   1        WDTCN = 0xDE;              //Disable Watchdog Timer
  83   1        WDTCN = 0xAD;
  84   1      
  85   1        SYSCLK_Init ();
  86   1        PORT_Init ();
  87   1        INT_Init ();
  88   1      
  89   1        //Get_DO_Address ();
  90   1      
  91   1        CAN_Init ();
  92   1        CAN_Transmit_Init (1,1);
  93   1        CAN_Receive_Init (2,1);
  94   1        CAN_Start();
  95   1        
  96   1        Timer_Init ();
  97   1      
  98   1        OE = 0;
  99   1        EA = 1;
 100   1        TR0 = 1;
 101   1      
 102   1      
 103   1        //CAN_Transmit(1,ss);
 104   1      CAN_RemoteRqst_Init(1,1);
 105   1      CAN_RemoteRqst_Init(2,2);
 106   1      CAN_RemoteRqst_Init(3,3);
 107   1      
 108   1      //P5 =0xaa;
 109   1      //P5 =0x55;
 110   1      
 111   1      CAN_RemoteRqst(1);
 112   1           while (1) 
 113   1           {
 114   2                 // if(b_data1){P5=rr1[0];b_data1=0;}
 115   2              //      if(b_data2){P5=rr2[0];b_data2=0;}
 116   2              //      if(b_data3){P5=rr3[0];b_data3=0;}
 117   2      
C51 COMPILER V7.10   DO                                                                    07/27/2008 16:49:15 PAGE 3   

 118   2           }
 119   1        
 120   1      }
 121          
 122          //-----------------------------------------------------------------------------
 123          // CAN_Receive_Interrupt
 124          //-----------------------------------------------------------------------------
 125          void CAN_Receive_Interrupt (void) interrupt 19 
 126          {
 127   1         unsigned char temp;
 128   1         temppage = SFRPAGE;
 129   1         SFRPAGE = CAN0_PAGE;
 130   1      
 131   1         CAN_Status = CAN0STA;
 132   1         if((CAN_Status & 0x10)!=0)
 133   1         {
 134   2                CAN0STA = CAN_Status & 0xef;
 135   2                CAN0ADR = INTPEND1;
 136   2                temp = CAN0DATL;     //
 137   2            
 138   2                if((temp & 0x01)!=0)
 139   2                {
 140   3               CAN_Receive(1,rr1);
 141   3                       SFRPAGE = 0x0f;
 142   3                       P5= rr1[7];
 143   3                       P6= rr1[6];
 144   3                       SFRPAGE = CAN0STA;
 145   3                       delay1ms(10000);
 146   3               CAN_RemoteRqst(2);
 147   3            }
 148   2      
 149   2            if((temp & 0x02)!=0)
 150   2                {
 151   3               CAN_Receive(2,rr2);
 152   3                       SFRPAGE = 0x0f;
 153   3                       P5= rr2[7];
 154   3                       P6= rr2[6];
 155   3                       SFRPAGE = CAN0STA;
 156   3                       delay1ms(10000);
 157   3               CAN_RemoteRqst(3);
 158   3            }
 159   2      
 160   2            if((temp & 0x04)!=0)
 161   2                {
 162   3               CAN_Receive(3,rr3);
 163   3                       SFRPAGE = 0x0f;
 164   3                       P5= rr3[7];
 165   3                       P6= rr3[6];
 166   3                       SFRPAGE = CAN0STA;
 167   3                       delay1ms(10000);
 168   3               CAN_RemoteRqst(1);
 169   3            }
 170   2      
 171   2        }
 172   1       
 173   1      }
 174          
 175          void Timer0_Overflow_Interrupt (void) interrupt 1 {
 176   1        
 177   1      }
 178          
 179          
C51 COMPILER V7.10   DO                                                                    07/27/2008 16:49:15 PAGE 4   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    305    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     24    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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