📄 p0902-ird.lst
字号:
502 4 repeat();
503 4 }
504 3 }
505 2 }
506 1 else if(buf==4) //K4键处理程序
507 1 {
508 2 if(keybit==1)
509 2 {
510 3 keybit=0;
511 3 disp16_16(0,0,0); //已
512 3 disp16_16(2,0,1); //按
513 3 disp16_16(4,0,2); //下
514 3 disp8_16(6,0,20); //K
515 3 disp8_16(7,0,4); //4
516 3 disp16_16(8,0,3); //键
517 3 send_all(0x00,0x0d);
518 3 while(l2==0)
519 3 {
520 4 repeat();
521 4 }
522 3 }
523 2 }
524 1 }
525 //---------------------------------------
526 //名称: 发送头码函数
527 //作者:cby
528 //网站:宁波单片机开发网
529 //网址:www.nbdpj.com
530 //邮箱:nbdpj@nbdpj.com
531 //日期:20081231
532 //-----------------------------------------
533 void send_head(void)
534 {
535 1 TR0=1;
536 1 intcon=0;
537 1 while(intcon<692);
538 1 TR0=0;
539 1 irdio=1;
540 1 intcon=0;
541 1 TR1=1;
542 1 while(intcon<346);
543 1 TR1=0;
544 1 irdio=1;
545 1 }
546 //---------------------------------------
547 //名称: 发送数据0函数
548 //作者:cby
549 //网站:宁波单片机开发网
550 //网址:www.nbdpj.com
551 //邮箱:nbdpj@nbdpj.com
C51 COMPILER V8.05a P0902_IRD 04/01/2009 22:16:33 PAGE 10
552 //日期:20081231
553 //-----------------------------------------
554 void send_0(void)
555 {
556 1 intcon=0;
557 1 TR0=1;
558 1 while(intcon<43);
559 1 TR0=0;
560 1 irdio=1;
561 1 intcon=0;
562 1 TR1=1;
563 1 while(intcon<43);
564 1 TR1=0;
565 1 irdio=1;
566 1 }
567 //---------------------------------------
568 //名称: 发送数据1函数
569 //作者:cby
570 //网站:宁波单片机开发网
571 //网址:www.nbdpj.com
572 //邮箱:nbdpj@nbdpj.com
573 //日期:20081231
574 //-----------------------------------------
575 void send_1(void)
576 {
577 1 intcon=0;
578 1 TR0=1;
579 1 while(intcon<43);
580 1 TR0=0;
581 1 irdio=1;
582 1 intcon=0;
583 1 TR1=1;
584 1 while(intcon<130);
585 1 TR1=0;
586 1 irdio=1;
587 1 }
588 //---------------------------------------
589 //名称: 发送结束码函数 40ms
590 //作者:cby
591 //网站:宁波单片机开发网
592 //网址:www.nbdpj.com
593 //邮箱:nbdpj@nbdpj.com
594 //日期:20081231
595 //-----------------------------------------
596 void send_over(void)
597 {
598 1 intcon=0;
599 1 TR0=1;
600 1 while(intcon<43);
601 1 TR0=0;
602 1 irdio=1;
603 1 intcon=0;
604 1 TR1=1;
605 1 while(intcon<3076);
606 1 TR1=0;
607 1 irdio=1;
608 1 }
609 //---------------------------------------
610 //名称: 发送一个字节(8BIT)函数
611 //作者:cby
612 //网站:宁波单片机开发网
613 //网址:www.nbdpj.com
C51 COMPILER V8.05a P0902_IRD 04/01/2009 22:16:33 PAGE 11
614 //邮箱:nbdpj@nbdpj.com
615 //日期:20081231
616 //-----------------------------------------
617 void send_data(unsigned char dat)
618 {
619 1 unsigned char j;
620 1 for(j=0;j<8;j++)
621 1 {
622 2 if(dat&(0x01<<j))
623 2 {
624 3 send_1();
625 3 }
626 2 else
627 2 {
628 3 send_0();
629 3 }
630 2 }
631 1 }
632 //---------------------------------------
633 //名称: 发送完整码函数
634 //作者:cby
635 //网站:宁波单片机开发网
636 //网址:www.nbdpj.com
637 //邮箱:nbdpj@nbdpj.com
638 //日期:20081231
639 //-----------------------------------------
640 void send_all(unsigned char address,unsigned char data1)
641 {
642 1 send_head(); //发送头码
643 1 send_data(address); //发地址码
644 1 send_data(~address); //发地址反码
645 1 send_data(data1); //发数据码
646 1 send_data(~data1); //发数据反码
647 1 send_over(); //发结束码
648 1 }
649 //---------------------------------------
650 //名称: 发送重复码函数
651 //作者:cby
652 //网站:宁波单片机开发网
653 //网址:www.nbdpj.com
654 //邮箱:nbdpj@nbdpj.com
655 //日期:20081231
656 //-----------------------------------------
657 void repeat(void)//108ms
658 {
659 1 intcon=0;
660 1 TR0=1;
661 1 while(intcon<692);//9ms
662 1 TR0=0;
663 1 irdio=1;
664 1 intcon=0;
665 1 TR1=1;
666 1 while(intcon<130);//1.69ms
667 1 TR1=0;
668 1 irdio=1;
669 1 intcon=0;
670 1 TR0=1;
671 1 while(intcon<43);//0.56ms
672 1 TR0=0;
673 1 irdio=1;
674 1 intcon=0;
675 1 TR1=1;
C51 COMPILER V8.05a P0902_IRD 04/01/2009 22:16:33 PAGE 12
676 1 while(intcon<7442);//96.75ms
677 1 TR1=0;
678 1 irdio=1;
679 1 }
680 //---------------------------------------
681 //名称: T0定时器256us中断函数
682 //作者:cby
683 //网站:宁波单片机开发网
684 //网址:www.nbdpj.com
685 //邮箱:nbdpj@nbdpj.com
686 //日期:20081111
687 //-----------------------------------------
688 void timer0(void)interrupt 1 using 0 //TIMER0方式1,采用中断方式
689 {
690 1 intcon++;
691 1 irdio=!irdio;
692 1 }
693 //---------------------------------------
694 //名称: T1定时器256us中断函数
695 //作者:cby
696 //网站:宁波单片机开发网
697 //网址:www.nbdpj.com
698 //邮箱:nbdpj@nbdpj.com
699 //日期:20081111
700 //-----------------------------------------
701 void timer1(void)interrupt 3 using 1 //TIMER0方式1,采用中断方式
702 {
703 1 intcon++;
704 1 }
705 //---------------------------------------
706 //名称: 主函数
707 //作者:cby
708 //网站:宁波单片机开发网
709 //网址:www.nbdpj.com
710 //邮箱:nbdpj@nbdpj.com
711 //日期:20081111
712 //-----------------------------------------
713 void main()
714 {
715 1 unsigned char k;
716 1 TMOD=0x22;//T0用于延时程序
717 1 TH0=0xf4;
718 1 TL0=0xf4;
719 1 TH1=0xf4;
720 1 TL1=0xf4;
721 1 init();
722 1 init_spi();
723 1 res=0;
724 1 for(k=0;k<250;k++);
725 1 res=1; //LCD复位
726 1 LCD_init(); //初始化LCD模块
727 1 LCD_clear(); //清屏幕
728 1 back_led=0; //开背光
729 1 ET0=1;
730 1 TR0=0;
731 1 ET1=1;
732 1 TR1=0;
733 1 EA=1;
734 1 while(1)
735 1 {
736 2 keypro();
737 2 }
C51 COMPILER V8.05a P0902_IRD 04/01/2009 22:16:33 PAGE 13
738 1 }
739
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1090 ----
CONSTANT SIZE = 896 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 10
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -