📄 at2402.lst
字号:
498 2 _nop_();
499 2 SCL = 0;
500 2 write_data <<= 1;
501 2 }
502 1 SDA = 1; // 读取应答
503 1 _nop_();
504 1 _nop_();
505 1 SCL = 1;
506 1 _nop_();
507 1 _nop_();
508 1 _nop_();
509 1 _nop_();
510 1 ack_bit = SDA;
511 1 SCL = 0;
512 1 return ack_bit; // 返回AT24Cxx应答位
513 1 }
514
515 void write_byte(unsigned char addr, unsigned char write_data)
516 // 在指定地址addr处写入数据write_data
517 {
518 1 start();
519 1 shout(OP_WRITE);
520 1 shout(addr);
521 1 shout(write_data);
522 1 stop();
523 1 delay_1ms(10); // 写入周期
524 1 }
525
526
527 unsigned char read_current()
528 // 在当前地址读取
529 {
530 1 unsigned char read_data;
531 1 start();
532 1 shout(OP_READ);
533 1 read_data = shin();
534 1 stop();
535 1 return read_data;
536 1 }
537
538 unsigned char read_random(unsigned char random_addr)
539 // 在指定地址读取
540 {
541 1 start();
542 1 shout(OP_WRITE);
543 1 shout(random_addr);
544 1 return(read_current());
545 1 }
546
547 void delay_1ms(unsigned char ms)
548 // 延时子程序
549 {
550 1 unsigned char i;
551 1 while(ms--)
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 10
552 1 {
553 2 for(i = 0; i < 120; i++);
554 2 }
555 1 }
556
557 unsigned char key_scan()
558 {
559 1 unsigned char key_number;
560 1 key_number=0x00;
561 1 key_number|=k1;
562 1 key_number<<=1;
563 1 key_number|=k2;
564 1 key_number<<=1;
565 1 key_number|=k3;
566 1 key_number<<=1;
567 1 key_number|=k4;
568 1 return(key_number);
569 1 }
570 void timer_disp()interrupt 1 using 1
571 {
572 1 TR0=0;
573 1 TH0=0xfc;
574 1 TL0=0x78;
575 1 P0=0xff;
576 1 P2=0xff;
577 1 ++disp_bit;
578 1 if(flash_bit)
579 1 {
580 2 switch(disp_bit)
581 2 {
582 3 case 1:
583 3 P0=disp_code[eeprom_data[0]];
584 3 disp_bit0=0;
585 3 break;
586 3 case 2:
587 3 P0=disp_code[eeprom_data[1]];
588 3 disp_bit1=0;
589 3 break;
590 3 case 3:
591 3 P0=disp_code[eeprom_data[2]];
592 3 disp_bit2=0;
593 3 break;
594 3 case 4:
595 3 P0=disp_code[eeprom_data[3]];
596 3 disp_bit3=0;
597 3 break;
598 3 case 5:
599 3 P0=disp_code[eeprom_data[4]];
600 3 disp_bit4=0;
601 3 break;
602 3 case 6:
603 3 P0=disp_code[eeprom_data[5]];
604 3 disp_bit5=0;
605 3 break;
606 3 case 7:
607 3 P0=disp_code[eeprom_data[6]];
608 3 disp_bit6=0;
609 3 break;
610 3 case 8:
611 3 P0=disp_code[eeprom_data[7]];
612 3 disp_bit7=0;
613 3 disp_bit=0x00;
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 11
614 3 break;
615 3 default:break;
616 3 }
617 2 }
618 1 else
619 1 {
620 2 if(++flash_500ms==150)
621 2 {
622 3 flash_cpl=~flash_cpl;
623 3 flash_500ms=0x00;
624 3 }
625 2 if(flash_cpl)
626 2 {
627 3 switch(disp_bit)
628 3 {
629 4 case 1:
630 4 P0=disp_code[eeprom_data[0]];
631 4 disp_bit0=0;
632 4 break;
633 4 case 2:
634 4 P0=disp_code[eeprom_data[1]];
635 4 disp_bit1=0;
636 4 break;
637 4 case 3:
638 4 P0=disp_code[eeprom_data[2]];
639 4 disp_bit2=0;
640 4 break;
641 4 case 4:
642 4 P0=disp_code[eeprom_data[3]];
643 4 disp_bit3=0;
644 4 break;
645 4 case 5:
646 4 P0=disp_code[eeprom_data[4]];
647 4 disp_bit4=0;
648 4 break;
649 4 case 6:
650 4 P0=disp_code[eeprom_data[5]];
651 4 disp_bit5=0;
652 4 break;
653 4 case 7:
654 4 P0=disp_code[eeprom_data[6]];
655 4 disp_bit6=0;
656 4 break;
657 4 case 8:
658 4 P0=disp_code[eeprom_data[7]];
659 4 disp_bit7=0;
660 4 disp_bit=0x00;
661 4 break;
662 4 default:break;
663 4 }
664 3 }
665 2 else
666 2 {
667 3 switch(flash_number_bit)
668 3 {
669 4 case 1:
670 4 switch(disp_bit)
671 4 {
672 5 case 1:
673 5 P0=0xff;
674 5 disp_bit0=0;
675 5 break;
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 12
676 5 case 2:
677 5 P0=disp_code[eeprom_data[1]];
678 5 disp_bit1=0;
679 5 break;
680 5 case 3:
681 5 P0=disp_code[eeprom_data[2]];
682 5 disp_bit2=0;
683 5 break;
684 5 case 4:
685 5 P0=disp_code[eeprom_data[3]];
686 5 disp_bit3=0;
687 5 break;
688 5 case 5:
689 5 P0=disp_code[eeprom_data[4]];
690 5 disp_bit4=0;
691 5 break;
692 5 case 6:
693 5 P0=disp_code[eeprom_data[5]];
694 5 disp_bit5=0;
695 5 break;
696 5 case 7:
697 5 P0=disp_code[eeprom_data[6]];
698 5 disp_bit6=0;
699 5 break;
700 5 case 8:
701 5 P0=disp_code[eeprom_data[7]];
702 5 disp_bit7=0;
703 5 disp_bit=0x00;
704 5 break;
705 5 default:break;
706 5 }
707 4 break;
708 4 case 2:
709 4 switch(disp_bit)
710 4 {
711 5 case 1:
712 5 P0=disp_code[eeprom_data[0]];
713 5 disp_bit0=0;
714 5 break;
715 5 case 2:
716 5 P0=0xff;
717 5 disp_bit1=0;
718 5 break;
719 5 case 3:
720 5 P0=disp_code[eeprom_data[2]];
721 5 disp_bit2=0;
722 5 break;
723 5 case 4:
724 5 P0=disp_code[eeprom_data[3]];
725 5 disp_bit3=0;
726 5 break;
727 5 case 5:
728 5 P0=disp_code[eeprom_data[4]];
729 5 disp_bit4=0;
730 5 break;
731 5 case 6:
732 5 P0=disp_code[eeprom_data[5]];
733 5 disp_bit5=0;
734 5 break;
735 5 case 7:
736 5 P0=disp_code[eeprom_data[6]];
737 5 disp_bit6=0;
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 13
738 5 break;
739 5 case 8:
740 5 P0=disp_code[eeprom_data[7]];
741 5 disp_bit7=0;
742 5 disp_bit=0x00;
743 5 break;
744 5 default:break;
745 5 }
746 4 break;
747 4 case 3:
748 4 switch(disp_bit)
749 4 {
750 5 case 1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -