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;i 0;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(); }