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

📄 time_tester.lst

📁 此测试仪可以测量继电器的吸合时间
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   TIME_TESTER                                                           04/04/2007 09:16:12 PAGE 1   


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

stmt level    source

   1                  #include <reg51.h>
   2                  #include <intrins.h>
   3                  #define uchar unsigned char
   4                  #define Display_Data P1
   5                  #define Bit P0
   6                  #define Time_Value_10 246
   7                  #define Time_Value_100 156
   8                  #define Time_Value_30 226
   9                  #define Multi 1.49
  10                  #define Multi_B 3.03
  11                  #define ASK 0xFF
  12                  #define ACK 0x00
  13                  #define Test_Start 0x11
  14                  #define Times_Input 0x22
  15                  sbit Start=P2^0;
  16                  sbit No=P2^1;
  17                  sbit Nc=P2^2;
  18                  sbit Coil=P2^3;
  19                  uchar code Display_Code[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  20                  uchar code Display_Code_Point[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
  21                  uchar Dis_Value[4][3]={0},Temp[3]={0};//TH0_Value=255,TL0_Value=246;
  22                  unsigned int T_Count=0,Test_Data[4]={0};
  23                  uchar Test_Times=1;
  24                  bit Test_Flag=0;
  25                  bit Commu_OK=0;
  26                  bit KB_Pro(void);
  27                  void Dis_Pro(void);
  28                  bit PDT_Pro(void);
  29                  bit BT_Pro(void);
  30                  void Delay(uchar i);
  31                  void Code_Convert(uchar m,uchar *Value);
  32                  void Num_Convert(unsigned int i);
  33                  //void T0_Ini(void);
  34                  void Code_Convert_1(uchar m,uchar *Value);
  35                  void Recieve_Pro(void);
  36                  void Send_Pro(void);
  37          
  38                  main()
  39                  {
  40   1                      TMOD=0x22;//T0 and T1 both Method 2;
  41   1                      TH0=Time_Value_10;
  42   1                      TL0=Time_Value_10;
  43   1                      SCON=0x50;//UART method 1;recieved enable.
  44   1                      PCON=0x80;//Boud Double;
  45   1                      TH1=0xF3;//4800b;
  46   1                      TL1=0xF3;
  47   1                      TR1=1;
  48   1                      //ET0=1;
  49   1                      //EA=1;
  50   1                      while(1)
  51   1                      {
  52   2                              Recieve_Pro();
  53   2                              if(KB_Pro())
  54   2                              {
  55   3                                      uchar i=0;
C51 COMPILER V7.06   TIME_TESTER                                                           04/04/2007 09:16:12 PAGE 2   

  56   3                                      for(i=0;i<Test_Times;i++)
  57   3                                      {
  58   4                                              PDT_Pro();
  59   4                                              BT_Pro();
  60   4                                              if(Commu_OK==1) Send_Pro();
  61   4                                              Dis_Pro();
  62   4                                      }
  63   3                              }
  64   2                      }
  65   1              }
  66          
  67                  void Recieve_Pro(void)
  68                  {
  69   1                      uchar x=0;
  70   1                      static bit i=0;
  71   1                      if(RI)
  72   1                      {
  73   2                              RI=0;
  74   2                              x=SBUF;
  75   2                              //Dis_Pro();
  76   2                              if(i==0)
  77   2                              {
  78   3                                      if(x==ASK)
  79   3                                      {
  80   4                                              SBUF=ACK;
  81   4                                              while(!TI);
  82   4                                              TI=0;
  83   4                                              Commu_OK=1;
  84   4                                      }
  85   3                                      if(x==Test_Start) Test_Flag=1;
  86   3                              }
  87   2                              else 
  88   2                              {
  89   3                                      Test_Times=x;
  90   3                                      i=0;
  91   3                              }
  92   2                              if(x==Times_Input) i=1;
  93   2                      }
  94   1              }
  95          
  96                  void Send_Pro(void)
  97                  {
  98   1                      uchar x=0,m=0;
  99   1                      for(m=0;m<4;m++)
 100   1                      {
 101   2                              x=Test_Data[m]/256;//send high 8 bit;
 102   2                              SBUF=x;
 103   2                              while(!TI);
 104   2                              TI=0;
 105   2                              Delay(10);
 106   2                              x=Test_Data[m]%256;//send low 8 bit;
 107   2                              SBUF=x;
 108   2                              while(!TI);
 109   2                              TI=0;
 110   2                              Delay(10);              
 111   2                      }
 112   1              }
 113          
 114                  bit KB_Pro(void)
 115                  {
 116   1                      if(Start==0)
 117   1                      {
C51 COMPILER V7.06   TIME_TESTER                                                           04/04/2007 09:16:12 PAGE 3   

 118   2                              Delay(50);
 119   2                              if(Start==0)
 120   2                              {
 121   3                                      Num_Convert(999);
 122   3                                      Code_Convert(0,Temp);
 123   3                                      Code_Convert(1,Temp);
 124   3                                      Code_Convert(2,Temp);
 125   3                                      Code_Convert(3,Temp);
 126   3                                      Test_Data[0]=999;
 127   3                                      Test_Data[1]=999;
 128   3                                      Test_Data[2]=999;
 129   3                                      Test_Data[3]=999;
 130   3                                      TR0=0;
 131   3                                      T_Count=0;
 132   3                                      Display_Data=0xFF;
 133   3                                      Bit=0xFF;
 134   3                                      Test_Times=1;
 135   3                                      return(1);
 136   3                              }
 137   2                      }
 138   1                      if(Test_Flag)
 139   1                      {
 140   2                              Test_Flag=0;
 141   2                              return(1);
 142   2                      }
 143   1                      return(0);
 144   1              }
 145          
 146                  void Dis_Pro(void)
 147                  {
 148   1                      uchar m=0,n=0,y=0xFE;//,i=0;
 149   1                      TR0=1;
 150   1                      for(m=0;m<4;m++)
 151   1                      {
 152   2                              T_Count=0;
 153   2                              //TR0=1;
 154   2                              TF0=0;
 155   2                              TH0=Time_Value_100;
 156   2                              TL0=Time_Value_100;
 157   2                              while(T_Count<=240)
 158   2                              {
 159   3                                      for(n=0;n<3;n++)
 160   3                                      {
 161   4                                              Display_Data=Dis_Value[m][n];
 162   4                                              Bit=y;
 163   4                                              y=~y;
 164   4                                              y<<=1;
 165   4                                              if(y==8) y=1;
 166   4                                              y=~y;
 167   4                                              Delay(2);
 168   4                                              //if(KB_Pro()) return;
 169   4                                              if(TF0)
 170   4                                              {
 171   5                                                      TF0=0;
 172   5                                                      T_Count++;
 173   5                                              }
 174   4                                      }
 175   3                              }
 176   2                              Bit=0xFF;
 177   2                              Delay(200);
 178   2                              Delay(100);
 179   2                              T_Count=0;
C51 COMPILER V7.06   TIME_TESTER                                                           04/04/2007 09:16:12 PAGE 4   

 180   2                      }
 181   1                      TR0=0;
 182   1                      TF0=0;
 183   1                      TH0=Time_Value_10;
 184   1                      TL0=Time_Value_10;
 185   1              }
 186          
 187                  bit PDT_Pro(void)
 188                  {
 189   1                      TH0=Time_Value_10;
 190   1                      TL0=Time_Value_10;
 191   1                      T_Count=0;
 192   1                      Coil=0;
 193   1                      TR0=1;
 194   1                      while(!No)
 195   1                      {
 196   2                              while(!TF0);
 197   2                              TF0=0;
 198   2                              T_Count++;
 199   2                              if(T_Count>=9999)
 200   2                              {               
 201   3                                      Num_Convert(999);
 202   3                                      Code_Convert(0,Temp);
 203   3                                      Coil=1;
 204   3                                      //break;
 205   3                                      return(0);
 206   3                              }
 207   2                      }
 208   1                      TR0=0;
 209   1                      T_Count=T_Count*Multi;
 210   1                      Test_Data[0]=T_Count;
 211   1                      if(T_Count<1000)
 212   1                      {
 213   2                              Num_Convert(T_Count);

⌨️ 快捷键说明

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