📄 gressy.lst
字号:
266 1 #define Start (!RECERROR)
267 1 TL0=CYCLE % 256;
268 1 TH0=CYCLE/256;
269 1
270 1 //KEY TEST
271 1 InP=INPORT^P1;
272 1 InP3=InP&InP2; //count 3
273 1 InP2=InP&InP1&(~InP3);
274 1 InP1=InP&(~InP3);
275 1 InP^=INPORT; //InP=PP1
276 1 InP&=InP3;
277 1 INPORT&=~InP3;
278 1 INPORT|=InP;
279 1
280 1 if(PLAY)
281 1 {
282 2 //IO TEST
283 2 PL=0;PL=0;PL=1;
284 2 //Input=0;
285 2 for(i=0;i<16;i++)
286 2 {
287 3 Input<<=1;
288 3 if(!DATA) Input++;
289 3 CLK=1;CLK=1;CLK=0;
290 3 }
291 2 PL=0;
292 2
293 2 //Once OK DETECT
294 2 switch(P1&0XC)
295 2 {
296 3 case 8: //TORCH
297 3 case 12:
298 3 Input&=(H1|T1|T2|T3|MOT|S1|IO1|IO101|IO102|IO103);
299 3 OnceOk=(Input==(H1|T1|T2|T3|MOT|S1|IO1|IO101|IO102|IO103));
300 3 if(Input&0xff) CloseTestBit=1;
301 3 if(!Input) CloseTestBit=0;
302 3 if(!OK&&TestBit) //TestBit==1 mean Testing
303 3 {
C51 COMPILER V8.02 GRESSY 03/18/2008 04:15:30 PAGE 6
304 4 Top1=(H1&Input);
305 4 Top2=(IO101&Input);
306 4 Top3=(IO1&Input);
307 4 Top4=(MOT&Input);
308 4 Top5=(S1&Input);
309 4 Top6=(T3&Input);
310 4 Bot1=(1);
311 4 Bot2=(1);
312 4 Bot3=(T1&Input)&&(T2&Input);
313 4 Bot4=(IO103&Input);
314 4 Bot5=(IO102&Input);
315 4 }
316 3 else
317 3 {
318 4 if(!sd) Top1=Top2=Top3=Top4=Top5=Top6=Bot1=Bot2=Bot3=Bot4=Bot5=1;
319 4 }
320 3 break;
321 3 case 0: //GRESSY
322 3 Input&=(H1|IO2|T1|T2|T3|S1|IO1|IO101|IO102|IO103|IO104|IO105|IO106);
323 3 OnceOk=(Input==(H1|IO2|T1|T2|T3|S1|IO1|IO101|IO102|IO103|IO104|IO105|IO106));
324 3 if(Input&0xff) CloseTestBit=1;
325 3 if(!Input) CloseTestBit=0;
326 3 if(!OK&&TestBit) //TestBit==1 mean Testing
327 3 {
328 4 Top1=(H1&Input);
329 4 Top2=(IO2&Input);
330 4 Top3=(IO101&Input);
331 4 Top4=(IO1&Input);
332 4 Top5=(S1&Input);
333 4 Top6=(T3&Input);
334 4 Bot1=(IO104&Input);
335 4 Bot2=(IO105&Input)&&(IO106&Input);
336 4 Bot3=(T1&Input)&&(T2&Input);
337 4 Bot4=(IO103&Input);
338 4 Bot5=(IO102&Input);
339 4 }
340 3 else
341 3 {
342 4 if(!sd) Top1=Top2=Top3=Top4=Top5=Top6=Bot1=Bot2=Bot3=Bot4=Bot5=1;
343 4 }
344 3 break;
345 3 case 4: //GRESSY PART
346 3 Input&=(H1|IO2|T1|T2|T3|IO1|IO101|IO102|IO103|IO105|IO106);
347 3 OnceOk=(Input==(H1|IO2|T1|T2|T3|IO1|IO101|IO102|IO103|IO105|IO106));
348 3 if(Input&0xff) CloseTestBit=1;
349 3 if(!Input) CloseTestBit=0;
350 3 if(!OK&&TestBit) //TestBit==1 mean Testing
351 3 {
352 4 Top1=(H1&Input);
353 4 Top2=(IO2&Input);
354 4 Top3=(IO101&Input);
355 4 Top4=(IO1&Input);
356 4 Top5=(1); //(S1&Input);
357 4 Top6=(T3&Input);
358 4 Bot1=(1); //(IO104&Input);
359 4 Bot2=(IO105&Input)&&(IO106&Input);
360 4 Bot3=(T1&Input)&&(T2&Input);
361 4 Bot4=(IO103&Input);
362 4 Bot5=(IO102&Input);
363 4 }
364 3 else
365 3 {
C51 COMPILER V8.02 GRESSY 03/18/2008 04:15:30 PAGE 7
366 4 if(!sd) Top1=Top2=Top3=Top4=Top5=Top6=Bot1=Bot2=Bot3=Bot4=Bot5=1;
367 4 }
368 3 break;
369 3 }
370 2
371 2 //NG DELAY
372 2 if(!IsStart&&Start)
373 2 {
374 3 OKLED=1;OnceOk=0;
375 3 }
376 2 IsStart=Start;
377 2 if(Start) TestBit=CloseTestBit=1;
378 2 if(TestBit==CloseTestBit)
379 2 {
380 3 TestDelay=TESTDELAYTIME;
381 3 }
382 2 else
383 2 {
384 3 if(TestDelay) //&&!OK)
385 3 {
386 4 TestDelay--;
387 4 }
388 3 else
389 3 {
390 4 TestBit=CloseTestBit;
391 4 }
392 3 }
393 2
394 2 //OK detect
395 2 if(!OK)
396 2 {
397 3 if(OnceOk)
398 3 {
399 4 //Once OK
400 4 BELL=1; //BELL NOT RING
401 4 OKNUM++;
402 4 if(OKNUM>=5) //20 times OK
403 4 {
404 5 OKNUM=0;
405 5 OKLED=0; //OK LED LIGHT
406 5 }
407 4 }
408 3 else
409 3 {
410 4 //NG
411 4 OKNUM=0;
412 4 if(TestBit) BELL=0; //BELL RING
413 4 }
414 3 }
415 2
416 2
417 2
418 2 //REC DETECT (LAST AND NEXT TOUCH FOR 5 SECONDS)
419 2 // ClearDisplay=0;
420 2 if(!(P1&3))
421 2 {
422 3 if(RecTimeTest) RecTimeTest--;
423 3 if(!RecTimeTest)
424 3 {
425 4 PLAY=0;
426 4 playno=1;
427 4 ledchange=1;
C51 COMPILER V8.02 GRESSY 03/18/2008 04:15:30 PAGE 8
428 4 // ClearDisplay=1;
429 4
430 4 // BELL=1; //off
431 4 // OKLED=1;
432 4 // Top1=Top2=Top3=Top4=Top5=Top6=Bot1=Bot2=Bot3=Bot4=Bot5=1;
433 4 }
434 3 }
435 2 else
436 2 {
437 3 RecTimeTest=RECTIMETEST;
438 3 }
439 2
440 2 // PLAY AND MUTE DELAY
441 2 md=(MUTEIN?(md?md-1:md):20); //20=0.2S
442 2
443 2 //MUSIC SELECT DISPLAY DELAY
444 2 if(sd) sd--;
445 2 }
446 1 else
447 1 {
448 2 //RECORD ERROR DISPLAY DELAY
449 2 if(isrecord)
450 2 {
451 3 if(ed)
452 3 {
453 4 ed--;
454 4 RECERROR=0; //light
455 4 Bot3=0; //light
456 4 }
457 3 else
458 3 {
459 4 RECERROR=1; //off
460 4 Bot3=1; //off
461 4 }
462 3 }
463 2 }
464 1 if(!TestBit||sd||REC) //||ClearDisplay)
465 1 {
466 2 //Clear DISPLAY Reset OK and NG and display
467 2 if(!TestBit||REC)
468 2 {
469 3 BELL=1; //off
470 3 OKLED=1;//mean OK=0
471 3 }
472 2 Top1=Top2=Top3=Top4=Top5=Top6=Bot1=Bot2=Bot4=Bot5=1;
473 2 if(sd||REC)
474 2 {
475 3 switch(playno)
476 3 {
477 4 case 1:Top1=fd;break;
478 4 case 2:Top2=fd;break;
479 4 case 3:Top3=fd;break;
480 4 case 4:Top4=fd;break;
481 4 case 5:Top5=fd;break;
482 4 case 6:Top6=fd;break;
483 4 case 7:Bot4=fd;break;
484 4 case 8:Bot5=fd;break;
485 4 }
486 3 if(isrecord) OKLED=fd; //light:mean recording
487 3 if(ft)
488 3 {
489 4 ft--;
C51 COMPILER V8.02 GRESSY 03/18/2008 04:15:30 PAGE 9
490 4 }
491 3 else
492 3 {
493 4 // ft=REC?FLASHTIME:FLASHTIME/2;
494 4 ft=FLASHTIME;
495 4 fd=~fd;
496 4 }
497 3 }
498 2 /* switch(playno)
499 2 {
500 2 case 1:Top1=fd;if(REC) Top2=Top3=Top4=Top5=Top6=Bot4=Bot5=1;break;
501 2 case 2:Top2=fd;if(REC) Top1=Top3=Top4=Top5=Top6=Bot4=Bot5=1;break;
502 2 case 3:Top3=fd;if(REC) Top1=Top2=Top4=Top5=Top6=Bot4=Bot5=1;break;
503 2 case 4:Top4=fd;if(REC) Top1=Top2=Top3=Top5=Top6=Bot4=Bot5=1;break;
504 2 case 5:Top5=fd;if(REC) Top1=Top2=Top3=Top4=Top6=Bot4=Bot5=1;break;
505 2 case 6:Top6=fd;if(REC) Top1=Top2=Top3=Top4=Top5=Bot4=Bot5=1;break;
506 2 case 7:Bot4=fd;if(REC) Top1=Top2=Top3=Top4=Top5=Top6=Bot5=1;break;
507 2 case 8:Bot5=fd;if(REC) Top1=Top2=Top3=Top4=Top5=Top6=Bot4=1;break;
508 2 }*/
509 2 }
510 1 //NORAL DELAY
511 1 if(td) td--;
512 1 }
513 void Delay(int a)
514 {
515 1 td=a/10;
516 1 while(td);
517 1 }
518 void DelayA()
519 {
520 1 unsigned int i=50000;
521 1 while(i--);
522 1 }
523
524
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1810 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 4
IDATA SIZE = ---- ----
BIT SIZE = 8 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -