📄 printer.lst
字号:
C51 COMPILER V7.20 PRINTER 01/13/2005 21:43:50 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE PRINTER
OBJECT MODULE PLACED IN Printer.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Printer.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //#include <x25045.h>
2
3 sbit Pfeedback = 0xa0; /* 打印机脉冲信号 */
4 sbit Preset = 0xa1; /* 打印机复位信号 */
5 sbit Ppaper = 0xa2; /* 打印纸测试 */
6
7 sbit Print4 = 0x87; /* 打印机一针 */
8 sbit Print3 = 0x86; /* 打印机二针 */
9 sbit Print2 = 0x85; /* 打印机三针 */
10 sbit Print1 = 0x84; /* 打印机四针 */
11 sbit Motor = 0x83; /* 打印机马达控制 */
12
13 char code CharLib[]={0x3e,0x45,0x49,0x51,0x3e,0,/* 0 */
14 0x00,0x21,0x7f,0x01,0x00,0,/* 1 */
15 0x21,0x43,0x45,0x49,0x31,0,/* 2 */
16 0x42,0x41,0x51,0x69,0x46,0,/* 3 */
17 0x0c,0x14,0x24,0x7f,0x04,0,/* 4 */
18 0x72,0x51,0x51,0x51,0x4e,0,/* 5 */
19 0x1e,0x29,0x49,0x49,0x06,0,/* 6 */
20 0x40,0x47,0x48,0x50,0x60,0,/* 7 */
21 0x36,0x49,0x49,0x49,0x36,0,/* 8 */
22 0x30,0x49,0x49,0x4a,0x3c,0,/* 9 */
23 0x00,0x00,0x00,0x00,0x00,0,/* 空格 */
24 0x3f,0x44,0x44,0x44,0x3f,0,/* A */
25 0x7f,0x49,0x49,0x49,0x36,0,/* B */
26 0x3e,0x41,0x41,0x41,0x22,0,/* C */
27 0x7f,0x41,0x41,0x22,0x1c,0,/* D */
28 0x7f,0x49,0x49,0x49,0x41,0,/* E */
29 0x7f,0x48,0x48,0x48,0x40,0,/* F */
30 0x3e,0x41,0x49,0x49,0x2f,0,/* G */
31 0x7f,0x08,0x08,0x08,0x7f,0,/* H */
32 0x00,0x41,0x7f,0x41,0x00,0,/* I */
33 0x02,0x01,0x41,0x7e,0x40,0,/* J */
34 0x7f,0x08,0x14,0x22,0x41,0,/* K */
35 0x7f,0x01,0x01,0x01,0x01,0,/* L */
36 0x7f,0x20,0x18,0x20,0x7f,0,/* M */
37 0x7f,0x10,0x08,0x04,0x7f,0,/* N */
38 0x3e,0x41,0x41,0x41,0x3e,0,/* O */
39 0x7f,0x48,0x48,0x48,0x30,0,/* P */
40 0x3e,0x41,0x45,0x42,0x3d,0,/* Q */
41 0x7f,0x48,0x4c,0x4a,0x31,0,/* R */
42 0x31,0x49,0x49,0x49,0x46,0,/* S */
43 0x40,0x40,0x7f,0x40,0x40,0,/* T */
44 0x7e,0x01,0x01,0x01,0x7e,0,/* U */
45 0x7c,0x02,0x01,0x02,0x7c,0,/* V */
46 0x7e,0x01,0x0e,0x01,0x7e,0,/* W */
47 0x63,0x14,0x08,0x14,0x63,0,/* X */
48 0x70,0x08,0x07,0x08,0x70,0,/* Y */
49 0x43,0x45,0x49,0x51,0x61,0,/* Z */
50 0x12,0x2e,0x6a,0x3f,0x2a,0,/* 年 */
51 0x01,0x7e,0x54,0x55,0x7f,0,/* 月 */
52 0x00,0x7f,0x49,0x49,0x7f,0,/* 日 */
53 0x11,0x5e,0x50,0x5f,0x11,0,/* 元 */
54 0x13,0x65,0x49,0x65,0x13,0,/* 公 */
55 0x7d,0x57,0x7f,0x57,0x7d,0,/* 里 */
C51 COMPILER V7.20 PRINTER 01/13/2005 21:43:50 PAGE 2
56 0x00,0x36,0x36,0x00,0x00,0,/* : */
57 0x00,0x03,0x03,0x00,0x00,0,/* . */
58 0x08,0x08,0x08,0x08,0x08,0 /* - */
59 };
60
61 void InitialPrinter(void) /* 打印机初始化 */
62 {
63 1 Print4=Print3=Print2=Print1=Motor=1; /* 马达和打印针断电 */
64 1 }
65
66 void PrintFree(char Number) /* 打印空行 */
67 {
68 1 register i;
69 1 while(Number > 0){ /* 空行未结束继续 */
70 2 Motor = 0; /* 启动马达 */
71 2 Preset = 1; /* 测试复位信号 */
72 2 while(Preset){ /* 一行一个复位信号 */
73 3 #if WatchdogEn==1
*** WARNING C322 IN LINE 73 OF Printer.c: unknown identifier
Watchdog();
#else
76 3 ;
77 3 #endif
78 3 }
79 2 while(!Preset){
80 3 #if WatchdogEn==1
*** WARNING C322 IN LINE 80 OF Printer.c: unknown identifier
Watchdog();
#else
83 3 ;
84 3 #endif
85 3 }
86 2 Motor = 1; /* 关闭马达 */
87 2 Number--;
88 2 for(i=120;i>0;i--);
89 2 }
90 1 }
91
92 void PaperIn(void) /* 开始进纸 */
93 {
94 1 Motor = 0;
95 1 #if WatchdogEn==1
*** WARNING C322 IN LINE 95 OF Printer.c: unknown identifier
Watchdog();
#endif
98 1 }
99
100 bit PrintTest(void) /* 测试打印机 */
101 {
102 1 uint i = 2000;
*** ERROR C202 IN LINE 102 OF PRINTER.C: 'uint': undefined identifier
*** ERROR C141 IN LINE 102 OF PRINTER.C: syntax error near 'i'
103 1 Motor = 0;
104 1 while(Pfeedback){
105 2 #if WatchdogEn==1
*** WARNING C322 IN LINE 105 OF Printer.c: unknown identifier
Watchdog();
#endif
108 2 if(--i == 0) goto Perror;
*** ERROR C202 IN LINE 108 OF PRINTER.C: 'i': undefined identifier
109 2 }
110 1 while(!Pfeedback){
C51 COMPILER V7.20 PRINTER 01/13/2005 21:43:50 PAGE 3
111 2 #if WatchdogEn==1
*** WARNING C322 IN LINE 111 OF Printer.c: unknown identifier
Watchdog();
#endif
114 2 if(--i == 0) goto Perror;
*** ERROR C202 IN LINE 114 OF PRINTER.C: 'i': undefined identifier
115 2 }
116 1 Motor = 1;
117 1 return(TRUE);
*** ERROR C202 IN LINE 117 OF PRINTER.C: 'TRUE': undefined identifier
118 1 Perror:
119 1 Motor = 1;
120 1 return(FALSE);
*** ERROR C202 IN LINE 120 OF PRINTER.C: 'FALSE': undefined identifier
121 1 }
122
123 void Printer(BYTE idata *Index) /* M150打印机控制 */
*** ERROR C141 IN LINE 123 OF PRINTER.C: syntax error near 'idata', expected ')'
124 {
125 1 char i,j,k,l;
126 1 bit pin=1;
127 1 bit sample = 1;
128 1 Motor = 0; /* 启动马达 */
129 1 for(i=0;i<8;i++){ /* 一个字符八行 */
130 2 Watchdog();
131 2 Preset = 1; /* 测试复位信号 */
132 2 while(Preset){ /* 信号上跳变为开始 */
133 3 if (WatchdogEn==1)
134 3 {Watchdog();}
135 3
136 3 }
137 2 while(!Preset){
138 3 // #if WatchdogEn==1
139 3 // Watchdog();
140 3 // #else
141 3 ;
142 3 // #endif
143 3 }
144 2 for(j=0;j<4;j++){ /* 一根针控制四字符 */
145 3 for(k=0;k<6;k++){ /* 一个字符为六列 */
146 4 for(l=0;l<4;l++){ /* 四根针轮流控制 */
147 5 Pfeedback = 1; /* 测试针控信号 */
148 5 if(sample){ /* 上下跳变轮流 */
149 6 while(Pfeedback){
150 7 // #if WatchdogEn==1
151 7 // Watchdog();
152 7 // #else
153 7 ;
154 7 // #endif
155 7 }
156 6 }
157 5 else{
158 6 while(!Pfeedback){
159 7 // #if WatchdogEn==1
160 7 // Watchdog();
161 7 // #else
162 7 //
163 7 ;
164 7 // #endif
165 7 }
166 6 }
167 5 sample = !sample; /* 测试位取反 */
C51 COMPILER V7.20 PRINTER 01/13/2005 21:43:50 PAGE 4
168 5 pin = (bit)((CharLib[(WORD)((WORD)(*(Index + l * 4 + j)) * 6 + k)] << i) & 0x80);
169 5 /* 取打印点数据 */
170 5 Print4 = Print3 = Print2 = Print1 = 1;/* 打印针断电 */
171 5 switch(l){
172 6 case 0: Print4 = !pin; break; /* 打印针通电 */
173 6 case 1: Print3 = !pin; break;
174 6 case 2: Print2 = !pin; break;
175 6 case 3: Print1 = !pin; break;
176 6 }
177 5 }
178 4 }
179 3 }
180 2 }
181 1 InitialPrinter(); /* 打印机初始化 */
182 1 PrintFree(10);
183 1 }
184
185
C51 COMPILATION COMPLETE. 5 WARNING(S), 7 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -