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

📄 lin_hal.lst

📁 linBUS驱动原码
💻 LST
字号:
C51 COMPILER V7.06   LIN_HAL                                                               08/11/2003 10:39:29 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LIN_HAL
OBJECT MODULE PLACED IN lin_hal.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE lin_hal.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #define LIN_HAL_GLOBALS
   2          
   3          #include "reg52.h"
   4          #include "lin_cfg.h"
   5          
   6          sbit P1_1=P1^1;
   7          l_u8 time_couter;
   8          l_u8 time_cout_l;
   9          l_u8 time_cout_h;
  10          l_u8 rec_cout;
  11          
  12          unsigned char display(unsigned char  *sd)
  13          {unsigned char disp_buf[8]; 
  14   1              EA=0;
  15   1              disp_buf[0] = (sd[0]%16);                       // 装载" dp-932"
  16   1          disp_buf[1] = (sd[0]/16);           
  17   1          disp_buf[2] = 31;
  18   1          disp_buf[3] = (sd[1]%16);
  19   1          disp_buf[4] = (sd[1]/16);
  20   1          disp_buf[5] = 31;
  21   1          disp_buf[6] = (sd[2]%16);   
  22   1          disp_buf[7] = (sd[2]/16);
  23   1          ZLG7290_SendBuf(disp_buf,8);
  24   1              EA=1;
  25   1              return 0;
  26   1      }
  27          l_bool  l_sys_init(void)
  28          {
  29   1      l_u8 i;
  30   1              //INT1
  31   1              IT1=1;                  //下降沿触发
  32   1              PX1=0;
  33   1              //T0;
  34   1              TMOD=TMOD|0X01; //16位定时器
  35   1              PT0=0X01;
  36   1              //T1;
  37   1              TMOD=TMOD|0X20; //8位之装载定时器
  38   1              TH1=BAUDRATERELOADVAL;
  39   1              //T2
  40   1              T2CON=0;
  41   1              TH2=0XEE;
  42   1              TL2=0;
  43   1              //COM
  44   1              PCON=0X80;
  45   1              //********************
  46   1              TH0=-25000/256;
  47   1              TL0=-25000%256;
  48   1              TR0=1;
  49   1              do
  50   1              {
  51   2                      TXD=1;
  52   2                      RXD=1;
  53   2                      SLNP=0;
  54   2                      i=200;
  55   2                      while(i--);
C51 COMPILER V7.06   LIN_HAL                                                               08/11/2003 10:39:29 PAGE 2   

  56   2                      SLNP=1;
  57   2                      i=200;
  58   2                      while(i--);
  59   2              }
  60   1              while(RXD==0&&TF0==0);
  61   1              TR0=0;
  62   1              if(TF0==1)
  63   1              {       
  64   2                      TF0=0;
  65   2                      return(1);
  66   2              }
  67   1              TF0=0;
  68   1              //INTERRUPT
  69   1              //EX1=1;//INT1
  70   1              ET2=1;
  71   1              EA=1;
  72   1              return (0);
  73   1      }
  74          
  75          void l_delay(l_u8 tm)
  76          {
  77   1              while(tm--);
  78   1      }
  79          
  80          l_u8 checksum8(l_u8 *chk8,l_u8 num)
  81          {
  82   1      l_u8 temp=0;
  83   1              for( ;num>0;num--)
  84   1              {
  85   2                      temp=temp+*chk8;
  86   2                      if(temp<*chk8)
  87   2                              temp++;
  88   2                      chk8++;
  89   2              }
  90   1              return(0xff-temp);      
  91   1      }
  92          l_bool l_send_break(void)
  93          {
  94   1              
  95   1              if(BAUDRATERELOADVAL<128)
  96   1              {
  97   2                      PCON=PCON&0X7F;
  98   2              }
  99   1              TH1=255-(TICKSPERBIT*2);
 100   1              TL1=TH1;
 101   1              TR1=1;
 102   1              SCON=0X40;
 103   1              SBUF=0X80;      
 104   1              while(TI==0);
 105   1              PCON=PCON|0X80;
 106   1              TH1=BAUDRATERELOADVAL;
 107   1              TL1=TH1;
 108   1              TR1=1;
 109   1              SCON=0X50;
 110   1              return(0);
 111   1      }
 112          
 113          void l_send_bytes(l_u8 DATA)
 114          {
 115   1              
 116   1              TR1=1;
 117   1              TL1=TH1;
C51 COMPILER V7.06   LIN_HAL                                                               08/11/2003 10:39:29 PAGE 3   

 118   1              SCON=0X50;
 119   1              SBUF=DATA;      
 120   1              while(TI==0);
 121   1              TI=0;
 122   1              TR1=0;
 123   1              SCON=0X00;
 124   1      }
 125          l_bool l_rec_data(l_u8 * temp,l_u8 num)
 126          {
 127   1      l_u8 l_chksum;
 128   1              PCON=PCON|0X80;
 129   1              TH1=BAUDRATERELOADVAL;
 130   1              TL1=TH1;
 131   1              TR1=1;
 132   1              SCON=0X50;
 133   1              rec_cout=0;
 134   1              time_couter=0;
 135   1              time_cout_h=0;//MAXFRAMETIME_H;
 136   1              time_cout_l=0;//MAXFRAMETIME_L;
 137   1              TH0=time_cout_h;
 138   1              TL0=time_cout_l;
 139   1              TR0=1;
 140   1              ET0=1;
 141   1              for(l_chksum=0;l_chksum<num;l_chksum++)
 142   1              {
 143   2                      while(RI==0&&time_couter!=MAXFRAMETIME_HH);
 144   2                      temp[l_chksum]=SBUF;
 145   2                      RI=0;
 146   2              }
 147   1              while(RI==0&&time_couter!=MAXFRAMETIME_HH);
 148   1              RI=0;
 149   1              TR0=0;
 150   1              ET0=0;
 151   1              l_chksum=SBUF;
 152   1              temp[2]=l_chksum;
 153   1      
 154   1              SCON=0X00;
 155   1              if(time_couter!=MAXFRAMETIME_HH)
 156   1              {
 157   2                      if(l_chksum==checksum8(temp,num))
 158   2                      {
 159   3                              
 160   3                              return(0);
 161   3                      }
 162   2                      else
 163   2                      {
 164   3                              return(1);
 165   3                      }
 166   2              }
 167   1              else
 168   1              {
 169   2                      return(1);
 170   2              }
 171   1      }
 172          void l_send_data(l_u8 * temp,l_u8 num)
 173          {
 174   1      l_u8 l_chksum;
 175   1              TR1=1;
 176   1              TL1=TH1;
 177   1              SCON=0X50;
 178   1              for(l_chksum=0;l_chksum<num;l_chksum++)
 179   1              {
C51 COMPILER V7.06   LIN_HAL                                                               08/11/2003 10:39:29 PAGE 4   

 180   2                      SBUF=*temp;
 181   2                      while(TI==0);
 182   2                      TI=0;
 183   2                      temp++;
 184   2              }
 185   1              temp=temp-num;
 186   1              SBUF=checksum8(temp,num);
 187   1              while(TI==0);
 188   1              TI=0;
 189   1      //      TR1=0;//
 190   1      //      SCON=0X00;//
 191   1      }
 192          void T0_ISR() interrupt 1
 193          {
 194   1      
 195   1      TF0=0;
 196   1      TH0=time_cout_l;
 197   1      TL0=time_cout_h;
 198   1      time_couter++;
 199   1      }
 200          


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