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

📄 yalibiao.lst

📁 压力表的定时定位
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  YALIBIAO                                                               01/06/2009 17:19:04 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE YALIBIAO
OBJECT MODULE PLACED IN C:\DOCUME~1\ADMINI~1\桌面\压力表2\YALIBIAO.OBJ
COMPILER INVOKED BY: D:\WAVE6000\COMP51\C51.EXE C:\DOCUME~1\ADMINI~1\桌面\压力表2\YALIBIAO.C DB SB OE

stmt level    source

   1          //#include<reg51.h>
   2          #include<NI51REG.h>
   3          //#define THISADDR 0x2A
   4          #define ISP_WAIT 0x03
   5          #define ISP_READ 1
   6          #define ISP_WRITE 2
   7          #define ISP_ERASE 3
   8          
   9          bit pulse_sign = 0;//pulse level sign
  10          bit NewCmd_sign = 1;
  11          bit TrStar_sign = 0;//transport start
  12          bit De = 0;
  13          
  14          unsigned char TIMH = 0xfd;
  15          unsigned char TIML = 0xff;
  16          
  17          unsigned char THISADDR = 0x2A;
  18          unsigned char TrCounter = 0;
  19          unsigned char TrData[5] = 0;
  20          unsigned char AimData[5] = 0;
  21          unsigned char mode = 0;
  22          unsigned long  Delay_num;
  23          unsigned int  Change_P;
  24          unsigned int  Aim_P;
  25          unsigned int  Time_D;
  26          unsigned int  Now_P;
  27          unsigned int  Dis_P;
  28          unsigned long  Time;
  29          unsigned int  T = 9;
  30          unsigned int MINPOS = 0xFB10;
  31          unsigned int  T2;
  32          sbit out = P1^2;
  33          
  34          void pulse() interrupt 1
  35          {
  36   1      	if(pulse_sign)
  37   1      	{
  38   2      		pulse_sign = 0;
  39   2      		out = 0;
  40   2      		TH0 = 0xc7;
  41   2      		TL0 = 0x00;
  42   2      	}
  43   1      	else
  44   1      	{
  45   2      		pulse_sign = 1;
  46   2      		out = 1;
  47   2      		TH0 = TIMH;
  48   2      		TL0 = TIML;
  49   2      	}
  50   1      }
  51          
  52          
  53          void serial() interrupt 4
  54          {
  55   1      	//unsigned char i;
C51 COMPILER V6.02  YALIBIAO                                                               01/06/2009 17:19:04 PAGE 2   

  56   1      	if(RI)
  57   1      	{
  58   2      		RI = 0;
  59   2      
  60   2      		if((!TrStar_sign)&&(SBUF == 0x0c))
  61   2      		{
  62   3      			TrStar_sign = 1;
  63   3      			TrCounter = 0;
  64   3      		}
  65   2      		else if(TrStar_sign)
  66   2      		{
  67   3                             if(TrCounter < 5)
  68   3      			{
  69   4      
  70   4      				TrData[TrCounter] = SBUF;
  71   4                                      TrCounter++;
  72   4      			}
  73   3                              else if(SBUF == 0xbb)
  74   3                              {
  75   4                                      if(TrData[0] == THISADDR)
  76   4                                      {
  77   5                                          AimData[0] = TrData[0];
  78   5                                          AimData[1] = TrData[1];
  79   5                                          AimData[2] = TrData[2];
  80   5                                          AimData[3] = TrData[3];
  81   5                                          AimData[4] = TrData[4];
  82   5                                          NewCmd_sign = 1;
  83   5      				    TrCounter++;
  84   5                                      }
  85   4                                      TrCounter = 0;
  86   4                                      TrStar_sign = 0;
  87   4                              }
  88   3                      }
  89   2      	}
  90   1      }
  91          unsigned char isp_read(unsigned int addr)
  92          {
  93   1          unsigned char nop;
  94   1          ISP_ADDRH = (addr >> 8);
  95   1          ISP_ADDRL = (addr & 0x00ff);
  96   1          EA = 0;
  97   1          ISP_CONTR = ISP_WAIT;
  98   1          ISP_CONTR |= 0x80;
  99   1          ISP_CMD = ISP_READ;
 100   1          ISP_TRIG = 0x46;
 101   1          ISP_TRIG = 0xb9;
 102   1          nop = 1;
 103   1          ISP_CONTR = 0x00;
 104   1          ISP_CMD = 0x0;
 105   1          ISP_TRIG = 0x0;
 106   1          ISP_ADDRH = 0x0;
 107   1          ISP_ADDRL = 0x0;
 108   1          EA = 1;
 109   1          return ISP_DATA;
 110   1      }
 111          
 112          void isp_erase(unsigned int addr)
 113          {
 114   1          unsigned char nop;
 115   1          ISP_ADDRH = (addr >> 8);
 116   1          ISP_ADDRL = (addr & 0x00ff);
 117   1          EA = 0;
C51 COMPILER V6.02  YALIBIAO                                                               01/06/2009 17:19:04 PAGE 3   

 118   1          ISP_CONTR = ISP_WAIT;
 119   1          ISP_CONTR |= 0x80;
 120   1          ISP_CMD = ISP_ERASE;
 121   1          ISP_TRIG = 0x46;
 122   1          ISP_TRIG = 0xb9;
 123   1          nop = 1;
 124   1          ISP_CONTR = 0x00;
 125   1          ISP_CMD = 0x0;
 126   1          ISP_TRIG = 0x0;
 127   1          ISP_ADDRH = 0x0;
 128   1          ISP_ADDRL = 0x0;
 129   1          EA = 1;
 130   1      }
 131          
 132          void isp_write(unsigned int addr,unsigned char dat)
 133          {
 134   1          unsigned char nop;
 135   1          ISP_DATA = dat;
 136   1          ISP_ADDRH = (addr >> 8);
 137   1          ISP_ADDRL = (addr & 0x00ff);
 138   1          EA = 0;
 139   1          ISP_CONTR = ISP_WAIT;
 140   1          ISP_CONTR |= 0x80;
 141   1          ISP_CMD = ISP_WRITE;
 142   1          ISP_TRIG = 0x46;
 143   1          ISP_TRIG = 0xb9;
 144   1          nop = 1;//无意义 延时操作
 145   1          ISP_CONTR = 0x00;
 146   1          ISP_CMD = 0x0;
 147   1          ISP_TRIG = 0x0;
 148   1          ISP_ADDRH = 0x0;
 149   1          ISP_ADDRL = 0x0;
 150   1          EA = 1;
 151   1      }
 152          
 153          
 154          void delay(unsigned int kk)
 155          {
 156   1      	unsigned int t1,t2;
 157   1              for (t1 = 0;t1<60;t1++)
 158   1              {
 159   2      	for(t2 = 0;t2 < kk;t2++);
 160   2              }
 161   1      }
 162           run()
 163          {              unsigned int T1;
 164   1          if (De)
 165   1          {
 166   2      		for (T1 = Now_P; T1<=Aim_P; ++T1 )
 167   2      		{
 168   3                           if(!NewCmd_sign)
 169   3                           {
 170   4                              delay(Delay_num);
 171   4                              T2 = (0xfdff - MINPOS)*5;
 172   4                              T2 /= 27;
 173   4      			Change_P = 0xfdff - (T1*T2)/50;
 174   4                               TIMH = Change_P>>8;
 175   4      	                 TIML = Change_P&0x00ff;
 176   4                               }
 177   3                            else
 178   3                            {
 179   4                                 Now_P = T1;
C51 COMPILER V6.02  YALIBIAO                                                               01/06/2009 17:19:04 PAGE 4   

 180   4                                 return(0);
 181   4                                 }
 182   3      
 183   3                             Now_P = T1;
 184   3      		}
 185   2          }
 186   1      else
 187   1      	{
 188   2      		  for (T1 = Now_P; T1 > Aim_P; --T1 )
 189   2      		 {
 190   3                              if(!NewCmd_sign)
 191   3                              {
 192   4                              delay(Delay_num);
 193   4                              T2 = (0xfdff - MINPOS)*5;
 194   4                              T2 /= 27;
 195   4      			Change_P = 0xfdff - (T1*T2)/50;
 196   4                               TIMH = Change_P>>8;
 197   4      	                 TIML = Change_P&0x00ff;
 198   4                               }
 199   3                               else
 200   3                               {
 201   4                                  Now_P = T1;
 202   4                                  return(0);
 203   4                                  }
 204   3                               Now_P = T1;
 205   3      		 }
 206   2      	}
 207   1      
 208   1      
 209   1      }
 210           test_mode()
 211          {
 212   1          Delay_num = 60;
 213   1         while(1)
 214   1         {
 215   2            if(!NewCmd_sign)
 216   2            {
 217   3            Aim_P = (De)?0x10E:0x00;
 218   3            Now_P = (De)?0x00:0x10E;
 219   3            run();
 220   3            De = ~De;
 221   3            }
 222   2            else
 223   2              return(0);
 224   2      
 225   2         }
 226   1      
 227   1       }
 228           shake_mode()
 229          {
 230   1       Delay_num = 5;
 231   1         while(1)
 232   1         {

⌨️ 快捷键说明

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