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

📄 io_check.c

📁 51单片机驱动2相步进电机程序。 keil 开发软件。
💻 C
字号:
/**************************************************************************************/ 
#include  "config.h"   

/**************************************************************************************/
uint8	demp;		//定时0时间
uint8 	demp1;		//定时1时间   
/**************************************************************************************/
bit X0=1,X1=1,X2=1,X3=1,X4=1,X5=1,X6=1,X7=1;     	//输入
bit X10=1,X11=1,X12=1,X13=1,X14=1,X15=1,X16=1,X17=1;     	//输入
bit X20=1,X21=1,X22=1,X23=1,X24=1,X25=1;     	//输入  
/**************************************************************************************/  
/*********消抖时间******************/
extern  uint8  TSS1;
//判断X0消抖值 
uint8 xdata	InP0=0,InP1=0,InP2=0,InP3=0,InP4=0,InP5=0,InP6=0,InP7=0;		 
uint8 xdata	InP10=0,InP11=0,InP12=0,InP13=0,InP14=0,InP15=0,InP16=0,InP17=0;
uint8 xdata	InP20=0,InP21=0,InP22=0,InP23=0,InP24=0,InP25=0;		
/**************************************************************************************/
bit	M0=1,M1=1,M2=1,M3=1,M4=1,M5=1,M6=1,M7=1; //  
bit M10=1,M11=1,M12=1,M13=1,M14=1,M15=1,M16=1,M17=1;
bit M20=1,M21=1,M22=1,M23=1,M24=1,M25=1,M26=1,M27=1;
bit M30=1,M31=1,M32=1,M33=1,M34=1,M35=1,M36=1,M37=1;  
/**************************************************************************************/ 
bit   	T0_K=1,T1_K=1,T2_K=1,T3_K=1,T4_K=1,T5_K=1,T6_K=1,T7_K=1;	 
bit   	T10_K=1,T11_K=1;//,TK12_bit=1,TK13_bit=1,TK14_bit=1,TK15_bit=1,TK16_bit=1,TK17_bit=1;
/**************************************************************************************/
bit   	T0_bit=1,T1_bit=1,T2_bit=1,T3_bit=1,T4_bit=1,T5_bit=1,T6_bit=1,T7_bit=1; 
//bit   	TC10_bit=1,TC11_bit=1,TC12_bit=1,TC13_bit=1,TC14_bit1,TC15_bit=1,TC16_bit=1,TC17_bit=1;
/**************************************************************************************/
uint16 xdata T0K =0;
uint16 xdata T1K =0;
uint16 xdata T2K =0;
uint16 xdata T3K =0;
uint16 xdata T4K =0;
uint16 xdata T5K =0;
uint16 xdata T6K =0; 
uint16 xdata T7K =0; 
 
uint16 xdata T10K=0;
uint16 xdata T11K=0; 
 												
/* P2 */
sbit XX17 = 0xA0;
sbit XX20 = 0xA1;
sbit XX21 = 0xA2;
sbit XX22 = 0xA3;
sbit XX23 = 0xA4;
sbit XX24 = 0xA5;
sbit XX25  = 0xA6; 
/********P1*********/
sbit XX0 = 0x90;
sbit XX1 = 0x91;
sbit XX2 = 0x92;
sbit XX3 = 0x93;
sbit XX4 = 0x94;
sbit XX5 = 0x95;
sbit XX6 = 0x96;
sbit XX7 = 0x97;
/********P3*********/
sbit XX11 = 0xB0;
sbit XX10 = 0xB1;
sbit XX14 = 0xB2; 
sbit XX12 = 0xB4;
sbit XX13 = 0xB5;
sbit XX15 = 0xB6;
sbit XX16 = 0xB7;  
/***************************************************************/
//PLC输入消抖
void check_IO(void)
{ 
//**********X0******************	
	if( XX0==0)
		{   	 
		 	if(InP0>=TSS1){if( XX0==0){ X0=0;InP0=0;}}else InP0++;		 
		}else (X0 = 1,InP0=0);
//**********X1******************	
	if( XX1==0)
		{   	 
		 	if(InP1>=TSS1){if( XX1==0){ X1=0;InP1=0;}}else InP1++;		 
		}else (X1 = 1,InP1=0);
//**********X2******************	
	if( XX2==0)
		{   	 
		 	if(InP2>=TSS1){if( XX2==0){ X2=0;InP2=0;}}else InP2++;		 
		}else (X2 = 1,InP2=0);
//**********X3******************	
	if( XX3==0)
		{   	 
		 	if(InP3>=TSS1){if( XX3==0){ X3=0;InP3=0;}}else InP3++;		 
		}else (X3 = 1,InP3=0);
//**********X4******************	
	if( XX4==0)
		{   	 
		 	if(InP4>=TSS1){if( XX4==0){ X4=0;InP4=0;}}else InP4++;		 
		}else (X4 = 1,InP4=0);
//**********X5******************	
	if( XX5==0)
		{   	 
		 	if(InP5>=TSS1){if( XX5==0){ X5=0;InP5=0;}}else InP5++;		 
		}else (X5 = 1,InP5=0);
//**********X6******************	
	if( XX6==0)
		{   	 
		 	if(InP6>=TSS1){if( XX6==0){ X6=0;InP6=0;}}else InP6++;		 
		}else (X6 = 1,InP6=0);
//**********X7******************	
	if( XX7==0)
		{   	 
		 	if(InP7>=TSS1){if( XX7==0){ X7=0;InP7=0;}}else InP7++;		 
		}else (X7 = 1,InP7=0);
//
//**********X10******************	
	if( XX10==0)
		{   	 
		 	if(InP10>=TSS1){if( XX10==0){ X10=0;InP10=0;}}else InP10++;		 
		}else (X10 = 1,InP10=0);
//**********X11******************	
	if( XX11==0)
		{   	 
		 	if(InP11>=TSS1){if( XX11==0){ X11=0;InP11=0;}}else InP11++;		 
		}else (X11 = 1,InP11=0);
//**********X12******************	
	if( XX12==0)
		{   	 
		 	if(InP12>=TSS1){if( XX12==0){ X12=0;InP12=0;}}else InP12++;		 
		}else (X12 = 1,InP12=0);
//**********X13******************	
	if( XX13==0)
		{   	 
		 	if(InP13>=TSS1){if( XX13==0){ X13=0;InP13=0;}}else InP13++;		 
		}else (X13 = 1,InP13=0);
//**********X14******************	
	if( XX14==0)
		{   	 
		 	if(InP14>=TSS1){if( XX14==0){ X14=0;InP14=0;}}else InP14++;		 
		}else (X14 = 1,InP14=0);
//**********X15******************	
	if( XX15==0)
		{   	 
		 	if(InP15>=TSS1){if( XX15==0){ X15=0;InP15=0;}}else InP15++;		 
		}else (X15 = 1,InP15=0);
//**********X16******************	
	if( XX16==0)
		{   	 
		 	if(InP16>=TSS1){if( XX16==0){ X16=0;InP16=0;}}else InP16++;		 
		}else (X16 = 1,InP16=0);
//**********X17******************	
	if( XX17==0)
		{   	 
		 	if(InP17>=TSS1){if( XX17==0){ X17=0;InP17=0;}}else InP17++;		 
		}else (X17 = 1,InP17=0); 
//
//**********X20******************	
	if( XX20==0)
		{   	 
		 	if(InP20>=TSS1){if( XX20==0){ X20=0;InP20=0;}}else InP20++;		 
		}else (X20 = 1,InP20=0);
//**********X21******************	
	if( XX21==0)
		{   	 
		 	if(InP21>=TSS1){if( XX21==0){ X21=0;InP21=0;}}else InP21++;		 
		}else (X21 = 1,InP21=0);
//**********X22******************	
	if( XX22==0)
		{   	 
		 	if(InP22>=TSS1){if( XX22==0){ X22=0;InP22=0;}}else InP22++;		 
		}else (X22 = 1,InP22=0);
//**********X23******************	
	if( XX23==0)
		{   	 
		 	if(InP23>=TSS1){if( XX23==0){ X23=0;InP23=0;}}else InP23++;		 
		}else (X23 = 1,InP23=0);
//**********X24******************	
	if( XX24==0)
		{   	 
		 	if(InP24>=TSS1){if( XX24==0){ X24=0;InP24=0;}}else InP24++;		 
		}else (X24 = 1,InP24=0);
//**********X25******************	
	if( XX25==0)
		{   	 
		 	if(InP25>=TSS1){if( XX25==0){ X25=0;InP25=0;}}else InP25++;		 
		}else (X25 = 1,InP25=0); 
}  
/***************************************************************/
//端口初始化
void initFlag(void)
{
	P0 = 0xFF;			// 输出端口初始化
  	P2 = 0xFF;			// 输出端口初始化
  	P1 = 0xFF;			// 输入端口初始化
  	P3 = 0xFF;			// 输入端口初始化
}
/*******************中断初始化**********************************/
//定时器中断初始化
void initTimer (void)
{
 	demp =0;
	demp1=0;
	EA=0; 
 	TMOD=0x11;
	TH0=-9460/256;
	TL0=-9460%256;         //初始化计数器初值
	PT0=1;
	TR0=1;
	ET0=1;

  	TH1=-9460/256;
 	TL1=-9460%256;         //初始化计数器初值 
   	TR1=1;
   	ET1=1; 

/*	if(IR_flag5==0)
		{
			IT0=1;				  //INT0中斷初始化
			EX0=1;
			PX0=1;  
 		}
*/
    EA =1;
    WDT =0x1E;
    WDT =0xE1; 
 	WDTSTC=0X3C;
}
/*******************系统初始化**********************************/
void system(void)
{
	initFlag();	 
//	initTimer();
}    
/***************************************************************/
/*********************定时器0中断服务程序*/
void timer0 (void) interrupt 1
{	 
	TR0=0;
    TH0=-9460/256;
	TL0=-9460%256;         //初始化计数器初值	
    TR0=1; 
	 	
    WDT =0x1E;
    WDT =0xE1;
 	WDTSTC=0X3C; 
   	check_IO();
	if(demp==30)      	  //当0.2秒钟到
		{   
		  
		 	demp=0; 
		}else demp++;
} 

