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

📄 main.lst

📁 本人写的测试CS5530芯片代码,大部分功能和CS5532相同
💻 LST
📖 第 1 页 / 共 3 页
字号:
 510   1            CS5532_SCLK = 0;  //时钟低
 511   1            CS5532_SDI = 0;
 512   1            _nop_(); _nop_(); _nop_();
 513   1      
 514   1            for(j=0;j<4;j++)
 515   1            {
 516   2             for(i=0;i<8;i++)
 517   2             {
 518   3              CS5532_SCLK=1;     //时钟高    
 519   3              RxdTxd4b[j]<<=1;     
 520   3              if(CS5532_SDO) 
 521   3               RxdTxd4b[j]|=0x01;  //从SDO读取数据
 522   3              CS5532_SCLK=0;            //时钟低 
 523   3              _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 524   3        _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 525   3             }
 526   2            }
 527   1       DBYTE[address_pt]=RxdTxd4b[0];
 528   1       DBYTE[address_pt+1]=RxdTxd4b[1];
 529   1       DBYTE[address_pt+2]=RxdTxd4b[2];
 530   1       DBYTE[address_pt+3]=RxdTxd4b[3];
 531   1      }
 532          
 533          void  read_data(uchar address_pt)
 534          {
 535   1       uchar i,j;
 536   1      // EX1=0;     
 537   1             CS5532_SCLK = 0;  //时钟低
 538   1            CS5532_SDI = 0;
 539   1         //for(i=0;i<16;i++)
 540   1            _nop_(); _nop_(); _nop_();
 541   1            for(i=0;i<8;i++)             // 8 个清串口时钟
 542   1            { 
 543   2           CS5532_SCLK=1;    //时钟高   
 544   2              _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 545   2        _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 546   2              _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 547   2        _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 548   2          
 549   2      
 550   2              CS5532_SCLK=0;    //时钟低
 551   2        _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 10  

 552   2        _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 553   2           _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 554   2         _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 555   2      
 556   2            }
 557   1      
 558   1            for(j=0;j<4;j++)
 559   1            {
 560   2             for(i=0;i<8;i++)
 561   2             {
 562   3              CS5532_SCLK=1;     //时钟高    
 563   3              RxdTxd4b[j]<<=1;     
 564   3              if(CS5532_SDO) 
 565   3               RxdTxd4b[j]|=0x01;  //从SDO读取数据
 566   3              CS5532_SCLK=0;            //时钟低 
 567   3              _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 568   3        _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 569   3              _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 570   3        _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 571   3             }
 572   2            }
 573   1      
 574   1       DBYTE[address_pt]=RxdTxd4b[0];
 575   1       DBYTE[address_pt+1]=RxdTxd4b[1];
 576   1       DBYTE[address_pt+2]=RxdTxd4b[2];
 577   1       DBYTE[address_pt+3]=RxdTxd4b[3];
 578   1      }
 579          
 580          void CS5532_init(void)
 581          {
 582   1       uchar k;
 583   1       //串口初始化
 584   1       uchar i;
 585   1       CS5532_CS=1;
 586   1       for(k=0;k<200;k++)  _nop_();
 587   1      
 588   1       CS5532_CS=0; //片选使能
 589   1       for(k=0;k<200;k++)  _nop_();
 590   1       CS5532_SDI=0;
 591   1       CS5532_SDO=1;
 592   1       CS5532_SCLK=0;
 593   1      
 594   1       for(i = 0; i < 20; i++)
 595   1              Write8(0xFF);
 596   1       Write8(0xFE);
 597   1       /*for(i=0;i<180;i++) 
 598   1       CS5532_Txd_init(0xFF);//发送命令
 599   1       CS5532_Txd(0xFE);  
 600   1       for(i=0;i<18;i++) _nop_();
 601   1       for(i=0;i<18;i++) _nop_();
 602   1        
 603   1      
 604   1       //配置寄存器
 605   1       CS5532_Txd(0x03);
 606   1       CS5532_Txd(0x20);
 607   1       CS5532_Txd(0x00);
 608   1       CS5532_Txd(0x00);
 609   1       CS5532_Txd(0x00);*/
 610   1      for(k=0;k<200;k++)  _nop_();
 611   1      for(k=0;k<200;k++)  _nop_();
 612   1      
 613   1      /*
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 11  

 614   1       //配置寄存器
 615   1       CS5532_Txd(0x03);
 616   1       CS5532_Txd(0x02);
 617   1       CS5532_Txd(0x40);
 618   1       CS5532_Txd(0x00);
 619   1       CS5532_Txd(0x02);
 620   1       
 621   1       CS5532_Txd(0x05);
 622   1       CS5532_Txd(0x84);
 623   1       CS5532_Txd(0x00);
 624   1       CS5532_Txd(0x84);
 625   1       CS5532_Txd(0x00);
 626   1       */     
 627   1      //---------------------------     
 628   1      }
 629           
 630          void CS5532_Txd(uchar dat)//向CS5532写一字节数据
 631          {
 632   1           uchar i,k;
 633   1           CS5532_SCLK=0;//时钟低   
 634   1           CS5532_CS=0;
 635   1           _nop_();
 636   1      //    for(i=0;i<16;i++)
 637   1      //  _nop_();
 638   1      //  _nop_();
 639   1        _nop_();
 640   1        _nop_();
 641   1           for(i=0;i<8;i++)
 642   1           {
 643   2            if((dat<<i)&0x80) 
 644   2             CS5532_SDI=1;   //数据送到SPI的SDI口
 645   2             else             
 646   2             CS5532_SDI=0;
 647   2             _nop_();
 648   2          _nop_();
 649   2      //    for(i=0;i<16;i++)
 650   2      //    _nop_();
 651   2          _nop_();
 652   2             CS5532_SCLK=1;    //时钟高   
 653   2            for(k=0;k<20;k++)  _nop_();
 654   2      /*      
 655   2             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 656   2             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 657   2      */
 658   2            CS5532_SCLK=0;    //时钟低
 659   2            for(k=0;k<20;k++)  _nop_();
 660   2      //       _nop_();
 661   2      
 662   2           }
 663   1           CS5532_SDI=0;
 664   1      }
 665          
 666          void CS5532_Txd_init(uchar dat)//向CS5532写一字节数据
 667          {
 668   1           uchar i,k;
 669   1           CS5532_SCLK=0;//时钟低   
 670   1           CS5532_CS=0;
 671   1           _nop_();
 672   1           for(i=0;i<8;i++)
 673   1           {
 674   2            if((dat<<i)&0x80) 
 675   2             CS5532_SDI=1;   //数据送到SPI的SDI口
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 12  

 676   2             else             
 677   2             CS5532_SDI=0;
 678   2             _nop_();
 679   2             CS5532_SCLK=1;    //时钟高   
 680   2            for(k=0;k<190;k++)  _nop_();
 681   2       /*
 682   2             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 683   2             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 684   2      */
 685   2            CS5532_SCLK=0;    //时钟低
 686   2             _nop_();
 687   2            for(k=0;k<190;k++)  _nop_();
 688   2           }
 689   1      }
 690          
 691          void  read_data1(uchar address_pt)
 692          {
 693   1       uchar i,j;
 694   1      // EX1=0;     
 695   1            /* CS5532_SCLK = 0;  //时钟低
 696   1            CS5532_SDI = 0;
 697   1            for(i=0;i<8;i++)             // 8 个清串口时钟
 698   1            { 
 699   1           CS5532_SCLK=1;    //时钟高   
 700   1              CS5532_SCLK=0;    //时钟低
 701   1            }*/
 702   1                      CS5532_Txd(0x00);
 703   1                      //RxdTxd4b[0] = Read8();
 704   1                      //RxdTxd4b[1] = Read8();
 705   1                      //RxdTxd4b[2] = Read8();
 706   1                      //RxdTxd4b[3] = Read8();
 707   1      
 708   1            for(j=0;j<4;j++)
 709   1            {
 710   2             for(i=0;i<8;i++)
 711   2             {
 712   3              CS5532_SCLK=1;     //时钟高    
 713   3              RxdTxd4b[j]<<=1;     
 714   3              if(CS5532_SDO) 
 715   3               RxdTxd4b[j]|=0x01;  //从SDO读取数据
 716   3              CS5532_SCLK=0;            //时钟低 
 717   3           //   _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 718   3             }
 719   2            }
 720   1      }
*** WARNING C280 IN LINE 691 OF MAIN.C: 'address_pt': unreferenced local variable
 721          
 722          void  read_datax(uchar address_pt)
 723          {
 724   1       uchar i,j;
 725   1      // EX1=0;     
 726   1            /* CS5532_SCLK = 0;  //时钟低
 727   1            CS5532_SDI = 0;
 728   1            for(i=0;i<8;i++)             // 8 个清串口时钟
 729   1            { 
 730   1           CS5532_SCLK=1;    //时钟高   
 731   1              CS5532_SCLK=0;    //时钟低
 732   1            }*/
 733   1                      CS5532_Txd(0x09);
 734   1                      //RxdTxd4b[0] = Read8();
 735   1                      //RxdTxd4b[1] = Read8();
 736   1                      //RxdTxd4b[2] = Read8();
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 13  

 737   1                      //RxdTxd4b[3] = Read8();
 738   1      
 739   1            for(j=0;j<4;j++)
 740   1            {
 741   2             for(i=0;i<8;i++)
 742   2             {
 743   3              CS5532_SCLK=1;     //时钟高    
 744   3              RxdTxd4b[j]<<=1;     
 745   3              if(CS5532_SDO) 
 746   3               RxdTxd4b[j]|=0x01;  //从SDO读取数据
 747   3              CS5532_SCLK=0;            //时钟低 
 748   3           //   _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_();
 749   3             }
 750   2            }
 751   1      }
*** WARNING C280 IN LINE 722 OF MAIN.C: 'address_pt': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1550    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      4    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      29
   IDATA SIZE       =      6    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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