📄 scan.lst
字号:
C51 COMPILER V7.06 SCAN 01/19/2007 08:32:20 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SCAN
OBJECT MODULE PLACED IN SCAN.OBJ
COMPILER INVOKED BY: E:\Keil Cx51 V7.0\C51\BIN\C51.EXE SCAN.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<stdio.h>
2 #include<reg51.h>
3 #include<absacc.h>
4 #include<intrins.h>
5
6 #define P8255CW 0xffe0
7 #define P8255IA 0xff20
8 #define P8255IB 0xff60
9 #define P8255IC 0xffa0
10
11 unsigned char xdata pa[18][8]=0x0000;
12 unsigned char xdata pb[18][8]=0x0090;
13 unsigned char xdata pc[18][8]=0x0120;
14
15 unsigned char a[18],b[18],c[18];
16
17 unsigned char temp0,temp1,d=0;
18 unsigned short xdata *s=0x01b0;
19
20 void initialize8255(void)
21 {
22 1 unsigned char k;
23 1 for(k=0;k<18;k++)
24 1 {
25 2 XBYTE[P8255CW+k]=0x80;
26 2 }
27 1 }
28
29 void mapping(void)
30 {
31 1 unsigned char k,l;
32 1 for(k=0;k<18;k++)
33 1 {
34 2 for(l=0;l<8;l++)
35 2 {
36 3 pa[k][l]=_cror_(a[k],l)&0x01;
37 3 pb[k][l]=_cror_(b[k],l)&0x01;
38 3 pc[k][l]=_cror_(c[k],l)&0x01;
39 3 }
40 2 }
41 1 }
42
43 void two_pnts_conn1(void)
44 {
45 1 unsigned char i,j;
46 1 for(j=temp1+1;j<8;j++)
47 1 {
48 2 if(pa[temp0][j]==1)
49 2 {
50 3 s+=d;
51 3 *s=8*temp0+temp1+1;
52 3 s++;
53 3 d++;
54 3 *s=8*temp0+j+1;
55 3 s+=2;
C51 COMPILER V7.06 SCAN 01/19/2007 08:32:20 PAGE 2
56 3 d+=2;
57 3 }
58 2 else continue;
59 2 }
60 1 for(i=temp0+1;i<18;i++)
61 1 {
62 2 for(j=0;j<8;j++)
63 2 {
64 3 if(pa[i][j]==1)
65 3 {
66 4 s+=d;
67 4 *s=8*temp0+temp1+1;
68 4 s++;
69 4 d++;
70 4 *s=8*i+j+1;
71 4 s+=2;
72 4 d+=2;
73 4 }
74 3 else continue;
75 3 }
76 2 }
77 1 for(i=0;i<18;i++)
78 1 {
79 2 for(j=0;j<8;j++)
80 2 {
81 3 if(pb[i][j]==1)
82 3 {
83 4 s+=d;
84 4 *s=8*temp0+temp1+1;
85 4 s++;
86 4 d++;
87 4 *s=8*i+j+145;
88 4 s+=2;
89 4 d+=2;
90 4 }
91 3 else if(pc[i][j]==1)
92 3 {
93 4 s+=d;
94 4 *s=8*temp0+temp1+1;
95 4 s++;
96 4 d++;
97 4 *s=8*i+j+289;
98 4 s+=2;
99 4 d+=2;
100 4 }
101 3 else continue;
102 3 }
103 2 }
104 1 }
105
106 void two_pnts_conn2(void)
107 {
108 1 unsigned char i,j;
109 1 for(j=temp1+1;j<8;j++)
110 1 {
111 2 if(pb[temp0][j]==1)
112 2 {
113 3 s+=d;
114 3 *s=8*temp0+temp1+145;
115 3 s++;
116 3 d++;
117 3 *s=8*temp0+j+145;
C51 COMPILER V7.06 SCAN 01/19/2007 08:32:20 PAGE 3
118 3 s+=2;
119 3 d+=2;
120 3 }
121 2 else continue;
122 2 }
123 1 for(i=temp0+1;i<18;i++)
124 1 {
125 2 for(j=0;j<8;j++)
126 2 {
127 3 if(pb[i][j]==1)
128 3 {
129 4 s+=d;
130 4 *s=8*temp0+temp1+145;
131 4 s++;
132 4 d++;
133 4 *s=8*i+j+145;
134 4 s+=2;
135 4 d+=2;
136 4 }
137 3 else continue;
138 3 }
139 2 }
140 1 for(i=0;i<18;i++)
141 1 {
142 2 for(j=0;j<8;j++)
143 2 {
144 3 if(pc[i][j]==1)
145 3 {
146 4 s+=d;
147 4 *s=8*temp0+temp1+145;
148 4 s++;
149 4 d++;
150 4 *s=8*i+j+289;
151 4 s+=2;
152 4 d+=2;
153 4 }
154 3 else continue;
155 3 }
156 2 }
157 1 }
158
159 void two_pnts_conn3(void)
160 {
161 1 unsigned char i,j;
162 1 for(j=temp1+1;j<8;j++)
163 1 {
164 2 if(pc[temp0][j]==1)
165 2 {
166 3 s+=d;
167 3 *s=8*temp0+temp1+289;
168 3 s++;
169 3 d++;
170 3 *s=8*temp0+j+289;
171 3 s+=2;
172 3 d+=2;
173 3 }
174 2 else continue;
175 2 }
176 1 for(i=temp0+1;i<18;i++)
177 1 {
178 2 for(j=0;j<8;j++)
179 2 {
C51 COMPILER V7.06 SCAN 01/19/2007 08:32:20 PAGE 4
180 3 if(pc[i][j]==1)
181 3 {
182 4 s+=d;
183 4 *s=8*temp0+temp1+289;
184 4 s++;
185 4 d++;
186 4 *s=8*i+j+289;
187 4 s+=2;
188 4 d+=2;
189 4 }
190 3 else continue;
191 3 }
192 2 }
193 1 }
194
195 void thr_fou_pnts_conn1(void)
196 {
197 1 unsigned char i,j,k,l,m=0;
198 1 for(j=temp1+1;j<8;j++)
199 1 {
200 2 for(k=0;k<18;k++)
201 2 {
202 3 XBYTE[P8255CW+k]=0x80;
203 3 }
204 2 XBYTE[P8255IA+temp0]=_crol_(0x01,temp1)|_crol_(0x01,j);
205 2 for(k=0;k<18;k++)
206 2 {
207 3 a[k]=XBYTE[P8255IA+k];
208 3 b[k]=XBYTE[P8255IB+k];
209 3 c[k]=XBYTE[P8255IC+k];
210 3 }
211 2 for(k=0;k<18;k++)
212 2 {
213 3 for(l=0;l<8;l++)
214 3 {
215 4 pa[k][l]=_cror_(a[k],l)&0x01;
216 4 pb[k][l]=_cror_(b[k],l)&0x01;
217 4 pc[k][l]=_cror_(c[k],l)&0x01;
218 4 }
219 3 }
220 2 if(pa[temp0][temp1]==1)
221 2 {
222 3 for(j=temp1+1;j<8;j++)
223 3 {
224 4 if(pa[temp0][j]==1)
225 4 {
226 5 *s=8*temp0+j+1;
227 5 s++;
228 5 m++;
229 5 d++;
230 5 }
231 4 else continue;
232 4 }
233 3 for(i=temp0+1;i<18;i++)
234 3 {
235 4 for(j=0;j<8;j++)
236 4 {
237 5 if(pa[i][j]==1)
238 5 {
239 6 *s=8*i+j+1;
240 6 s++;
241 6 m++;
C51 COMPILER V7.06 SCAN 01/19/2007 08:32:20 PAGE 5
242 6 d++;
243 6 }
244 5 else continue;
245 5 }
246 4 }
247 3 for(i=0;i<18;i++)
248 3 {
249 4 for(j=0;j<8;j++)
250 4 {
251 5 if(pb[i][j]==1)
252 5 {
253 6 *s=8*i+j+145;
254 6 s++;
255 6 m++;
256 6 d++;
257 6 }
258 5 else if(pc[i][j]==1)
259 5 {
260 6 *s=8*i+j+289;
261 6 s++;
262 6 m++;
263 6 d++;
264 6 }
265 5 continue;
266 5 }
267 4 }
268 3 if(m>=2)
269 3 {
270 4 *s=8*temp0+temp1+1;
271 4 s+=2;
272 4 d+=2;
273 4 }
274 3 }
275 2 else continue;
276 2 }
277 1 if(m==0)
278 1 {
279 2 for(i=temp0+1;i<18;i++)
280 2 {
281 3 for(j=0;j<8;j++)
282 3 {
283 4 for(k=0;k<18;k++)
284 4 {
285 5 XBYTE[P8255CW+k]=0x80;
286 5 }
287 4 XBYTE[P8255IA+temp0]=_crol_(0x01,temp1);
288 4 XBYTE[P8255IA+i]=_crol_(0x01,j);
289 4 for(k=0;k<18;k++)
290 4 {
291 5 a[k]=XBYTE[P8255IA+k];
292 5 b[k]=XBYTE[P8255IB+k];
293 5 c[k]=XBYTE[P8255IC+k];
294 5 }
295 4 for(k=0;k<18;k++)
296 4 {
297 5 for(l=0;l<8;l++)
298 5 {
299 6 pa[k][l]=_cror_(a[k],l)&0x01;
300 6 pb[k][l]=_cror_(b[k],l)&0x01;
301 6 pc[k][l]=_cror_(c[k],l)&0x01;
302 6 }
303 5 }
C51 COMPILER V7.06 SCAN 01/19/2007 08:32:20 PAGE 6
304 4 if(pa[temp0][temp1]==1)
305 4 {
306 5 for(i=temp0+1;i<18;i++)
307 5 {
308 6 for(j=0;j<8;j++)
309 6 {
310 7 if(pa[i][j]==1)
311 7 {
312 8 *s=8*i+j+1;
313 8 s++;
314 8 m++;
315 8 d++;
316 8 }
317 7 else continue;
318 7 }
319 6 }
320 5 for(i=0;i<18;i++)
321 5 {
322 6 for(j=0;j<8;j++)
323 6 {
324 7 if(pb[i][j]==1)
325 7 {
326 8 *s=8*i+j+145;
327 8 s++;
328 8 m++;
329 8 d++;
330 8 }
331 7 else if(pc[i][j]==1)
332 7 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -