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

📄 computer2.lst

📁 AT89S52串口多字节接收,可以接收任意字节.
💻 LST
📖 第 1 页 / 共 3 页
字号:
 499   3                                                                        Start_Rxd = False;
 500   3                                                       }
 501   2      
 502   2                                } 
 503   1                                       else
 504   1                    {        
 505   2                                     if (Rece_data == Rx_start_data)
 506   2                         {    
 507   3                                       Start_Rxd = True;
 508   3                               g_cReceNum = 1;
 509   3                               Rs_buf[0]  = Rece_data;
 510   3                         }          
 511   2      
 512   2                      }
 513   1      
 514   1      
 515   1      
 516   1       Rs232_end:     
 517   1          
 518   1                 MCU_LED2  = True;
 519   1             ES = True;
 520   1                 EA = True;
 521   1                
 522   1      }
 523          /****************************************/
 524          /*************向计算机发数据*************/
 525          /****************************************/
 526          uchar TXD_pc(uchar icode)
 527          { 
 528   1             //uchar count1;   /* 接收等待时间 */
 529   1             //uchar i;
 530   1                 //RS485 = False;
 531   1                 EA = 0;
 532   1             ES = 0;
 533   1            
 534   1                      SBUF = icode;       
 535   1                                      while (!TI); 
 536   1                                      TI = 0;   /* 发数据请求 */
 537   1                 //RS485 = True;                      
 538   1                      EA = True;
 539   1                      ES = True;
 540   1             return(0);
 541   1      }
 542          /****************************DS1302***********************************/
 543          void Close_write_bit(void)
 544          {
 545   1         char i;
 546   1         EA = False;
 547   1         Ds1302_clock = False;
 548   1         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 549   1         Ds1302_rst = True;
 550   1         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
C51 COMPILER V8.05a   COMPUTER2                                                            04/25/2008 17:59:14 PAGE 10  

 551   1         AD = 0x8e;             //write control redister    
 552   1         for (i=1; i<=8; i++) { 
 553   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 554   2                                                         _nop_();_nop_(); _nop_();_nop_();_nop_();Ds1302_clock = True;
 555   2                                 AD = AD >> 1;_nop_();_nop_();_nop_();
 556   2                                                       }
 557   1         AD = 0x80;             //close write protect bit
 558   1         Ds1302_data = False;
 559   1         for (i=1; i<=8; i++) {
 560   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 561   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
 562   2                                 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 563   2                                                       }
 564   1         Ds1302_rst = False;
 565   1         EA = True;
 566   1      }
 567          void Open_write_bit(void)
 568          {
 569   1          char i;
 570   1              EA = False;
 571   1         Ds1302_clock = False;
 572   1         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 573   1         Ds1302_rst = True;
 574   1         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 575   1         AD = 0x8e;             //write control redister    
 576   1         for (i=1; i<=8; i++) { 
 577   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 578   2                                                         _nop_();_nop_(); _nop_();_nop_();_nop_();Ds1302_clock = True;
 579   2                                 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 580   2                                                       }
 581   1         AD = 0x00;             //close write protect bit
 582   1         Ds1302_data = False;
 583   1         for (i=1; i<=8; i++) {
 584   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 585   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
 586   2                                 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 587   2                                                       }
 588   1              EA = True;
 589   1      }
 590          void Init_ds1302(void)
 591          {
 592   1         char i;
 593   1         EA = False;
 594   1         Ds1302_clock = False;
 595   1         _nop_();_nop_();_nop_();     _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 596   1         Ds1302_rst = True;
 597   1         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();     _nop_();_nop_();_nop_();
 598   1         AD = 0x8e;             //write control redister    
 599   1         for (i=1; i<=8; i++) { 
 600   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 601   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
 602   2                                 AD = AD >> 1; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 603   2                                                       }
 604   1         AD = 0x00;             //OPEN control redister
 605   1         Ds1302_data = False;
 606   1         for (i=1; i<=8; i++) { 
 607   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 608   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
 609   2                                 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 610   2                                                       }
 611   1         Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 612   1         Ds1302_clock = False;
C51 COMPILER V8.05a   COMPUTER2                                                            04/25/2008 17:59:14 PAGE 11  

 613   1         Ds1302_clock = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 614   1         Ds1302_rst = True;
 615   1         _nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 616   1         AD = 0x90;             //recharge register
 617   1         for (i=1; i<=8; i++) { 
 618   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 619   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();Ds1302_clock = True;
 620   2                                 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 621   2                                                       }
 622   1         AD = 0xa5;
 623   1         AD = 0xa5;
 624   1         for (i=1; i<=8; i++) { 
 625   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 626   2                                                         _nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();Ds1302_clock = True;
 627   2                                 AD = AD >> 1; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 628   2                                                       }
 629   1         Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 630   1         Ds1302_clock = False;
 631   1         Ds1302_clock = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 632   1         Ds1302_rst = True; _nop_(); _nop_();
 633   1         AD = 0x80;                //Start Work count
 634   1         for (i=1; i<=8; i++) { 
 635   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 636   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
 637   2                                 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 638   2                                                       }
 639   1         AD = 0x00;
 640   1         for (i=1; i<=8; i++) { 
 641   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 642   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
 643   2                                 AD = AD >> 1; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 644   2                                                       }
 645   1          Ds1302_rst = False;_nop_();_nop_();
 646   1          Ds1302_clock = False;_nop_();
 647   1              EA = True;
 648   1      }
 649          void Read_ds1302()
 650          {
 651   1         uchar i,j;
 652   1         EA = False;
 653   1         Ds1302_rst = False;  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 654   1         Ds1302_clock = False;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 655   1         Ds1302_rst = False;  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 656   1         Ds1302_rst = True;   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 657   1         AD = 0xbf;
 658   1         for (i=1; i<=8; i++) { 
 659   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 660   2                                                         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
 661   2                                 AD = AD >> 1;_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();
 662   2                                                      }
 663   1         for (j=0; j<7; j++) {
 664   2                                 for (i=1; i<=8; i++) { 
 665   3                                                         AD = AD >> 1;
 666   3                                                                                 Ds1302_clock = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 667   3                                                                                 AD_7 = Ds1302_data; Ds1302_clock = True; 
 668   3                                                                                                         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 669   3                                                       }
 670   2                                 //i = AD/16;
 671   2                                                         //k = i * 6;
 672   2                                 //AD = AD - k;
 673   2                                 M_D[j] = AD;
 674   2                              }
C51 COMPILER V8.05a   COMPUTER2                                                            04/25/2008 17:59:14 PAGE 12  

 675   1         Ds1302_rst = False;   delay_2();
 676   1         Ds1302_clock = False; delay_2();
 677   1         EA = True;
 678   1      }
 679          
 680          void Write_ds1302(uchar address,uchar numb)
 681          {
 682   1         uchar i;
 683   1         EA = False;
 684   1         Ds1302_rst = False;  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 685   1         Ds1302_clock = False;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 686   1         Ds1302_rst = False;  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 687   1         Ds1302_rst = True;   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 688   1         AD = 0x80 | (address<<1);
 689   1         for (i=1; i<=8; i++) { 
 690   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 691   2                                                         delay_2(); Ds1302_clock = True;
 692   2                                 AD = AD >> 1;delay_2(); 
 693   2                                                       }
 694   1         AD = numb;
 695   1         for (i=1; i<=8; i++) { 
 696   2                                 Ds1302_clock = False; Ds1302_data = AD_0;
 697   2                                                         delay_2();  Ds1302_clock = True;
 698   2                                 AD = AD >> 1;delay_2(); 
 699   2                                                       }
 700   1         Ds1302_rst = False;
 701   1         Ds1302_clock = True;
 702   1         EA = True;
 703   1         delay(1);
 704   1      }
 705          /*******************************************************/
 706          void delay(uint count0)
 707          {
 708   1          uchar i;
 709   1              while ( (count0--)  ) 
 710   1              {
 711   2                      for (i=0;i<125;i++) {};
 712   2              }
 713   1      }
 714          void delay_2()
 715          { 
 716   1            uint i;
 717   1            for (i=0; i<128; i++)
 718   1            {
 719   2               _nop_();
 720   2            }
 721   1      }
 722          void delay_3(uchar count0)
 723          {
 724   1          uchar i;
 725   1              while ( count0-- ) 
 726   1              {
 727   2                      for (i=0;i<125;i++) {};
 728   2              }
 729   1      }
 730          
 731          
 732          
 733          
 734          
 735          

C51 COMPILER V8.05a   COMPUTER2                                                            04/25/2008 17:59:14 PAGE 13  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1475    ----
   CONSTANT SIZE    =     80    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     30       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =     10    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -