⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at2402.lst

📁 24c02存储小时钟程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -