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

📄 ei10.lst

📁 单片机在纺织设备上的应用,单片机控制变频器,通过多段速控制,和不同算法,加工不同的绕线形状.
💻 LST
📖 第 1 页 / 共 3 页
字号:
 301   3      				PSysAuto->Speed = UPSTEP1;
 302   3      				PSysAuto->RunMsTick = PSysAuto->SMsTickSave+PSysAuto->AddStep;
 303   3      				Bcf(PSysAuto->RunMsTickFlag);
C51 COMPILER V6.12  EI10                                                                   01/11/2008 14:04:17 PAGE 6   

 304   3      
 305   3      				PSysAuto->OverScecond = CSTIME;
 306   3      				Bcf(PSysAuto->OverScecondFlag);
 307   3      				PSysAuto->AutoStep++;
 308   3      			}
 309   2      			if(PSysAuto->OverScecondFlag)
 310   2      			{
 311   3      				PSysAuto->Worm = CS;
 312   3      				PSysAuto->AutoStep = 0;
 313   3      			}
 314   2      
 315   2          		break;//得到向下时间then 系统向上即运行开始
 316   2          		case 5:
 317   2      			if(PSysAuto->RunMsTickFlag)
 318   2      			{
 319   3      				PSysAuto->Speed = DOWNSTEP2;
 320   3      				PSysAuto->RunMsTick = PSysAuto->XMsTickSave;
 321   3      				Bcf(PSysAuto->RunMsTickFlag)
 322   3      				PSysAuto->OverScecond = CSTIME;
 323   3      				Bcf(PSysAuto->OverScecondFlag);
 324   3      				PSysAuto->AutoStep++;
 325   3      			}
 326   2      			if(PSysAuto->SStatus)
 327   2      			{
 328   3      				PSysAuto->AutoStep = 1;
 329   3      
 330   3      
 331   3      			}//结束一个周期
 332   2      			if(PSysAuto->OverScecondFlag)
 333   2      			{
 334   3      				PSysAuto->Worm = CS;
 335   3      				PSysAuto->AutoStep = 0;
 336   3      			}
 337   2      		break;//向上运行时间到then 系统向下
 338   2      		case 6:
 339   2      			if(PSysAuto->RunMsTickFlag)
 340   2      			{
 341   3      				PSysAuto->Speed = UPSTEP1;
 342   3      				PSysAuto->RunMsTick = PSysAuto->SMsTickSave+PSysAuto->AddStep;
 343   3      				Bcf(PSysAuto->RunMsTickFlag);
 344   3      				PSysAuto->AutoStep = 5;
 345   3      			}
 346   2      			if(PSysAuto->OverScecondFlag)
 347   2      			{
 348   3      				PSysAuto->Worm = CS;
 349   3      				PSysAuto->AutoStep = 0;
 350   3      			}
 351   2      
 352   2      		break;//向上运行时间到then 系统向下
 353   2      
 354   2      	}
 355   1      	PSysAuto-> PutCon();
 356   1      
 357   1      }
 358          
 359          
 360          /*
 361          	得到步数细分
 362          */
 363          uint	GetAddStep()
 364          {
 365   1      	uint		temp;
C51 COMPILER V6.12  EI10                                                                   01/11/2008 14:04:17 PAGE 7   

 366   1      	temp = 0;
 367   1      	if(TIME0_IN)	temp |= (0x01<<0);
 368   1      	if(TIME1_IN)	temp |= (0x01<<1);
 369   1      	if(TIME2_IN)	temp |= (0x01<<2);
 370   1      	if(TIME3_IN)	temp |= (0x01<<3);
 371   1      	if(TIME4_IN)	temp |= (0x01<<4);
 372   1      	if(TIME5_IN)	temp |= (0x01<<5);
 373   1      	if(TIME6_IN)	temp |= (0x01<<6);
 374   1      	return	(temp+1);
 375   1      }
 376          //输出控制
 377          void PutCon()
 378          {
 379   1      	M0_OUT = 0;
 380   1      	M1_OUT = 0;
 381   1      	M2_OUT = 0;
 382   1      	M3_OUT = 0;
 383   1      	M4_OUT = 0;
 384   1      	M5_OUT = 0;
 385   1      	if(PSysAuto->Worm)
 386   1      	{
 387   2      		BJ_OUT = 1;
 388   2      	}
 389   1      	else
 390   1      	{
 391   2      		BJ_OUT = 0;
 392   2      	}
 393   1      	if(PSysAuto->Speed == 0)
 394   1      	{
 395   2      		return;
 396   2      	}
 397   1      	if(PSysAuto->Speed &0x80)
 398   1      	{
 399   2      		M0_OUT = 1;
 400   2      	}
 401   1      	else
 402   1      	{
 403   2      		M1_OUT = 1;
 404   2      	}
 405   1      	if(PSysAuto->Speed &0X01)
 406   1      	{
 407   2      		M3_OUT = 1;
 408   2      	}
 409   1      	else
 410   1      	{
 411   2      		M3_OUT = 0;
 412   2      	}
 413   1      	if(PSysAuto->Speed &0X02)
 414   1      	{
 415   2      		M4_OUT = 1;
 416   2      	}
 417   1      	else
 418   1      	{
 419   2      		M4_OUT = 0;
 420   2      	}
 421   1      	if(PSysAuto->Speed &0X04)
 422   1      	{
 423   2      		M5_OUT = 1;
 424   2      	}
 425   1      	else
 426   1      	{
 427   2      		M5_OUT = 0;
C51 COMPILER V6.12  EI10                                                                   01/11/2008 14:04:17 PAGE 8   

 428   2      	}
 429   1      }
 430          //功能:得到自动运行状态
 431          void GetStus()
 432          {
 433   1      	if(KS_IN)
 434   1      	{
 435   2      		PSysAuto->XStatus = 1;
 436   2      	}
 437   1      	else
 438   1      	{
 439   2      		PSysAuto->XStatus = 0;
 440   2      	}
 441   1      	if(KX_IN)
 442   1      	{
 443   2      		PSysAuto->SStatus = 1;
 444   2      	}
 445   1      	else
 446   1      	{
 447   2      		PSysAuto->SStatus = 0;
 448   2      	}
 449   1      	if(KZ_IN)
 450   1      	{
 451   2      		PSysAuto->ZStatus = 1;
 452   2      	}
 453   1      	else
 454   1      	{
 455   2      		PSysAuto->ZStatus = 0;
 456   2      	}
 457   1      	if(KRUN_IN)
 458   1      	{
 459   2      		PSysAuto->Run = 1;
 460   2      	}
 461   1      	else
 462   1      	{
 463   2      		PSysAuto->Run = 0;
 464   2      	}
 465   1      }
 466          
 467          
 468          /*
 469          功能:主程序初始化
 470          输入参数:NC
 471          输出参数:NC
 472          作者:徐益武
 473          2006/1/15
 474          修改次数:0
 475          */
 476          void Init()
 477          {
 478   1       	TMOD = 0x21;
 479   1        	TR0 = 1;
 480   1        	ET0 = 1;
 481   1        	EA = 1;
 482   1      	TH0 = 0;
 483   1      	TL0 = 0;
 484   1        	Delay(1);
 485   1      }
 486          
 487          void GetKey()
 488          {
 489   1       	static uchar Temp1,Temp2,Tempp1,Tempp2;
C51 COMPILER V6.12  EI10                                                                   01/11/2008 14:04:17 PAGE 9   

 490   1        	uchar  Temp,Tempp;
 491   1      	if(PKey->UPTimeFlag)
 492   1      	{
 493   2      		PKey->UpTime = 0;
 494   2      		Bcf(PKey->UPTimeFlag);
 495   2        		Temp=0; Tempp=0;
 496   2        		IN00=1;IN01=1;IN02=1;IN03=1;IN04=1;IN05=1;IN06=1;IN07=1;
 497   2        		IN10=1;IN11=1;IN12=1;
 498   2        		if(IN00)     Temp=Temp&0xfe;
 499   2        		else         Temp=Temp|0x01;
 500   2        		if(IN01)     Temp=Temp&0xfd;
 501   2        		else         Temp=Temp|0x02;
 502   2        		if(IN02)     Temp=Temp&0xfb;
 503   2        		else         Temp=Temp|0x04;
 504   2        		if(IN03)     Temp=Temp&0xf7;
 505   2        		else         Temp=Temp|0x08;
 506   2        		if(IN04)     Temp=Temp&0xef;
 507   2        		else         Temp=Temp|0x10;
 508   2        		if(IN05)     Temp=Temp&0xdf;
 509   2        		else         Temp=Temp|0x20;
 510   2        		if(IN06)     Temp=Temp&0xbf;
 511   2        		else         Temp=Temp|0x40;
 512   2        		if(IN07)     Temp=Temp&0x7f;
 513   2       		else         Temp=Temp|0x80;
 514   2        		if(IN10)     Tempp=Tempp&0xfe;
 515   2        		else         Tempp=Tempp|0x01;
 516   2        		if(IN11)     Tempp=Tempp&0xfd;
 517   2        		else         Tempp=Tempp|0x02;
 518   2        		if(IN12)     Tempp=Tempp&0xfb;
 519   2        		else         Tempp=Tempp|0x04;
 520   2        		switch(PKey->Step & 0x1)
 521   2      		{
 522   3         			 case 0:
 523   3            				if(Temp!=Temp1||Tempp!=Tempp1)
 524   3      					{
 525   4              					PKey->Step = 1;
 526   4              					Temp2=Temp; Tempp2=Tempp;
 527   4            					}
 528   3          			break;
 529   3         		 	case 1:
 530   3            				if(Temp==Temp2&&Tempp==Tempp2)
 531   3              				{
 532   4              					Temp1=Temp;Tempp1=Tempp;
 533   4              					X0=Temp;X1=Tempp;
 534   4            					}
 535   3            				PKey->Step = 0;
 536   3          			break;
 537   3        		}
 538   2      	}
 539   1      }
 540          
 541          /*
 542          功能:输出更新
 543          输入参数:NC
 544          输出参数:NC
 545          作者:徐益武
 546          2006/1/15
 547          修改次数:0
 548          */
 549          void Out()
 550          {
 551   1      /*
C51 COMPILER V6.12  EI10                                                                   01/11/2008 14:04:17 PAGE 10  

 552   1      ;Y03_LED    BIT     ACC.0
 553   1      ;Y04_LED    BIT     ACC.1
 554   1      ;Y05_LED    BIT     ACC.2
 555   1      ;Y06_LED    BIT     ACC.3
 556   1      ;Y07_LED    BIT     ACC.4
 557   1      ;Y11_LED    BIT     ACC.5
 558   1      ;Y10_LED    BIT     ACC.6
 559   1      ;Y00_LED    BIT     ACC.7
 560   1      */
 561   1      
 562   1      Y03_LED = Y03;
 563   1      Y04_LED = Y04;
 564   1      Y05_LED = Y05;
 565   1      Y06_LED = Y06;
 566   1      Y07_LED = Y07;
 567   1      Y11_LED = Y11;
 568   1      Y10_LED = Y10;
 569   1      Y00_LED = Y00;
 570   1      LED[2] = ACC;//送显示缓冲LED2
 571   1      /*
 572   1      ;POWER_LED  BIT     ACC.0
 573   1      ;RUN_LED    BIT     ACC.1
 574   1      ;STOP_LED   BIT     ACC.2
 575   1      ;Y01_LED    BIT     ACC.3
 576   1      ;Y02_LED    BIT     ACC.4
 577   1      ;X07_LED    BIT     ACC.5
 578   1      ;X06_LED    BIT     ACC.6
 579   1      ;X05_LED    BIT     ACC.7
 580   1      */
 581   1      POWER_LED=1;
 582   1      RUN_LED=1;
 583   1      STOP_LED=0;
 584   1      Y01_LED = Y01;
 585   1      Y02_LED = Y02;
 586   1      X07_LED = X07;
 587   1      X06_LED = X06;
 588   1      X05_LED = X05;
 589   1      LED[1] = ACC;//送显示缓冲LED1
 590   1      /*
 591   1      ;X04_LED    BIT     ACC.0
 592   1      ;X03_LED    BIT     ACC.1
 593   1      ;X12_LED    BIT     ACC.2
 594   1      ;X11_LED    BIT     ACC.3
 595   1      ;X10_LED    BIT     ACC.4
 596   1      ;X00_LED    BIT     ACC.5
 597   1      ;X01_LED    BIT     ACC.6
 598   1      ;X02_LED    BIT     ACC.7
 599   1      */
 600   1      X04_LED = X04;
 601   1      X03_LED = X03;
 602   1      X12_LED = X12;
 603   1      X11_LED = X11;
 604   1      X10_LED = X10;
 605   1      X00_LED = X00;
 606   1      X01_LED = X01;
 607   1      X02_LED = X02;

⌨️ 快捷键说明

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