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

📄 main.lst

📁 这个源码主要是实现简单型的232转CAN功能的源代码
💻 LST
字号:
C51 COMPILER V8.06   MAIN                                                                  07/11/2007 15:55:53 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at89x52.h>
   2          #include "SJA1000_PELI.h"
   3          
   4          extern bit g_TiFlag;
   5          extern bit g_RiFlag;
   6          
   7          extern void SJAInit(void);
   8          extern bit SJAReceData(unsigned char *ReceiveDataBuf);
   9          
  10          void SerialInit(void);
  11          void ComSendChar(unsigned char ch);
  12          void ComSendArr(unsigned char *buffer);
  13          void  ReceData(void);
  14          
  15          void DelayTime (unsigned char times);
  16          
  17          unsigned char canbuffer[11];
  18          unsigned char combuffer[5];
  19          bit g_ComSendFlag;
  20          /*********************************************************************************************
  21          主函数
  22          *********************************************************************************************/
  23          void main(void)
  24          {
  25   1              SJA_RESET = 1;
  26   1          DelayTime(50);
  27   1          SJA_RESET = 0;
  28   1          DelayTime(500);
  29   1          SJA_RESET=1;
  30   1      
  31   1              EA = 0;
  32   1              SJAInit();
  33   1              SerialInit();
  34   1      
  35   1              EX0 = 1;
  36   1              EA =1;
  37   1      
  38   1          while(1)
  39   1              {
  40   2                  P1_3 = 1;
  41   2                  if (g_RiFlag)
  42   2                      {
  43   3                              g_RiFlag = 0;
  44   3                              ReceData();
  45   3                              P1_0 = !P1_0;
  46   3                      }
  47   2      
  48   2                      if (g_ComSendFlag)
  49   2                      {
  50   3                          g_ComSendFlag=0;
  51   3                              ComSendArr(combuffer);
  52   3                              P1_1 = !P1_1;
  53   3                      }
  54   2                      P1_3 = 0;
  55   2              }
C51 COMPILER V8.06   MAIN                                                                  07/11/2007 15:55:53 PAGE 2   

  56   1      }
  57          
  58          /**********************************************************************************************
  59          串口
  60          **********************************************************************************************/
  61          void SerialInit(void)
  62          {
  63   1              TMOD  = 0x20;           //定时器1工作于方式2:8位常数自动装载
  64   1          SCON  = 0x50;                       //串口方式1
  65   1              //PCON |= 0x80;                 //SMOD = 1
  66   1              TH1   = 0xff;           //11.0592MHz.
  67   1              TL1   = 0xff;                   //BAUDRATE = 57600
  68   1              
  69   1              //ET1 = 1;                              //打开定时器1中断
  70   1              TR1 = 1;                                //定时器1开始计数
  71   1              //ES  = 1;                          //打开串口中断
  72   1      
  73   1              //IT0 = 1;                              //INT0边缘触发
  74   1              //EX0 = 1;                      //打开外部中断
  75   1      }
  76          
  77          void ComSendChar(unsigned char ch)
  78          {
  79   1          SBUF = ch;
  80   1              while(!TI);
  81   1              TI = 0;
  82   1      }
  83          
  84          void ComSendArr(unsigned char *buffer)
  85          {
  86   1          unsigned char i;
  87   1              for(i=0; i<5; i++)
  88   1              {
  89   2                 ComSendChar(buffer[i]);
  90   2              }
  91   1      }
  92          /**********************************************************************************************
  93          CAN
  94          **********************************************************************************************/
  95          void  ReceData(void)
  96          {
  97   1               SJAReceData(canbuffer);
  98   1               SJARegWrite(1,0x04);
  99   1      
 100   1               combuffer[0]=canbuffer[1];
 101   1               combuffer[1]=canbuffer[3];
 102   1               combuffer[2]=canbuffer[4];
 103   1               combuffer[3]=canbuffer[5];
 104   1               combuffer[4]=canbuffer[6];
 105   1      
 106   1               g_ComSendFlag = 1;
 107   1      }
 108          /**********************************************************************************************
 109          延时
 110          **********************************************************************************************/
 111          void DelayTime (unsigned char times)
 112          {
 113   1           unsigned char i=0;
 114   1           while(times--)
 115   1           {
 116   2               for(i=0;i<50;i++)
 117   2               {;}
C51 COMPILER V8.06   MAIN                                                                  07/11/2007 15:55:53 PAGE 3   

 118   2           }
 119   1      }


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


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

⌨️ 快捷键说明

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