📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 05/22/2007 11:48:59 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil 8.08\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 typedef unsigned char BYTE;
3
4 sbit P10=P1^0;
5 sbit P17=P1^7;
6
7 sbit P20=P2^0;
8 sbit P21=P2^1;
9 sbit P22=P2^2;
10 sbit P23=P2^3;
11 sbit P24=P2^4;
12 sbit P25=P2^5;
13 sbit P26=P2^6;
14 sbit P27=P2^7;
15
16 sbit P30=P3^0;
17 sbit P31=P3^1;
18 sbit P32=P3^2;
19 sbit P33=P3^3;
20 sbit P34=P3^4;
21 sbit P35=P3^5;
22 sbit P36=P3^6;
23 sbit P37=P3^7;
24
25
26 BYTE LED_BIT_1;
27 BYTE LED_BIT_2;
28 BYTE LED_BIT_3;
29 BYTE LED_BIT_4;
30 BYTE LED_BIT_5;
31 BYTE LED_BIT_6;
32 BYTE LED_BIT_7;
33 BYTE LED_BIT_8;
34
35 BYTE WORD_1;
36 BYTE WORD_2;
37 BYTE WORD_3;
38 BYTE WORD_4;
39 BYTE WORD_5;
40 BYTE WORD_6;
41
42 BYTE KEY_1;
43 BYTE KEY_2;
44 BYTE KEY_3;
45 BYTE KEY_4;
46 BYTE KEY_5;
47 BYTE KEY_6;
48
49 BYTE CNT_A;
50 BYTE CNT_B;
51 BYTE KEY_CNT;
52 BYTE LINE;
53 BYTE ROW;
54 BYTE VAL;
55
C51 COMPILER V8.08 MAIN 05/22/2007 11:48:59 PAGE 2
56 void INT_T0();
57 void SHIFTL();
58 void SHIFTR();
59 void DISP();
60 void DLY_S();
61 void DLY_L();
62 void ALARM_1();
63 void ALARM_2();
64
65
66
67 main()
68 {
69 1 START:
70 1 CNT_A=0x00;
71 1 CNT_B=0x00;
72 1 KEY_CNT=0x00;
73 1 LINE=0x00;
74 1 ROW=0x00;
75 1 VAL=0x00;
76 1 P10=1;
77 1
78 1 LED_BIT_1=0x00;
79 1 LED_BIT_2=0x00;
80 1 LED_BIT_3=0x00;
81 1 LED_BIT_4=0x00;
82 1 LED_BIT_5=0x00;
83 1 LED_BIT_6=0x00;
84 1 LED_BIT_7=0x79;
85 1 LED_BIT_8=0x73;
86 1
87 1 KEY_1=0x00;
88 1 KEY_2=0x00;
89 1 KEY_3=0x00;
90 1 KEY_4=0x00;
91 1 KEY_5=0x00;
92 1 KEY_6=0x00;
93 1
94 1 WORD_1=6;
95 1 WORD_2=5;
96 1 WORD_3=4;
97 1 WORD_4=3;
98 1 WORD_5=2;
99 1 WORD_6=1;
100 1
101 1 TMOD=1;
102 1 TH0=(65536-700)/256;
103 1 TL0=(65536-700)%256;
104 1 IE=0x82;
105 1 A0:
106 1 while(1)
107 1 {
108 2 DISP();
109 2 P3=0xF0;
110 2
111 2 if(P30)
112 2 {
113 3 DLY_S();
114 3 if(P30)
115 3 {
116 4 LINE=0x00; break;
117 4 }
C51 COMPILER V8.08 MAIN 05/22/2007 11:48:59 PAGE 3
118 3 }
119 2 else if(P31)
120 2 {
121 3 DLY_S();
122 3 if(P31)
123 3 {
124 4 LINE=0x01; break;
125 4 }
126 3 }
127 2 else if(P32)
128 2 {
129 3 DLY_S();
130 3 if(P32)
131 3 {
132 4 LINE=0x02; break;
133 4 }
134 3 }
135 2 else if(P33)
136 2 {
137 3 DLY_S();
138 3 if(P33)
139 3 {
140 4 LINE=0x03; break;
141 4 }
142 3 }
143 2 }//end while
144 1
145 1 while(1)
146 1 {
147 2 P3=0x0F;
148 2 if(P34)
149 2 {
150 3 ROW=0x00; break;
151 3 }
152 2 else if(P35)
153 2 {
154 3 ROW=0x01; break;
155 3 }
156 2 else if(P36)
157 2 {
158 3 ROW=0x02; break;
159 3 }
160 2 }
161 1
162 1 VAL=LINE*3+ROW;
163 1
164 1 if(VAL==0x0A)
165 1 {
166 2 if(KEY_CNT==0x00)
167 2 {
168 3 ALARM_1();
169 3 goto START;
170 3 }
171 2 else
172 2 {
173 3 SHIFTR();
174 3 KEY_CNT--;
175 3
176 3 while(1)
177 3 {
178 4 DISP();
179 4 if(P3==0x0F||P3==0xF0)
C51 COMPILER V8.08 MAIN 05/22/2007 11:48:59 PAGE 4
180 4 goto A0;
181 4 }
182 3 }
183 2 }
184 1 else
185 1 {
186 2 if(VAL==0x0B)
187 2 {
188 3 if(KEY_CNT==0x06)
189 3 {
190 4 if(WORD_1==KEY_1&&WORD_2==KEY_2&&
191 4 WORD_3==KEY_3&&WORD_4==KEY_4&&
192 4 WORD_5==KEY_5&&WORD_6==KEY_6)
193 4 {
194 5 P10=~P10;
195 5 DLY_L();
196 5 // LJMP FINI
197 5 }
198 4 else
199 4 {
200 5 ALARM_2();
201 5 goto START;
202 5 }
203 4 }
204 3 else
205 3 {
206 4 ALARM_1();
207 4 goto START;
208 4 }
209 3 }
210 2 else
211 2 {
212 3 KEY_CNT++;
213 3 if(KEY_CNT==0x07)
214 3 {
215 4 ALARM_1();
216 4
217 4 while(1)
218 4 {
219 5 DISP();
220 5 if(P3==0x0F||P3==0xF0)
221 5 goto START;
222 5 }
223 4 }
224 3 else
225 3 {
226 4 SHIFTL();
227 4
228 4 while(1)
229 4 {
230 5 DISP();
231 5 if(P3==0x0F||P3==0xF0)
232 5 goto A0;
233 5 }
234 4 }
235 3 }
236 2 }
237 1
238 1 }
239
240
241 void INT_T0() interrupt 1
C51 COMPILER V8.08 MAIN 05/22/2007 11:48:59 PAGE 5
242 {
243 1 P17=~P17;
244 1 TH0=(65536-700)/256;
245 1 TL0=(65536-700)%256;
246 1 CNT_A++;
247 1
248 1 if(CNT_A==30)
249 1 {
250 2 CNT_A=0;
251 2
252 2 CNT_B++;
253 2 if(CNT_B==20)
254 2 {
255 3 CNT_A=0;
256 3 CNT_B=0;
257 3 TR0=0;
258 3 }
259 2 }
260 1 }
261
262 void SHIFTL()
263 {
264 1 LED_BIT_6=LED_BIT_5;
265 1 LED_BIT_5=LED_BIT_4;
266 1 LED_BIT_4=LED_BIT_3;
267 1 LED_BIT_3=LED_BIT_2;
268 1 LED_BIT_2=LED_BIT_1;
269 1 LED_BIT_1=0x40;
270 1 KEY_6=KEY_5;
271 1 KEY_5=KEY_4;
272 1 KEY_4=KEY_3;
273 1 KEY_3=KEY_2;
274 1 KEY_2=KEY_1;
275 1 KEY_1=VAL;
276 1 }
277
278 void SHIFTR()
279 {
280 1 LED_BIT_1=LED_BIT_2;
281 1 LED_BIT_2=LED_BIT_3;
282 1 LED_BIT_3=LED_BIT_4;
283 1 LED_BIT_4=LED_BIT_5;
284 1 LED_BIT_5=LED_BIT_6;
285 1 LED_BIT_6=0x00;
286 1 KEY_1=KEY_2;
287 1 KEY_2=KEY_3;
288 1 KEY_3=KEY_4;
289 1 KEY_4=KEY_5;
290 1 KEY_5=KEY_6;
291 1 KEY_6=0x00;
292 1 }
293
294 void DISP()
295 {
296 1 P27=0;
297 1 P0=LED_BIT_8;
298 1 DLY_S();
299 1 P27=1;
300 1
301 1 P26=0;
302 1 P0=LED_BIT_7;
303 1 DLY_S();
C51 COMPILER V8.08 MAIN 05/22/2007 11:48:59 PAGE 6
304 1 P26=1;
305 1
306 1 P25=0;
307 1 P0=LED_BIT_6;
308 1 DLY_S();
309 1 P25=1;
310 1
311 1 P24=0;
312 1 P0=LED_BIT_5;
313 1 DLY_S();
314 1 P24=1;
315 1
316 1 P23=0;
317 1 P0=LED_BIT_4;
318 1 DLY_S();
319 1 P23=1;
320 1
321 1 P22=0;
322 1 P0=LED_BIT_3;
323 1 DLY_S();
324 1 P22=1;
325 1
326 1 P21=0;
327 1 P0=LED_BIT_2;
328 1 DLY_S();
329 1 P21=1;
330 1
331 1 P20=0;
332 1 P0=LED_BIT_1;
333 1 DLY_S();
334 1 P20=1;
335 1 }
336
337 void DLY_S()
338 {
339 1 BYTE i=10;
340 1 do
341 1 {
342 2 BYTE j=250;
343 2 do
344 2 {}while(--j);
345 2 }while(--i);
346 1 }
347
348 void DLY_L()
349 {
350 1 BYTE i=100;
351 1
352 1 do
353 1 {
354 2 BYTE j=100;
355 2 do
356 2 {
357 3 BYTE k=248;
358 3 do
359 3 {}while(--k);
360 3 }while(--j);
361 2 }while(--i);
362 1 }
363
364 void ALARM_1()
365 {
C51 COMPILER V8.08 MAIN 05/22/2007 11:48:59 PAGE 7
366 1 TR0=1;
367 1 while(TR0);
368 1 }
369
370 void ALARM_2()
371 {
372 1 TR0=1;
373 1 while(TR0);
374 1 DLY_L();
375 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 551 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 26 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -