www.pudn.com > epson_print.rar > main.c


#include  
#include  
#include  
#define PAPERMOTOR_Data    XBYTE[0x4000] 
#define PRN_Control		   XBYTE[0x4000] 
#define  uint   unsigned int 
#define  uchar  unsigned char 
uint code Pap_acdata[20] = {0x3266,0x2156,0x198f,0x1599,0x1302,0x1135,0xfc4,0xeb0,0xdd2,0xd08, 
						       	 0xc74,0xbe1,0xb60,0xaf1,0xa95,0xa39,0x9ef,0x9a5,0x95c,0x924}; 
uint code Pap_dcdata[2] = {0xc06,0x1200}; 
sbit HOME_Pin = P3^2; 
sbit Paper_Pin = P3^4; 
bit PrintDirect; 
bit homeflag; 
bit PAPERMOTOR_Flag; 
//bit CARRIGEMOTOR_Flag; 
//sbit Cut_A = P1^5; 
//sbit Cut_B = P1^6; 
sbit Sens = P1^7; 
sbit Mark_Pin = P3^5; 
uchar xdata  LOW_PRN_ControlState; 
void PAPERMOTOR_Init(); 
void PAPERMOTOR_Hold(); 
void PAPERMOTOR_Rush(); 
void PAPERMOTOR_On(); 
void PAPERMOTOR_Off(); 
void CARRIGEMOTOR_Acce_Dece_11steps(uchar AC_DC); 
void LOW_PRN_InitDotTimer(uint T0_DATA); 
void PAPERMOTOR_SetStep(uchar Papermove_Direc); 
void PAPERMOTOR_Move(uchar Direc, uint Steps); 
 
 
void PAPERMOTOR_Init() 
{ 
	 
	LOW_PRN_ControlState &= 0x33; 
	LOW_PRN_ControlState |= 0xc0; 
	PAPERMOTOR_Flag = 0; 
 
} 
 
void PH_Timer_Set(uint PH_DATA) 
{ 
	TH1 = -(PH_DATA/256); 
	TL1 = -(PH_DATA%256); 
	ET1 = 1; 
	TR1 = 1; 
} 
 
/* void LOW_PRN_InitDotTimer(uint T0_DATA) 
{ 
	TH0 = -T0_DATA/256; 
	TL0 = -T0_DATA%256; 
	ET0 = 1; 
	TR0 = 1; 
}*/ 
void PAPERMOTOR_Move(uchar Direc, uint Steps) 
{ 
	uint i,PAPERSteps; 
	PAPERSteps = Steps; 
	PAPERMOTOR_Flag = 0; 
	PAPERMOTOR_On(); 
	if(PAPERSteps < 22) 
	{ 
		for(i=0;i0;i--) 
		{ 
			if(temp == PH_State[i]) 
			{ 
				temp = PH_State[i-1]; 
				break; 
			}	 
		} 
	} 
	LOW_PRN_ControlState &= 0xf3; 
	LOW_PRN_ControlState |= temp; 
	PAPERMOTOR_Data = LOW_PRN_ControlState; 
} 
 
void PAPERMOTOR_On() 
{ 
	PAPERMOTOR_Hold(); 
	PAPERMOTOR_Rush(); 
} 
 
void PAPERMOTOR_Off() 
{ 
	PAPERMOTOR_Rush(); 
	PAPERMOTOR_Hold(); 
} 
 
void Delay_6ms() 
{ 
	uint i; 
	for(i=0;i<0x0b33;i++); 
} 
 
void PAPERMOTOR_Hold() 
{ 
	LOW_PRN_ControlState &= 0x3f; 
	LOW_PRN_ControlState |= 0x80; 
	PAPERMOTOR_Data = LOW_PRN_ControlState; 
	Delay_6ms(); 
} 
 
void PAPERMOTOR_Rush() 
{ 
	LOW_PRN_ControlState &= 0x3f; 
	PAPERMOTOR_Data = LOW_PRN_ControlState; 
	Delay_6ms(); 
} 
 
 
 
/*  void LOW_PRN_Findhome() 
{ 
	uchar i; 
	CARRIGEMOTOR_Hold(); 
	CARRIGEMOTOR_Rush(); 
	if(!HOME_Pin) 
	{ 
		PrintDirect = 0; 
		CARRIGEMOTOR_Acce_Dece_11steps(1); 
		for(i=0;i<180;i++) 
		{ 
			CARRIGEMOTOR_PH_Set(); 
			PH_Timer_Set(0x05f2); 
			while(!CARRIGEMOTOR_Flag); 
			CARRIGEMOTOR_Flag = 0;	 
		} 
		CARRIGEMOTOR_Acce_Dece_11steps(0); 
	} 
	for(;;) 
	{ 
		if(HOME_Pin) 
		{ 
			PrintDirect = 1; 
			homeflag = HOME_Pin; 
		}	 
		else 
 	    { 
			PrintDirect = 0; 
			homeflag = HOME_Pin; 
		} 
		CARRIGEMOTOR_PH_Set(); 
		PH_Timer_Set(0x2347); 
		while(!CARRIGEMOTOR_Flag); 
		CARRIGEMOTOR_Flag = 0; 
		if(homeflag == !HOME_Pin) 
			break; 
	} 
	PrintDirect = 0; 
	CARRIGEMOTOR_Acce_Dece_11steps(1); 
	CARRIGEMOTOR_Acce_Dece_11steps(0); 
	CARRIGEMOTOR_Rush(); 
	CARRIGEMOTOR_Hold(); 
	PrintDirect = 1; 
}*/	 
 
void main() 
{ 
	   Sens = 1; 
       PAPERMOTOR_Init(); 
       if(Sens) 
       { 
         PAPERMOTOR_SetStep(0); 
        } 
	//	for(;;) 
	//	{ 
		PRN_Control &= 0x3f; 
		PAPERMOTOR_Move(0, 20); 
	//	} 
	//	PAPERMOTOR_Off(); 
        
}