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

📄 avc_1027.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE AVC_1027
OBJECT MODULE PLACED IN D:\PROJECT\SUPARC400\SUPARC400\DRIVE\AVC_1027.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\PROJECT\SUPARC400\SUPARC400\DRIVE\AVC_1027.C DB SB OE

stmt level    source

   1          #pragma la
   2          #include <AVC.h>
   3          #define start_v51 46
   4          sbit message_enable=P1^5;
   5          sbit stop=P3^5;
   6          sbit gate=P4^1;
   7          sbit avc_dir=P4^5;
   8          sbit avc_enable=P4^4;
   9          sbit temp_voltage=P4^2;
  10          sbit externel_voltage=P4^3;
  11          
  12          xdata unsigned char rbuffer[55],sbuffer[6];
  13          unsigned char   S_ANSW,POINTER0,POINTER1,work,RSUM,SSUM,c_t1,cross_machine,SENS,
  14                          s_byte_nums,r_byte_nums,nonce_sec,v51,c_sample,err,p_sec,out1,lamp,c_cm0;
  15          unsigned int adl,adh,ad,delt_a41,U51,out0,*point,temp_avc,temp_u51_p,temp_u51_b,c_lift;
  16          unsigned long AD1,AD2,AD3,AD4,AD5,da;
  17          unsigned char COMM,SLA,FF,GET;
  18          bit     decrease,ad_finish,pulse_base,new_circle,called,
  19                  lift,avc_ok,urgent_stop,pgj,in_sector,new_sector,start,lift_complete,over_i1,
  20                  over_i2,resend,send,overtime,avc_up,avc_down,motor_stop,receive_p_out,
  21                  receive_p_in,start_avc,stop_avc,ans,to_begin,need_para,
  22                  lift_ok,avc_err,err_ok,send_p,send_p_ok,touch,touched;
  23          
  24          void start_i2()
  25          {
  26   1         data unsigned int time;
  27   1         P1_6=1;              //SCL
  28   1         P1_7=1;              //SDA
  29   1         S1CON=0x47;          //ENS1=1 STA=0 STO=0 SI=0 AA=1
  30   1         PS1=1;FF=0;
  31   1         EA=1;
  32   1         ES1=1;
  33   1         STA=1;
  34   1         time=0;
  35   1         do
  36   1           {
  37   2            time++;
  38   2            if(time>10000)
  39   2                {
  40   3                 FF=1;
  41   3                }
  42   2           }while(FF==0);
  43   1         FF=0;
  44   1         ES1=0;
  45   1      }
  46          
  47          void start_t2()
  48          {
  49   1              TM2CON=0x81;    //16位溢出,分频系数1,f/12
  50   1              EA=1;
  51   1              TM2IR=0;
  52   1      }
  53          
  54          void ini_sbuf(unsigned char a,b,c,d,e,f)
  55          {
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 2   

  56   1              sbuffer[0]=a;
  57   1              sbuffer[1]=b;
  58   1              sbuffer[2]=c;
  59   1              sbuffer[3]=d;
  60   1              sbuffer[4]=e;
  61   1              sbuffer[5]=f;
  62   1      }
  63          
  64          unsigned char get_byte_nums(unsigned char type)
  65          {
  66   1              unsigned char numbers;
  67   1              switch(type)
  68   1              {
  69   2                      case    infor_sec:
  70   2                      case    command:
  71   2                      case    program:
  72   2                      case    answer:         numbers=4;
  73   2                                              break;
  74   2                      case    err_infor:
  75   2                      case    parameter1:     numbers=5;
  76   2                                              break;
  77   2                      case    parameter:
  78   2                      case    infor:          numbers=6;
  79   2                                              break;
  80   2                      case    parameter2:     numbers=7;
  81   2                                              break;
  82   2                      case    call_result:    numbers=8;
  83   2                                              break;
  84   2                      case    p_out_sec:      numbers=55;
  85   2                                              break;
  86   2                      case    p_in_sec:       numbers=24;
  87   2                                              break;
  88   2                      case    edit_sec:       numbers=64;
  89   2                                              break;
  90   2                      default:                break;
  91   2              }
  92   1              return numbers;
  93   1      }
  94          
  95          void TR_noans()
  96          {
  97   1              REN=0;                                          //05-12-28
  98   1              POINTER0=0;
  99   1              SSUM=0;
 100   1              send=1;
 101   1              c_t1=0;
 102   1              message_enable=0;                               //开发送使能
 103   1              TR1=1;
 104   1              while(POINTER0<s_byte_nums);
 105   1              TR1=0;
 106   1              message_enable=1;                               //关发送使能
 107   1              REN=1;                                          //05-12-28
 108   1      }
 109          
 110          void TR_ans()
 111          {
 112   1              ans=1;
 113   1              REN=0;
 114   1              POINTER1=0;
 115   1              RSUM=0;
 116   1              TB8=1;
 117   1              POINTER0=0;
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 3   

 118   1              SSUM=0;
 119   1              send=1;
 120   1              c_t1=0;
 121   1              message_enable=0;                               //开发送使能
 122   1              TR1=1;
 123   1              while(POINTER0<s_byte_nums);
 124   1              TR1=0;
 125   1              message_enable=1;                               //关发送使能
 126   1      
 127   1              REN=1;
 128   1              send=0;
 129   1              c_t1=0;
 130   1              TR1=1;
 131   1              while(POINTER1<r_byte_nums);
 132   1              TR1=0;
 133   1              POINTER1=0;
 134   1              RSUM=0;
 135   1              if(overtime==1)
 136   1              {
 137   2                      err=3;
 138   2                      avc_err=1;
 139   2                      overtime=0;
 140   2              }
 141   1              ans=0;
 142   1      }
 143          
 144          void delay(int num)
 145          {
 146   1        data unsigned int i,j;
 147   1        for(i=0;i<num;i++)
 148   1         {
 149   2           for(j=0;j<255;j++);
 150   2         }
 151   1      }
 152          /*
 153          void read_8574 ()                       //过流1或过流2
 154          {
 155                  unsigned char temp_GET;
 156                  SLA=0x43;
 157                  start_i2();
 158                  temp_GET=GET;
 159                  temp_GET=temp_GET&0X01;
 160                  if(temp_GET==0)
 161                          over_i1=1;
 162                  temp_GET=GET;
 163                  temp_GET=temp_GET&0X02;
 164                  if(temp_GET==0)
 165                          over_i2=1;
 166          }
 167          */
 168          void write_8574(unsigned char col)      //出错显示
 169          {
 170   1              SLA=0x42;
 171   1              COMM=col;
 172   1              start_i2();
 173   1      }
 174          
 175          void com_type()
 176          {
 177   1              switch(rbuffer[2])
 178   1              {
 179   2                      case com_calling:       called=1;
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 4   

 180   2                                              break;
 181   2                      case com_motor_stop:    if(motor_stop==0)
 182   2                                                      motor_stop=1;
 183   2                                              break;
 184   2                      case com_start:         start=1;
 185   2                                              break;                  //启动
 186   2                      case com_decrease:      decrease=1;
 187   2                                              break;
 188   2                      case com_avc:           start_avc=1;
 189   2                                              break;
 190   2                      case com_avc_up:        if(avc_up==0)
 191   2                                                      avc_up=1;
 192   2                                              break;
 193   2                      case com_avc_down:      if(avc_down==0)
 194   2                                                      avc_down=1;
 195   2                                              break;
 196   2                      case com_stop_avc:      stop_avc=1;
 197   2                                              break;
 198   2                      case com_pgj:           pgj=1;
 199   2                                              break;
 200   2                      case com_lift:          lift=1;
 201   2                                              break;
 202   2                      case com_goto_begin:    to_begin=1;
 203   2                                              break;
 204   2                      case com_need_para:     if(need_para==0)
 205   2                                                      need_para=1;
 206   2                                              break;
 207   2                      case com_lift_ok:       lift_ok=1;
 208   2                                              break;
 209   2                      case com_err_ok:        err_ok=1;
 210   2                                              break;
 211   2                      case com_send_p:        send_p=1;
 212   2                                              break;
 213   2                      case com_send_p_ok:     send_p_ok=1;
 214   2                                              break;
 215   2                      case com_touch:         touch=1;
 216   2                                              break;
 217   2                      default:                break;
 218   2              }
 219   1      }
 220          
 221          void data_type()                                                //对接收到的数据分辨类型
 222          {
 223   1              switch(rbuffer[1])
 224   1              {
 225   2                      case command:   com_type();break;
 226   2                      case infor:     if(rbuffer[2]==com_sector)
 227   2                                      {
 228   3                                              in_sector=1;
 229   3                                              new_sector=1;
 230   3                                              nonce_sec=rbuffer[3];
 231   3                                      }break;
 232   2                      case p_out_sec: receive_p_out=1;break;
 233   2      
 234   2                      case p_in_sec:  {
 235   3                                              nonce_sec=rbuffer[2];
 236   3                                              receive_p_in=1;
 237   3                                      }break;
 238   2                      default:        break;
 239   2              }
 240   1              
 241   1      }
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 5   

 242          
 243          
 244          void EX0_INT (void) interrupt 0                 //急停
 245          {
 246   1              EX0=0;
 247   1              if(lift==0)

⌨️ 快捷键说明

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