www.pudn.com > epson_print.rar > main.LST
C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 1 C51 COMPILER V7.20, COMPILATION OF MODULE MAIN OBJECT MODULE PLACED IN main.OBJ COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe main.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND CODE line level source 1 #include2 #include 3 #include 4 #define PAPERMOTOR_Data XBYTE[0x4000] 5 #define PRN_Control XBYTE[0x4000] 6 #define uint unsigned int 7 #define uchar unsigned char 8 uint code Pap_acdata[20] = {0x3266,0x2156,0x198f,0x1599,0x1302,0x1135,0xfc4,0xeb0,0xdd2,0xd08, 9 0xc74,0xbe1,0xb60,0xaf1,0xa95,0xa39,0x9ef,0x9a5,0x95c,0x924}; 10 uint code Pap_dcdata[2] = {0xc06,0x1200}; 11 sbit HOME_Pin = P3^2; 12 sbit Paper_Pin = P3^4; 13 bit PrintDirect; 14 bit homeflag; 15 bit PAPERMOTOR_Flag; 16 //bit CARRIGEMOTOR_Flag; 17 //sbit Cut_A = P1^5; 18 //sbit Cut_B = P1^6; 19 sbit Sens = P1^7; 20 sbit Mark_Pin = P3^5; 21 uchar xdata LOW_PRN_ControlState; 22 void PAPERMOTOR_Init(); 23 void PAPERMOTOR_Hold(); 24 void PAPERMOTOR_Rush(); 25 void PAPERMOTOR_On(); 26 void PAPERMOTOR_Off(); 27 void CARRIGEMOTOR_Acce_Dece_11steps(uchar AC_DC); 28 void LOW_PRN_InitDotTimer(uint T0_DATA); 29 void PAPERMOTOR_SetStep(uchar Papermove_Direc); 30 void PAPERMOTOR_Move(uchar Direc, uint Steps); 31 32 33 void PAPERMOTOR_Init() 34 { 35 1 36 1 LOW_PRN_ControlState &= 0x33; 37 1 LOW_PRN_ControlState |= 0xc0; 38 1 PAPERMOTOR_Flag = 0; 39 1 40 1 } 41 42 void PH_Timer_Set(uint PH_DATA) 43 { 44 1 TH1 = -(PH_DATA/256); 45 1 TL1 = -(PH_DATA%256); 46 1 ET1 = 1; 47 1 TR1 = 1; 48 1 } 49 50 /* void LOW_PRN_InitDotTimer(uint T0_DATA) 51 { 52 TH0 = -T0_DATA/256; 53 TL0 = -T0_DATA%256; 54 ET0 = 1; 55 TR0 = 1; C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 2 56 }*/ 57 void PAPERMOTOR_Move(uchar Direc, uint Steps) 58 { 59 1 uint i,PAPERSteps; 60 1 PAPERSteps = Steps; 61 1 PAPERMOTOR_Flag = 0; 62 1 PAPERMOTOR_On(); 63 1 if(PAPERSteps < 22) 64 1 { 65 2 for(i=0;i 0;i--) 124 2 { 125 3 if(temp == PH_State[i]) 126 3 { 127 4 temp = PH_State[i-1]; 128 4 break; 129 4 } 130 3 } 131 2 } 132 1 LOW_PRN_ControlState &= 0xf3; 133 1 LOW_PRN_ControlState |= temp; 134 1 PAPERMOTOR_Data = LOW_PRN_ControlState; 135 1 } 136 137 void PAPERMOTOR_On() 138 { 139 1 PAPERMOTOR_Hold(); 140 1 PAPERMOTOR_Rush(); 141 1 } 142 143 void PAPERMOTOR_Off() 144 { 145 1 PAPERMOTOR_Rush(); 146 1 PAPERMOTOR_Hold(); 147 1 } 148 149 void Delay_6ms() 150 { 151 1 uint i; 152 1 for(i=0;i<0x0b33;i++); 153 1 } 154 155 void PAPERMOTOR_Hold() 156 { 157 1 LOW_PRN_ControlState &= 0x3f; 158 1 LOW_PRN_ControlState |= 0x80; 159 1 PAPERMOTOR_Data = LOW_PRN_ControlState; 160 1 Delay_6ms(); 161 1 } 162 163 void PAPERMOTOR_Rush() 164 { 165 1 LOW_PRN_ControlState &= 0x3f; 166 1 PAPERMOTOR_Data = LOW_PRN_ControlState; 167 1 Delay_6ms(); 168 1 } 169 170 171 172 /* void LOW_PRN_Findhome() 173 { 174 uchar i; 175 CARRIGEMOTOR_Hold(); 176 CARRIGEMOTOR_Rush(); 177 if(!HOME_Pin) 178 { 179 PrintDirect = 0; C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 4 180 CARRIGEMOTOR_Acce_Dece_11steps(1); 181 for(i=0;i<180;i++) 182 { 183 CARRIGEMOTOR_PH_Set(); 184 PH_Timer_Set(0x05f2); 185 while(!CARRIGEMOTOR_Flag); 186 CARRIGEMOTOR_Flag = 0; 187 } 188 CARRIGEMOTOR_Acce_Dece_11steps(0); 189 } 190 for(;;) 191 { 192 if(HOME_Pin) 193 { 194 PrintDirect = 1; 195 homeflag = HOME_Pin; 196 } 197 else 198 { 199 PrintDirect = 0; 200 homeflag = HOME_Pin; 201 } 202 CARRIGEMOTOR_PH_Set(); 203 PH_Timer_Set(0x2347); 204 while(!CARRIGEMOTOR_Flag); 205 CARRIGEMOTOR_Flag = 0; 206 if(homeflag == !HOME_Pin) 207 break; 208 } 209 PrintDirect = 0; 210 CARRIGEMOTOR_Acce_Dece_11steps(1); 211 CARRIGEMOTOR_Acce_Dece_11steps(0); 212 CARRIGEMOTOR_Rush(); 213 CARRIGEMOTOR_Hold(); 214 PrintDirect = 1; 215 }*/ 216 217 void main() 218 { 219 1 Sens = 1; 220 1 PAPERMOTOR_Init(); 221 1 if(Sens) 222 1 { 223 2 PAPERMOTOR_SetStep(0); 224 2 } 225 1 // for(;;) 226 1 // { 227 1 PRN_Control &= 0x3f; 228 1 PAPERMOTOR_Move(0, 20); 229 1 // } 230 1 // PAPERMOTOR_Off(); 231 1 232 1 } 233 234 235 236 237 238 C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 5 ASSEMBLY LISTING OF GENERATED OBJECT CODE ; FUNCTION PAPERMOTOR_Init (BEGIN) ; SOURCE LINE # 33 ; SOURCE LINE # 34 ; SOURCE LINE # 36 0000 900000 R MOV DPTR,#LOW_PRN_ControlState 0003 E0 MOVX A,@DPTR 0004 5433 ANL A,#033H 0006 F0 MOVX @DPTR,A ; SOURCE LINE # 37 0007 44C0 ORL A,#0C0H 0009 F0 MOVX @DPTR,A ; SOURCE LINE # 38 000A C200 R CLR PAPERMOTOR_Flag ; SOURCE LINE # 40 000C 22 RET ; FUNCTION PAPERMOTOR_Init (END) ; FUNCTION _PH_Timer_Set (BEGIN) ; SOURCE LINE # 42 ;---- Variable 'PH_DATA' assigned to Register 'R4/R5' ---- 0000 AD07 MOV R5,AR7 0002 AC06 MOV R4,AR6 ; SOURCE LINE # 43 ; SOURCE LINE # 44 0004 EC MOV A,R4 0005 F4 CPL A 0006 04 INC A 0007 F58D MOV TH1,A ; SOURCE LINE # 45 0009 ED MOV A,R5 000A F4 CPL A 000B 04 INC A 000C F58B MOV TL1,A ; SOURCE LINE # 46 000E D2AB SETB ET1 ; SOURCE LINE # 47 0010 D28E SETB TR1 ; SOURCE LINE # 48 0012 22 RET ; FUNCTION _PH_Timer_Set (END) ; FUNCTION _PAPERMOTOR_Move (BEGIN) ; SOURCE LINE # 57 0000 8F00 R MOV Direc,R7 ;---- Variable 'Steps' assigned to Register 'R4/R5' ---- ; SOURCE LINE # 58 ; SOURCE LINE # 60 0002 8C00 R MOV PAPERSteps,R4 0004 8D00 R MOV PAPERSteps+01H,R5 ; SOURCE LINE # 61 0006 C200 R CLR PAPERMOTOR_Flag ; SOURCE LINE # 62 0008 120000 R LCALL PAPERMOTOR_On ; SOURCE LINE # 63 000B C3 CLR C 000C E500 R MOV A,PAPERSteps+01H 000E 9416 SUBB A,#016H 0010 E500 R MOV A,PAPERSteps 0012 9400 SUBB A,#00H C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 6 0014 5019 JNC ?C0003 ; SOURCE LINE # 64 ; SOURCE LINE # 65 0016 E4 CLR A 0017 F500 R MOV i,A 0019 F500 R MOV i+01H,A 001B ?C0004: 001B C3 CLR C 001C E500 R MOV A,i+01H 001E 9500 R SUBB A,PAPERSteps+01H 0020 E500 R MOV A,i 0022 9500 R SUBB A,PAPERSteps 0024 5054 JNC ?C0007 ; SOURCE LINE # 66 ; SOURCE LINE # 67 ; SOURCE LINE # 70 ; SOURCE LINE # 71 0026 120000 R LCALL L?0045 0029 70F0 JNZ ?C0004 002B 0500 R INC i 002D ?C0039: 002D 80EC SJMP ?C0004 ; SOURCE LINE # 72 002F ?C0003: ; SOURCE LINE # 74 ; SOURCE LINE # 75 002F E4 CLR A 0030 F500 R MOV i,A 0032 F500 R MOV i+01H,A 0034 ?C0008: ; SOURCE LINE # 76 ; SOURCE LINE # 77 ; SOURCE LINE # 80 ; SOURCE LINE # 81 0034 120000 R LCALL L?0045 0037 7002 JNZ ?C0040 0039 0500 R INC i 003B ?C0040: 003B C3 CLR C 003C 9414 SUBB A,#014H 003E E500 R MOV A,i 0040 9400 SUBB A,#00H 0042 40F0 JC ?C0008 0044 ?C0009: ; SOURCE LINE # 82 0044 E4 CLR A 0045 F500 R MOV i,A 0047 F500 R MOV i+01H,A 0049 ?C0011: 0049 E500 R MOV A,PAPERSteps+01H 004B 24EA ADD A,#0EAH 004D FF MOV R7,A 004E E500 R MOV A,PAPERSteps 0050 34FF ADDC A,#0FFH 0052 FE MOV R6,A 0053 C3 CLR C 0054 E500 R MOV A,i+01H 0056 9F SUBB A,R7 0057 E500 R MOV A,i 0059 9E SUBB A,R6 005A 5009 JNC ?C0012 ; SOURCE LINE # 83 C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 7 ; SOURCE LINE # 84 ; SOURCE LINE # 87 ; SOURCE LINE # 88 005C 120000 R LCALL L?0046 005F 70E8 JNZ ?C0011 0061 0500 R INC i 0063 ?C0041: 0063 80E4 SJMP ?C0011 0065 ?C0012: ; SOURCE LINE # 89 0065 E4 CLR A 0066 F500 R MOV i,A 0068 F500 R MOV i+01H,A 006A ?C0014: ; SOURCE LINE # 90 ; SOURCE LINE # 91 ; SOURCE LINE # 94 ; SOURCE LINE # 95 006A 120000 R LCALL L?0046 006D 7002 JNZ ?C0042 006F 0500 R INC i 0071 ?C0042: 0071 C3 CLR C 0072 9402 SUBB A,#02H 0074 E500 R MOV A,i 0076 9400 SUBB A,#00H 0078 40F0 JC ?C0014 ; SOURCE LINE # 96 007A ?C0007: ; SOURCE LINE # 97 007A 020000 R LJMP PAPERMOTOR_Off ; SOURCE LINE # 98 007D L?0045: 007D AF00 R MOV R7,Direc 007F 120000 R LCALL _PAPERMOTOR_SetStep 0082 C200 R CLR PAPERMOTOR_Flag 0084 0500 R INC i+01H 0086 E500 R MOV A,i+01H 0088 22 RET 0089 L?0046: 0089 AF00 R MOV R7,Direc 008B 120000 R LCALL _PAPERMOTOR_SetStep 008E C200 R CLR PAPERMOTOR_Flag 0090 0500 R INC i+01H 0092 E500 R MOV A,i+01H 0094 22 RET ; FUNCTION _PAPERMOTOR_Move (END) ; FUNCTION _PAPERMOTOR_SetStep (BEGIN) ; SOURCE LINE # 102 0000 8F00 R MOV Papermove_Direc,R7 ; SOURCE LINE # 103 ; SOURCE LINE # 106 0002 7800 R MOV R0,#LOW PH_State 0004 7C00 R MOV R4,#HIGH PH_State 0006 7D00 MOV R5,#00H 0008 7BFF MOV R3,#0FFH 000A 7A00 R MOV R2,#HIGH _?ix1000 000C 7900 R MOV R1,#LOW _?ix1000 000E 7E00 MOV R6,#00H 0010 7F05 MOV R7,#05H 0012 120000 E LCALL ?C?COPY C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 8 ; SOURCE LINE # 108 0015 900000 R MOV DPTR,#LOW_PRN_ControlState 0018 E0 MOVX A,@DPTR 0019 FF MOV R7,A ;---- Variable 'temp' assigned to Register 'R7' ---- ; SOURCE LINE # 109 001A 53070C ANL AR7,#0CH ; SOURCE LINE # 110 001D E500 R MOV A,Papermove_Direc 001F 6019 JZ ?C0018 ; SOURCE LINE # 111 ; SOURCE LINE # 112 0021 E4 CLR A 0022 F500 R MOV i,A 0024 ?C0019: ; SOURCE LINE # 113 ; SOURCE LINE # 114 0024 7400 R MOV A,#LOW PH_State 0026 2500 R ADD A,i 0028 F8 MOV R0,A 0029 E6 MOV A,@R0 002A B50704 CJNE A,AR7,?C0021 ; SOURCE LINE # 115 ; SOURCE LINE # 116 002D 7400 R MOV A,#LOW PH_State+01H ; SOURCE LINE # 117 002F 8017 SJMP ?C0044 ; SOURCE LINE # 118 ; SOURCE LINE # 119 0031 ?C0021: 0031 0500 R INC i 0033 E500 R MOV A,i 0035 B405EC CJNE A,#05H,?C0019 0038 8018 SJMP ?C0023 ; SOURCE LINE # 120 003A ?C0018: ; SOURCE LINE # 122 ; SOURCE LINE # 123 003A 750004 R MOV i,#04H 003D ?C0024: ; SOURCE LINE # 124 ; SOURCE LINE # 125 003D 7400 R MOV A,#LOW PH_State 003F 2500 R ADD A,i 0041 F8 MOV R0,A 0042 E6 MOV A,@R0 0043 B50709 CJNE A,AR7,?C0026 ; SOURCE LINE # 126 ; SOURCE LINE # 127 0046 7400 R MOV A,#LOW PH_State+0FFFFH 0048 ?C0044: 0048 2500 R ADD A,i 004A F8 MOV R0,A 004B E6 MOV A,@R0 004C FF MOV R7,A ; SOURCE LINE # 128 004D 8003 SJMP ?C0023 ; SOURCE LINE # 129 ; SOURCE LINE # 130 004F ?C0026: 004F D500EB R DJNZ i,?C0024 ; SOURCE LINE # 131 C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 9 0052 ?C0023: ; SOURCE LINE # 132 0052 900000 R MOV DPTR,#LOW_PRN_ControlState 0055 E0 MOVX A,@DPTR 0056 54F3 ANL A,#0F3H 0058 F0 MOVX @DPTR,A ; SOURCE LINE # 133 0059 4F ORL A,R7 005A F0 MOVX @DPTR,A ; SOURCE LINE # 134 005B 904000 MOV DPTR,#04000H 005E F0 MOVX @DPTR,A ; SOURCE LINE # 135 005F 22 RET ; FUNCTION _PAPERMOTOR_SetStep (END) ; FUNCTION PAPERMOTOR_On (BEGIN) ; SOURCE LINE # 137 ; SOURCE LINE # 138 ; SOURCE LINE # 139 0000 120000 R LCALL PAPERMOTOR_Hold ; SOURCE LINE # 140 0003 020000 R LJMP PAPERMOTOR_Rush ; FUNCTION PAPERMOTOR_On (END) ; FUNCTION PAPERMOTOR_Off (BEGIN) ; SOURCE LINE # 143 ; SOURCE LINE # 144 ; SOURCE LINE # 145 0000 120000 R LCALL PAPERMOTOR_Rush ; SOURCE LINE # 146 0003 020000 R LJMP PAPERMOTOR_Hold ; FUNCTION PAPERMOTOR_Off (END) ; FUNCTION Delay_6ms (BEGIN) ; SOURCE LINE # 149 ; SOURCE LINE # 150 ; SOURCE LINE # 152 ;---- Variable 'i' assigned to Register 'R6/R7' ---- 0000 E4 CLR A 0001 FF MOV R7,A 0002 FE MOV R6,A 0003 ?C0031: 0003 0F INC R7 0004 BF0001 CJNE R7,#00H,?C0043 0007 0E INC R6 0008 ?C0043: 0008 BE0BF8 CJNE R6,#0BH,?C0031 000B BF33F5 CJNE R7,#033H,?C0031 ; SOURCE LINE # 153 000E ?C0034: 000E 22 RET ; FUNCTION Delay_6ms (END) ; FUNCTION PAPERMOTOR_Hold (BEGIN) ; SOURCE LINE # 155 ; SOURCE LINE # 156 ; SOURCE LINE # 157 0000 900000 R MOV DPTR,#LOW_PRN_ControlState 0003 E0 MOVX A,@DPTR 0004 543F ANL A,#03FH 0006 F0 MOVX @DPTR,A C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 10 ; SOURCE LINE # 158 0007 4480 ORL A,#080H 0009 F0 MOVX @DPTR,A ; SOURCE LINE # 159 000A 904000 MOV DPTR,#04000H 000D F0 MOVX @DPTR,A ; SOURCE LINE # 160 000E 020000 R LJMP Delay_6ms ; FUNCTION PAPERMOTOR_Hold (END) ; FUNCTION PAPERMOTOR_Rush (BEGIN) ; SOURCE LINE # 163 ; SOURCE LINE # 164 ; SOURCE LINE # 165 0000 900000 R MOV DPTR,#LOW_PRN_ControlState 0003 E0 MOVX A,@DPTR 0004 543F ANL A,#03FH 0006 F0 MOVX @DPTR,A ; SOURCE LINE # 166 0007 904000 MOV DPTR,#04000H 000A F0 MOVX @DPTR,A ; SOURCE LINE # 167 000B 020000 R LJMP Delay_6ms ; FUNCTION PAPERMOTOR_Rush (END) ; FUNCTION main (BEGIN) ; SOURCE LINE # 217 ; SOURCE LINE # 218 ; SOURCE LINE # 219 0000 D297 SETB Sens ; SOURCE LINE # 220 0002 120000 R LCALL PAPERMOTOR_Init ; SOURCE LINE # 221 0005 309705 JNB Sens,?C0037 ; SOURCE LINE # 222 ; SOURCE LINE # 223 0008 E4 CLR A 0009 FF MOV R7,A 000A 120000 R LCALL _PAPERMOTOR_SetStep ; SOURCE LINE # 224 000D ?C0037: ; SOURCE LINE # 227 000D 904000 MOV DPTR,#04000H 0010 E0 MOVX A,@DPTR 0011 543F ANL A,#03FH 0013 F0 MOVX @DPTR,A ; SOURCE LINE # 228 0014 7D14 MOV R5,#014H 0016 7C00 MOV R4,#00H 0018 E4 CLR A 0019 FF MOV R7,A 001A 020000 R LJMP _PAPERMOTOR_Move ; FUNCTION main (END) MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 364 ---- CONSTANT SIZE = 49 ---- XDATA SIZE = 1 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- 12 C51 COMPILER V7.20 MAIN 04/30/2006 10:52:20 PAGE 11 IDATA SIZE = ---- ---- BIT SIZE = 3 ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)