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

📄 sub.lst

📁 多用途仪的温度控制
💻 LST
字号:
C51 COMPILER V6.02  SUB                                                                    08/26/2003 16:13:26 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE SUB
OBJECT MODULE PLACED IN ..\TMP\SUB.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\SUB.C BROWSE DEBUG OBJECTEXTEND PRINT(..\TMP\SUB.lst) OBJECT(..\TMP\SUB.o
                    -bj) 

stmt level    source

   1          #include <inc.h>
   2          
   3          void delay(unsigned int i)
   4          {
   5   1      	while(i != 0) 
   6   1      	{
   7   2      		WDI = ~WDI;
   8   2      		i--;
   9   2      	}
  10   1      }
  11          
  12          void Beep(unsigned int t )
  13          {
  14   1      	while(t--)
  15   1      	{
  16   2      		beep=0;
  17   2      	}
  18   1          beep=1;
  19   1      }
  20           
  21          unsigned char scankey(void)
  22          {
  23   1      	unsigned char key;
  24   1          BUTTON1=1;
  25   1      //    BUTTON2=1;
  26   1          //key=0;
  27   1          delay(10);
  28   1      	key=BUTTON1;
  29   1          if(BUTTON1==0) delay(50);
  30   1          if(BUTTON1==0) 
  31   1          {
  32   2              while(BUTTON1==0);
  33   2              return 1;
  34   2          }
  35   1          else return 0;
  36   1          //key=0;
  37   1          delay(10);
  38   1      /*    key=BUTTON2;
  39   1          if(BUTTON2==0) delay(100);
  40   1          if(BUTTON2==0) 
  41   1          {
  42   1              while(BUTTON2==0);
  43   1              return 2;
  44   1          } */
  45   1      ///    else return 0;
  46   1      
  47   1      
  48   1      /*	if(BUTTON1==0)	i=1;
  49   1      	goto button_exit;
  50   1      	if(BUTTON2==0)	i=2;
  51   1      	goto button_exit;
  52   1      button_exit:
  53   1      	key=i;
  54   1      	if(key==0&&KeyCount<=KEY_DLY_COUNT) 
C51 COMPILER V6.02  SUB                                                                    08/26/2003 16:13:26 PAGE 2   

  55   1      	{ 
  56   1      		KeyCount=0; 
  57   1      		return; 
  58   1      	}
  59   1          if(key==0&&KeyCount>KEY_DLY_COUNT) 
  60   1      	{
  61   1          	KeyCount=0;
  62   1      		NewKey = 1;
  63   1      		KeyValue = PrevKey;
  64   1      //		Beep(8);
  65   1      		return;
  66   1      	}
  67   1      	if(key!=0&&KeyCount<220) 
  68   1      	{
  69   1          	KeyCount++;
  70   1      		PrevKey=key;
  71   1      		return;
  72   1      	}
  73   1      	if(key!=0&&KeyCount>=220) 
  74   1      	{
  75   1      		if( ++KeyRepeat > 100 ) 
  76   1      		{
  77   1       	 		KeyRepeat = 0;
  78   1      	    	NewKey = 1;
  79   1      	    	KeyValue = PrevKey;
  80   1      //	    	Beep(8);
  81   1      	    	return;
  82   1      	 	}
  83   1      	} */
  84   1      }
  85          
  86          void out595()
  87          {
  88   1      	unsigned char i;
  89   1      	
  90   1      	for(i=0x80;i!=0;i/=2)
  91   1      	{
  92   2      		SER = 1;
  93   2      		if( (i & VAL_595) == 0 ) SER = 0;
  94   2      		delay(2);
  95   2      		SRCLK = 0;
  96   2      		delay(2);
  97   2      		SRCLK = 1;
  98   2      		delay(2);
  99   2      	}
 100   1      	RCLK = 0;
 101   1      	delay(2);
 102   1      	RCLK = 1;
 103   1      }
 104          
 105          void timer0() interrupt 1 using 2
 106          {
 107   1      	TR0=0;
 108   1      	TL0=0xfe;
 109   1      	TH0=0xed;					//5ms定时
 110   1      	TR0=1;
 111   1      	WDI = ~WDI;
 112   1          del_coun++;
 113   1      	if(del_coun>=200)
 114   1          {
 115   2      		del_coun=0;
 116   2      		addtime();
C51 COMPILER V6.02  SUB                                                                    08/26/2003 16:13:26 PAGE 3   

 117   2      	}
 118   1      	
 119   1      	display();
 120   1      }
 121          
 122          void addtime(void)
 123          {
 124   1      	js_coun0++;
 125   1          if(key1)
 126   1          {
 127   2          js_coun1++;
 128   2      	if(js_coun1>=60) js_coun1=60;
 129   2          if(js60s_flag==0 && js_coun1>=60) js60s_flag=1;
 130   2          }
 131   1      }
 132          
 133          void display(void)
 134          {
 135   1      	switch(DISP_COUN)
 136   1      	{
 137   2      	case 0:
 138   2      		VAL_595 = DISP_LED0;
 139   2      		out595();
 140   2      		L1= 0;
 141   2      		L2= 1;
 142   2      	//	L3= 1;
 143   2      	//	L4= 1;
 144   2      		break;
 145   2      	case 1:
 146   2      		VAL_595 = DISP_LED1;
 147   2      		out595();
 148   2      		L1= 1;
 149   2      		L2= 0;
 150   2      	//	L3= 1;
 151   2      	//	L4= 1;
 152   2      		break;
 153   2      /*	case 2:
 154   2      		VAL_595 = DISP_LED2;
 155   2      		out595();
 156   2      		L1= 1;
 157   2      		L2= 1;
 158   2      		L3= 0;
 159   2      		L4= 1;
 160   2      		break;
 161   2      	case 3:
 162   2      		VAL_595 = DISP_LED3;
 163   2      		out595();
 164   2      		L1= 1;
 165   2      		L2= 1;
 166   2      		L3= 1;
 167   2      		L4= 0;
 168   2      		break; */
 169   2      	}
 170   1      	if(DISP_COUN++ >=2) DISP_COUN=0;
 171   1      }
 172          
 173          void keyloop(void)
 174          {
 175   1              unsigned char i;
 176   1              for(i=0;i<4;i++)
 177   1              {
 178   2                  KeyValue=scankey();
C51 COMPILER V6.02  SUB                                                                    08/26/2003 16:13:26 PAGE 4   

 179   2          		switch(KeyValue)
 180   2          		{
 181   3                      case 0: break;
 182   3          			case 1: key1=~key1;
 183   3                              if( key1) js_coun1=0;
 184   3                              break;
 185   3          		   /* case 2: key2=~key2;
 186   3                              if( key2) js_coun2=0;
 187   3                              break; */
 188   3          		}  
 189   2          
 190   2          		if(key1)
 191   2          		{   
 192   3          			DISP_LED0=BCD[(js_coun1/10)%10];
 193   3          			DISP_LED1=BCD[js_coun1%10];
 194   3          		}
 195   2          		else 
 196   2          		{
 197   3          			DISP_LED0 = 0xc0;
 198   3          			DISP_LED1 = 0xc0;
 199   3                      js60s_flag=0;
 200   3          		}
 201   2      /*    		if(key2)
 202   2          		{
 203   2          			DISP_LED2=BCD[(js_coun2/10)%10];
 204   2          			DISP_LED3=BCD[js_coun2%10];
 205   2          		}
 206   2          		else
 207   2          		{
 208   2          			DISP_LED2 = 0xc0;
 209   2          			DISP_LED3 = 0xc0;
 210   2          		} */
 211   2              }
 212   1      }
 213          
 214          unsigned int calcCRC(unsigned char sendLen)
 215          {
 216   1          unsigned int CRC=0xffff;
 217   1          bit f;
 218   1          unsigned char i,j;
 219   1          
 220   1          for(i=0;i<sendLen;i++)
 221   1      	{
 222   2              CRC ^= sendData[i];
 223   2              for(j=0;j<8;j++)
 224   2      		{
 225   3                  if( (CRC&1) != 0)
 226   3      			{
 227   4                      f = true;
 228   4      			}
 229   3                  else
 230   3      			{
 231   4                      f = false;
 232   4      			}
 233   3                  CRC >>= 1;
 234   3                  if(f)
 235   3      			{
 236   4                      CRC ^= 0xA001;
 237   4                  }
 238   3              }
 239   2          }
 240   1          return CRC;
C51 COMPILER V6.02  SUB                                                                    08/26/2003 16:13:26 PAGE 5   

 241   1      }
 242          
 243          /////////控制函数
 244          void net_send(unsigned char c)  
 245          {	
 246   1      	RX_DX = 1;
 247   1        	SBUF=c;
 248   1        	while (!TI) ;
 249   1        	TI = 0;
 250   1      	RX_DX = 0;
 251   1      }
 252          
 253          bit net_sendData()	////发送
 254          {
 255   1      	unsigned char i;
 256   1      
 257   1      	for(i=0;i<commInLong;i++)
 258   1      	{
 259   2      		net_send(sendData[i]);
 260   2      	}
 261   1      	return 0;
 262   1      }
 263          
 264          unsigned char whp_getTemp() 
 265          {
 266   1      
 267   1      	unsigned char sendLen;
 268   1      	unsigned int i;
 269   1      
 270   1          sendData[0] = 1;
 271   1          sendData[1] = 4;
 272   1          sendData[2] = 0;
 273   1          sendData[3] = 0;
 274   1          sendData[4] = 0;
 275   1          sendData[5] = 1;
 276   1      
 277   1      	sendLen = 6;
 278   1          i = calcCRC(sendLen);
 279   1          sendData[6] = (unsigned char)(i & 0xff);
 280   1          sendData[7] = (unsigned char)(i>>8);
 281   1      
 282   1      	commInLong=8;
 283   1      	commOutLong = 0;
 284   1      	pVal=0;
 285   1      	if(net_sendData()!=0)
 286   1      	{
 287   2      		return 1;
 288   2      	}
 289   1      	incept_flag = 1;
 290   1      	delay(5000);
 291   1      	incept_flag = 0;
 292   1      //	pVal=commOutLong;
 293   1      //	if(c!=9)
 294   1      //	{
 295   1      //		return 2;
 296   1      //	}
 297   1      /*	if( (receData[3] & 0x80) == 1)
 298   1      	{
 299   1      		receData[3] &= 0x7f;
 300   1      		pVal = receData[3]*256+receData[4];
 301   1      //		pVal =0- pVal;
 302   1      
C51 COMPILER V6.02  SUB                                                                    08/26/2003 16:13:26 PAGE 6   

 303   1      	}
 304   1      	else*/   pVal=receData[3]*256+receData[4];
 305   1      
 306   1      	pVal =pVal/25-100;
 307   1      	return 0;
 308   1          delay(2000);
 309   1      }
 310          
 311          unsigned char whp_getSvTemp() 
 312          {
 313   1      
 314   1      	unsigned char sendLen;
 315   1      	unsigned int i;
 316   1      
 317   1          sendData[0] = 1;
 318   1          sendData[1] = 3;
 319   1          sendData[2] = 0;
 320   1          sendData[3] = 2;
 321   1          sendData[4] = 0;
 322   1          sendData[5] = 1;
 323   1      
 324   1      	sendLen = 6;
 325   1          i = calcCRC(sendLen);
 326   1          sendData[6] = (unsigned char)(i & 0xff);
 327   1          sendData[7] = (unsigned char)(i>>8);
 328   1      
 329   1      	commInLong=8;
 330   1      	if(net_sendData()!=0)
 331   1      	{
 332   2      		return 1;
 333   2      	}
 334   1      	commOutLong = 0;
 335   1      	incept_flag = 1;
 336   1      	delay(5000);
 337   1      	incept_flag = 0;
 338   1      	if(commOutLong<7)
 339   1      	{
 340   2      		return 2;
 341   2      	}
 342   1      /*	if( (receData[3] & 0x80) == 1)
 343   1      	{
 344   1      		receData[3] &= 0x7f;
 345   1      		sVal=receData[3]*256+receData[4];
 346   1      //		sVal =0 - sVal;
 347   1      	}
 348   1      	else*/  sVal=(receData[3]*256+receData[4]);
 349   1      
 350   1      	sVal =sVal/25-100;
 351   1      	return 0;
 352   1          delay(2000);
 353   1      }
 354          
 355          void serial() interrupt 4 using 2
 356          {
 357   1      	unsigned char c;
 358   1      
 359   1      	if(_testbit_(RI))
 360   1      	{
 361   2      		c = SBUF;
 362   2      		if(incept_flag == 1)
 363   2      		{
 364   3      			if(commOutLong<15)
C51 COMPILER V6.02  SUB                                                                    08/26/2003 16:13:26 PAGE 7   

 365   3      			{
 366   4      				receData[commOutLong++]=c; 
 367   4      			}
 368   3      		}
 369   2      	}
 370   1      }
 371          
 372          /*
 373          unsigned char dprintf(char *fmt, ...)
 374          {
 375          	va_list arg_ptr;
 376          	unsigned char uLen;
 377          	va_start(arg_ptr, fmt);
 378          	uLen = (unsigned char)vsprintf(sendData, fmt, arg_ptr);
 379          	va_end(arg_ptr);
 380          	return uLen;
 381          }
 382          */
 383          


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