/******************************************************************************* 
定时器1中断服务程序
 ******************************************************************************/
void timer1(void) interrupt 3
{
	TR1=0;    
	TH1=-9460/256;
	TL1=-9460%256;         
    TR1=1; 				   		//计数器初值	
	  
		//定时器0程序******************************************************
     	if(( T0_K==0)&&(T0_bit==1))
 			{   	
				 
				if(T0K==0)
					{      				 
		             	/*这里增加你的定时程序***********************/  
								  
						/************************/
						T0_bit=0; 
		    		  	T0_K = 1;  
					}else T0K--; 
			}  
		//定时器1程序******************************************************  
     	if(( T1_K==0)&&(T1_bit==1))					   	 
			{ 
				if(T1K==0)
					{ 
						/*这里增加你的定时程序**********************/
 
						/************************/ 
						T1_bit=0;
						T1_K =1; 
				    }else T1K--; 	 
			}							  
 		//定时器2程序******************************************************
		// 
   		if(( T2_K==0)&&(T2_bit==1))
			{							  
			 	if(T2K==0)				 
					{					  
	            		/*这里增加你的定时程序************************/     	  
			       	

						//************************
						T2_bit=0;
						T2_K=1; 
						 
						//************************
					}else T2K--;	
			}				 
 
		//定时器3程序****************************************************** 
		// 
      	if(( T3_K==0)&&(T3_bit==1))
			{					 
		 		if(T3K==0)
					{ 			 
		      			/*这里增加你的定时程序***********************/
     	  				

						//************************
						T3_bit=0;
						T3_K=1; 
					}else T3K--;} 
		//定时器4程序****************************************************** 
		// 
      	if(( T4_K==0)&&(T4_bit==1))
			{					 
		 		if(T4K==0)
					{  
					 
						//************************
						T4_bit=0;
						T4_K=1; 
					}else T4K--;}  
		//定时器5程序****************************************************** 
		// 
      	if(( T5_K==0)&&(T5_bit==1))
			{					 
		 		if(T5K==0)
					{ 	 
					 
						//************************
						T5_bit=0;
						T5_K=1; 
					}else T5K--;}  
		//定时器6程序****************************************************** 
		// 
      	if(( T6_K==0)&&(T6_bit==1))
			{					 
		 		if(T6K==0)
					{ 	 
						 
						//************************
						T6_bit=0;
						T6_K=1; 
					}else T6K--;}  
		//定时器7程序****************************************************** 
		// 
      	if(( T7_K==0)&&(T7_bit==1))
			{					 
		 		if(T7K==0)
					{ 	 
						//************************
						T7_bit=0;
						T7_K=1; 
					}else T7K--;} 
	   		//定时器10程序****************************************************** 
 
 
}























⌨️ 快捷键说明

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