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

📄 1730.lst

📁 isd1700系列语音芯片用C51实现~! 很好
💻 LST
📖 第 1 页 / 共 2 页
字号:
 276          { 
 277   1        ISD_SendData(0x41);
 278   1        ISD_SendData(0x00);
 279   1        SS=1;
 280   1        delay_ms(10);
 281   1      }
 282          /****************************************************************************
 283          *函数类型:void ISD_WR_APC2(void);
 284          *写APC寄存器,
 285          ******************************************************************************/
 286           void ISD_WR_APC2(void)
 287           {
 288   1         ISD_SendData(0x75);
 289   1         ISD_SendData(0x47);
 290   1         ISD_SendData(0x04);
 291   1         SS=1;
 292   1         delay_ms(20);
 293   1         ISD_WR_NVCFG();
 294   1       }
 295          
 296          
 297          /****************************************************************************
 298          *函数类型:void ISD_PLAY(void);
 299          *播放当前端语音
 300          ******************************************************************************/
 301          void ISD_PLAY(void)
 302          {
 303   1        ISD_SendData(0x40);
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 6   

 304   1        ISD_SendData(0x00);
 305   1        SS=1;
 306   1        delay_ms(10);
 307   1      }
 308          
 309          
 310          
 311          /**************************************************************************  
 312          *    函数原型: void ISD_PU(void);  
 313          *    功    能: 上电  
 314          **************************************************************************/  
 315          void  ISD_PU(void) 
 316          {  
 317   1              ISD_SendData(0x11);  
 318   1              ISD_SendData(0x00);  
 319   1              SS=1;  
 320   1             delay_ms(50);  
 321   1      }  
 322          
 323          /**************************************************************************  
 324          *    函数原型: void ISD_PD(void);  
 325          *    功    能: 掉电  
 326          **************************************************************************/  
 327            
 328          void ISD_PD(void) 
 329          {  
 330   1              ISD_SendData(PD);  
 331   1              ISD_SendData(0x00);  
 332   1              SS=1;  
 333   1      }  
 334          
 335          /**************************************************************************  
 336          *    函数原型: void ISD_SendData(uchar BUF_ISD);  
 337          *    功    能: 发送数据  
 338          **************************************************************************/  
 339          uchar ISD_SendData(uchar BUF_ISD) 
 340          {  
 341   1              uchar i,dat=BUF_ISD;  
 342   1              SCLK=1;  
 343   1              SS=0;  
 344   1              for(i=0;i<8;i++){  
 345   2                      SCLK=0;  
 346   2                      I_delay();  
 347   2                      if(dat&0x01){  
 348   3                              MOSI=1;  
 349   3                      }  
 350   2                      else{  
 351   3                              MOSI=0;  
 352   3                      }  
 353   2                      dat>>=1;  
 354   2                      if(MISO){  
 355   3                              dat|=0x80;  
 356   3                      }  
 357   2                      SCLK=1;  
 358   2                      I_delay();  
 359   2              }  
 360   1              MOSI=0;  
 361   1           return(dat);  
 362   1      }  
 363          
 364          /**************************************************************************  
 365          *    函数原型: void RdStatus(void);  
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 7   

 366          *    功    能: 读取状态  
 367          **************************************************************************/  
 368          void RdStatus(void) 
 369          {  
 370   1              ISD_SendData(RD_STATUS);  
 371   1              ISD_SendData(0x00);  
 372   1              ISD_SendData(0x00);  
 373   1              SS=1;  
 374   1              delay_ms(10);               //延迟10ms  
 375   1              SR0_L =ISD_SendData(RD_STATUS); 
 376   1                       
 377   1              SR0_H =ISD_SendData(0x00);  
 378   1              SR1  =ISD_SendData(0x00);  
 379   1              SS=1;
 380   1                      delay_ms(10);
 381   1      
 382   1               /*   SBUF=SR0_H;  
 383   1              delay_ms(500);
 384   1                      ES=1;  
 385   1              SBUF=SR0_L;  
 386   1              delay_ms(500);
 387   1                      ES=1;  
 388   1              SBUF=SR1;  */
 389   1             
 390   1                 
 391   1       
 392   1                                 
 393   1      } 
 394          /**************************************************************************  
 395          *    函数原型: void ISD_RD_PLAY_PTR(void)  
 396          *    功    能: 读取状态寄存器,当前地址和播放指针;  
 397          **************************************************************************/  
 398          void ISD_RD_PLAY_PTR(void)
 399          {
 400   1              uchar APCH,APCL;
 401   1         ISD_SendData(0X16);
 402   1         ISD_SendData(0X00);
 403   1         ISD_SendData(0X00);
 404   1         ISD_SendData(0X00);
 405   1         SS=1;
 406   1               
 407   1                      SBUF=SR0_H;  
 408   1              delay_ms(500);  
 409   1              SBUF=SR0_L;  
 410   1              delay_ms(500);  
 411   1              SBUF=APCH;  
 412   1              delay_ms(500);  
 413   1              SBUF=APCL;  
 414   1       //        while(1);
 415   1      
 416   1      }
 417          
 418          
 419          
 420          /**************************************************************************  
 421          *    函数原型: void ClrInt(void);  
 422          *    功    能: 清除中断  
 423          **************************************************************************/  
 424          void ClrInt(void) 
 425          {  
 426   1              ISD_SendData(CLI_INT);  
 427   1              ISD_SendData(0x00);  
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 8   

 428   1              SS=1;  
 429   1              delay_ms(10);               //延迟10ms  
 430   1      }  
 431          
 432          /**************************************************************************  
 433          *    函数原型: void Erase_All(void);  
 434          *    功    能: 全部删除  
 435          **************************************************************************/  
 436          void Erase_All(void) 
 437          {  
 438   1              ISD_SendData(G_ERASE);  
 439   1              ISD_SendData(0x00);  
 440   1              SS=1;  
 441   1              delay_ms(100);               //延迟10ms  
 442   1      }  
 443          
 444          /**************************************************************************  
 445          *    END  
 446          *    END  
 447          **************************************************************************/  
 448          void com(void)  interrupt 4 using 2
 449          {
 450   1         
 451   1              TI=0;
 452   1              ES=0;
 453   1      
 454   1      }
 455          
 456          
 457          
 458          
 459          void main(void)                                                                                           
             -                              
 460          { 
 461   1         delay_ms(10);
 462   1         ISD_PU();
 463   1         delay_ms(50);
 464   1         
 465   1        do {   
 466   2              ISD_PU();  
 467   2              RdStatus();  
 468   2                    
 469   2            }while((SR0_L&0x01)||(!(SR1&0x01)));
 470   1      
 471   1           ISD_REC();
 472   1       /* do {
 473   1             ISD_REC();
 474   1           
 475   1            }while(SR0_L&0x01);
 476   1       
 477   1        do {   
 478   1              RdStatus();  
 479   1                                                 
 480   1            }while((SR0_L&0x01)||(!(SR1&0x08)));*/
 481   1         
 482   1           delay_ms(100000);
 483   1           ISD_STOP();
 484   1          
 485   1           delay_ms(3000);
 486   1      
 487   1            ISD_PLAY();
 488   1        
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 9   

 489   1         
 490   1        
 491   1                           
 492   1           
 493   1           delay_ms(3000);
 494   1      
 495   1        //   ISD_ERASE();
 496   1        
 497   1      
 498   1         
 499   1               
 500   1        
 501   1        
 502   1                
 503   1         
 504   1        
 505   1      
 506   1         
 507   1      
 508   1       
 509   1       //  ISD_STOP();
 510   1      
 511   1      
 512   1       while(1);
 513   1              
 514   1      
 515   1        
 516   1                
 517   1                      
 518   1         
 519   1         
 520   1          
 521   1       }      
 522                           
 523                  
 524                  
 525                            
 526          
 527           
 528          
 529                 
 530           
 531          
 532          
 533          
 534          
 535                  
 536                  
 537          
 538                                
 539          
 540          
 541                   


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    812    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      11
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 10  

   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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