hong_fa.lst
来自「红外38k发射和接受代码」· LST 代码 · 共 572 行 · 第 1/3 页
LST
572 行
364 }
365 key1=0xfd;
C51 COMPILER V8.02 HONG_FA 09/06/2008 21:38:11 PAGE 7
366 if(key0!=0xff)
367 {
368 for(i=0;i<8;i++)
369 {
370 if(~key0==keyv[i])
371 {
372 keyvol=i+8;
373 flag=0;
374 }
375 }
376 }
377 key1=0xfb;
378 if(key0!=0xff)
379 {
380 for(i=0;i<8;i++)
381 {
382 if(~key0==keyv[i])
383 {
384 keyvol=i+16;
385 flag=0;
386 }
387 }
388 }
389 key1=0xf7;
390 if(key0!=0xff)
391 {
392 for(i=0;i<8;i++)
393 {
394 if(~key0==keyv[i])
395 {
396 keyvol=i+24;
397 flag=0;
398 }
399 }
400 }
401 delay(360);//当键按下超过108ms,发射连发码
402 if(key0!=0xff)
403 {
404 delay(360);
405 if(key0!=0xff)
406 {
407 flag=1;
408 }
409 }
410 }
411 while(key0!=0xff);
412 }
413 } */
414 //
415 //
416 void keyscan()
417 {
418 1 P1=0xfe;
419 1 temp=P1;
420 1 temp&=0xf0;
421 1 if(temp!=0xf0)
422 1 {
423 2 delay(20);
424 2 if(temp!=0xf0)
425 2 {
426 3 flag1=1;
427 3 switch(temp)
C51 COMPILER V8.02 HONG_FA 09/06/2008 21:38:11 PAGE 8
428 3 {
429 4 case 0xe0: key=0;break;
430 4 case 0xd0: key=1;break;
431 4 case 0xb0: key=2;break;
432 4 case 0x70: key=3;break;
433 4
434 4 }
435 3
436 3 }
437 2 }
438 1 P1=0xfd;
439 1 temp=P1;
440 1 temp&=0xf0;
441 1 if(temp!=0xf0)
442 1 {
443 2 delay(20);
444 2 if(temp!=0xf0)
445 2 {
446 3 flag1=1;
447 3 switch(temp)
448 3 {
449 4 case 0xe0: key=4;break;
450 4 case 0xd0: key=5;break;
451 4 case 0xb0: key=6;break;
452 4 case 0x70: key=7;break;
453 4
454 4 }
455 3 }
456 2 }
457 1 P1=0xfb;
458 1 temp=P1;
459 1 temp&=0xf0;
460 1 if(temp!=0xf0)
461 1 {
462 2 delay(20);
463 2 if(temp!=0xf0)
464 2 {
465 3 flag1=1;
466 3 switch(temp)
467 3 {
468 4 case 0xe0: key=8;break;
469 4 case 0xd0: key=9;break;
470 4 case 0xb0: key=10;break;
471 4 case 0x70: key=11;break;
472 4
473 4 }
474 3 }
475 2 }
476 1 P1=0xf7;
477 1 temp=P1;
478 1 temp&=0xf0;
479 1 if(temp!=0xf0)
480 1 {
481 2 delay(20);
482 2 if(temp!=0xf0)
483 2 {
484 3 flag1=1;
485 3 switch(temp)
486 3 {
487 4 case 0xe0: key=12;break;
488 4 case 0xd0: key=13;break;
489 4 case 0xb0: key=14;break;
C51 COMPILER V8.02 HONG_FA 09/06/2008 21:38:11 PAGE 9
490 4 case 0x70: key=15;break;
491 4
492 4 }
493 3 }
494 2 }
495 1
496 1
497 1
498 1
499 1 }
500
501 /***************主函数****************/
502 main()
503 {
504 1
505 1 while(1)
506 1 {
507 2 /*keywork();
508 2 if(key==1)
509 2 {
510 2 tx();
511 2 }
512 2 key=0; */
513 2
514 2
515 2 if(flag1==1)
516 2 {
517 3 tx();
518 3 }
519 2
520 2 flag1=0;
521 2 }
522 1 }
523 /****************38KHz发生器******************/
524 void time_intt1(void) interrupt 3
525 {
526 1 remoteout=~remoteout;
527 1 }
528 //
529 //
530 /*************************END************************/
531
532
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1481 ----
CONSTANT SIZE = 8 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?