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

📄 main.lst

📁 本人写的测试CS5530芯片代码,大部分功能和CS5532相同
💻 LST
📖 第 1 页 / 共 3 页
字号:
 251   2              Send(RxdTxd4b[1]);
 252   2      
 253   2              if(RxdTxd4b[2]&0x80)
 254   2              {
 255   3                      RxdTxd4b[2] &= 0x7F;
 256   3                      RxdTxd4b[3] |= 0x20;
 257   3              }
 258   2              uCheckSum += RxdTxd4b[2];
 259   2              Send(RxdTxd4b[2]);
 260   2              uCheckSum += RxdTxd4b[3];
 261   2              Send(RxdTxd4b[3]);              
 262   2              Send(uCheckSum&0x7F);
 263   2              Send(0xFF);
 264   2              
 265   2              while(SerialCheck())
 266   2              {
 267   3                      uchar uGet = Getbyte();
 268   3                      if(uGet == 0x0D)
 269   3                      {
 270   4                              uchar uCheckSum = 0;
 271   4                              uCheckSum = uComRecv[0] + uComRecv[1];
 272   4                              if(uComRecv[2] == uCheckSum)
 273   4                              {
 274   5                                      if(uComRecv[0] == 0x01)
 275   5                                      {
 276   6                                              P0 = 0x00;
 277   6                                               Refurbish(ControlOut);
 278   6                                              //P1 = 0xFF;
 279   6                                              Sleep(uComRecv[1]);
 280   6                                              P0 = 0xFF;
 281   6                                               Refurbish(ControlOut);
 282   6                                              //P1 = 0x00;    
 283   6                                      }
 284   5                              }
 285   4                              uComi = 0;
 286   4                      }else
 287   3                      {
 288   4                              uComRecv[uComi++] =     uGet;
 289   4                              if(uComi >= 5)uComi = 0;
 290   4                      }
 291   3              }
 292   2        }
 293   1      
 294   1        CS5532_Txd(0xC0);//连续转换命令
 295   1        while(CS5532_SDO)
 296   1           _nop_();  _nop_(); _nop_(); _nop_();  
 297   1      
 298   1      
 299   1      while(1)
 300   1      {
 301   2              Read_CS5460A(buf5460, 0x0C);
 302   2              for(i = 0; i < 4; i++)
 303   2              {
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 6   

 304   3                      Send(buf5460[i]);
 305   3              }
 306   2              delay(60000);
 307   2              //delay(60000);
 308   2              //delay(60000);
 309   2      }
 310   1      /*buf5460[0] = 0x02;
 311   1      buf5460[1] = 0x80;
 312   1      buf5460[2] = 0xFF;
 313   1      buf5460[3] = 0xF5;
 314   1      buf5460[4] = 0xFF;
 315   1      Write_CS5460A(buf5460,5);
 316   1      //CS5532_init();
 317   1      for(i = 0; i < 5; i++)
 318   1      {
 319   1              buf5460[i] = 0;
 320   1      }
 321   1      for(k=0;k<180;k++)  _nop_();  
 322   1      
 323   1              Read_CS5460A(buf5460, 0x0A);
 324   1              for(i = 0; i < 4; i++)
 325   1              {
 326   1                      Send(buf5460[i]);
 327   1              }*/
 328   1      
 329   1      while(1);
 330   1         CS5532_Txd(0x03);    // Soft Reset 
 331   1         CS5532_Txd(0x2A);
 332   1         CS5532_Txd(0x00);
 333   1         CS5532_Txd(0x04);
 334   1         CS5532_Txd(0x00);
 335   1      
 336   1         CS5532_Txd(0x0B);    // Read Config Reg
 337   1         DBYTE[address_pt++]=0x0B;
 338   1         read_reg(address_pt);
 339   1                      P1 = 0x00;
 340   1         address_pt = address_pt +4;
 341   1         CS5532_Txd(0x0B);    // Read Config Reg
 342   1         DBYTE[address_pt++]=0x0B;
 343   1         read_reg(address_pt);
 344   1         address_pt = address_pt +4;
 345   1      //////////////////////////////////////////////
 346   1      
 347   1         CS5532_Txd(0x05);    // Setup REG 
 348   1         CS5532_Txd(0x32);
 349   1         CS5532_Txd(0x34);
 350   1         CS5532_Txd(0x00);
 351   1         CS5532_Txd(0x00);
 352   1        
 353   1         CS5532_Txd(0x03);    // Config ReG 
 354   1         CS5532_Txd(0x40);
 355   1         CS5532_Txd(0x00);
 356   1         CS5532_Txd(0x00);
 357   1         CS5532_Txd(0x00);
 358   1      
 359   1         CS5532_Txd(0x03);    // Config ReG 
 360   1         CS5532_Txd(0xC0);
 361   1         CS5532_Txd(0x00);
 362   1         CS5532_Txd(0x00);
 363   1         CS5532_Txd(0x00);
 364   1      
 365   1         CS5532_Txd(0x03);    // Config ReG 
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 7   

 366   1         CS5532_Txd(0x01);
 367   1         CS5532_Txd(0x80);
 368   1         CS5532_Txd(0x00);
 369   1         CS5532_Txd(0x00);
 370   1      
 371   1         CS5532_Txd(0x0B);    // Read Config Reg
 372   1         DBYTE[address_pt++]=0x0B;
 373   1         read_reg(address_pt);
 374   1         address_pt = address_pt +4;
 375   1      
 376   1         CS5532_Txd(0x0D);    // Read Setup Reg
 377   1         DBYTE[address_pt++]=0x0D;
 378   1         read_reg(address_pt);
 379   1         address_pt = address_pt +4;
 380   1       
 381   1      
 382   1         _nop_(); _nop_(); _nop_(); _nop_();
 383   1      
 384   1        address_pt  = 52; 
 385   1        CS5532_CS=1;          // 未校准前转换
 386   1        CS5532_Txd(0x80);
 387   1        while(CS5532_SDO)
 388   1        _nop_();  _nop_(); _nop_(); _nop_();
 389   1        DBYTE[address_pt++]=0x80;
 390   1        read_data(address_pt);
 391   1        address_pt = address_pt +4;
 392   1        _nop_();  _nop_(); _nop_(); _nop_();
 393   1      
 394   1      /*
 395   1        CS5532_Txd(0x81);    // 自偏移校准
 396   1        while(CS5532_SDO)
 397   1        _nop_();  _nop_(); _nop_(); _nop_();
 398   1      */
 399   1      
 400   1      /*
 401   1        CS5532_Txd(0x82);    //  自增益校准
 402   1        while(CS5532_SDO)
 403   1        _nop_();  _nop_(); _nop_(); _nop_();
 404   1      */
 405   1      
 406   1      
 407   1        CS5532_Txd(0x85);    // 偏移校准
 408   1        while(CS5532_SDO)
 409   1        _nop_();  _nop_(); _nop_(); _nop_();
 410   1          
 411   1      
 412   1      /*
 413   1        CS5532_Txd(0x86);    //  增益校准
 414   1        while(CS5532_SDO)
 415   1        _nop_();  _nop_(); _nop_(); _nop_();
 416   1      */
 417   1      
 418   1      /*
 419   1                               // 测试寄存器写回默认值
 420   1         CS5532_Txd(0x07);    // REF TEST 
 421   1         CS5532_Txd(0x00);
 422   1         CS5532_Txd(0x00);
 423   1         CS5532_Txd(0x1A);
 424   1         CS5532_Txd(0x00);
 425   1      */
 426   1      
 427   1      //单次转换
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 8   

 428   1      //////////////////////////////////////////////////
 429   1      
 430   1      for(i=0;i<5;i++)
 431   1       {
 432   2         CS5532_CS=1;
 433   2         _nop_(); _nop_(); _nop_(); _nop_();
 434   2         _nop_(); _nop_(); _nop_(); _nop_(); 
 435   2         _nop_(); _nop_(); _nop_(); _nop_(); 
 436   2      //  address_pt = 48;
 437   2        CS5532_Txd(0x80);
 438   2        while(CS5532_SDO)
 439   2        _nop_();  _nop_(); _nop_(); _nop_();
 440   2        DBYTE[address_pt++]=0x80;
 441   2        read_data1(address_pt);
 442   2        for(k = 0; k < 4;k++)
 443   2        {
 444   3                Send(DBYTE[address_pt+i]);
 445   3        }
 446   2      
 447   2        address_pt = address_pt +4;
 448   2        for(k=0;k<20;k++)  _nop_();  
 449   2        }
 450   1      
 451   1       // 连续转换
 452   1       //*************************************************** 
 453   1      
 454   1           CS5532_Txd(0xC0);//连续转换命令
 455   1        while(CS5532_SDO)
 456   1           _nop_();  _nop_(); _nop_(); _nop_();  
 457   1      
 458   1        for(i=0;i<5;i++)
 459   1       {  
 460   2         for(k=0;k<20;k++)  _nop_();//delay1 
 461   2      //  address_pt = 48;
 462   2         while(CS5532_SDO)
 463   2           _nop_();  _nop_(); _nop_(); _nop_();
 464   2        DBYTE[address_pt++]=0xC0;
 465   2        read_data1(address_pt);
 466   2           address_pt = address_pt +4;
 467   2         for(k=0;k<20;k++)  _nop_(); //delay
 468   2       }
 469   1      
 470   1         for(i=0;i<5;i++)
 471   1       {  
 472   2         for(k=0;k<20;k++)  _nop_();//delay1 
 473   2      //  address_pt = 48;
 474   2         while(CS5532_SDO)
 475   2           _nop_();  _nop_(); _nop_(); _nop_();
 476   2        DBYTE[address_pt++]=0xC0;
 477   2        read_data1(address_pt);
 478   2           address_pt = address_pt +4;
 479   2         for(k=0;k<20;k++)  _nop_(); //delay
 480   2        }
 481   1      
 482   1        while(CS5532_SDO)
 483   1            _nop_();  _nop_(); _nop_(); _nop_();
 484   1           CS5532_Txd(0xFF);
 485   1           CS5532_Txd(0x00);
 486   1           CS5532_Txd(0x00);
 487   1           CS5532_Txd(0x00);
 488   1           CS5532_Txd(0x00);
 489   1      
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 9   

 490   1         CS5532_Txd(0x0B);    // Read Config Reg
 491   1         DBYTE[address_pt++]=0x0B;
 492   1         read_reg(address_pt);
 493   1         address_pt = address_pt +4;
 494   1      
 495   1         CS5532_Txd(0x03);    // Power Save Select 
 496   1         CS5532_Txd(0x80);
 497   1         CS5532_Txd(0x00);
 498   1         CS5532_Txd(0x00);
 499   1         CS5532_Txd(0x00);
 500   1      
 501   1      _nop_();
 502   1      }
 503          
 504          
 505           
 506          void  read_reg(uchar address_pt)
 507          {
 508   1       uchar i,j;
 509   1      // EX1=0;     

⌨️ 快捷键说明

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