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

📄 1730.lst

📁 isd1700系列语音芯片用C51实现~! 很好
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 1730
OBJECT MODULE PLACED IN 1730.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1730.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<SPI.H>  
   2          #include <reg52.H> 
   3          #include <absacc.h> 
   4          #include <intrins.h> 
   5          #include <math.h> 
   6          
   7          sbit SS=P2^3;  
   8          sbit SCLK=P2^2;  
   9          sbit MOSI= P2^1;  
  10          sbit MISO =P2^0;  
  11          
  12          
  13          uchar bdata SR0_L;  
  14          uchar bdata SR0_H;  
  15          uchar bdata SR1;  
  16          
  17          
  18          
  19          /*************延时n ms子函数**************************/ 
  20          void delay_ms(unsigned int tt)//延时1ms 
  21          { 
  22   1              unsigned char j; 
  23   1              while(tt--) 
  24   1          { 
  25   2                      for(j=0;j<125;j++); 
  26   2              } 
  27   1      }  
  28          
  29          void I_delay(void) 
  30          {      
  31   1          unsigned char i; 
  32   1         for(i=0;i<18;i++) 
  33   1           _nop_(); 
  34   1      }
  35          /**************************************************************************  
  36          *    函数原型: void ISD_ERASE(void) 
  37          *    功    能: 擦出当前段
  38          **************************************************************************/ 
  39          void ISD_ERASE(void) 
  40          {
  41   1         ISD_SendData (0x52);
  42   1         ISD_SendData (0x00);
  43   1         SS=1;
  44   1         delay_ms(10);
  45   1        
  46   1      }
  47          
  48          
  49          
  50          /**************************************************************************  
  51          *    函数原型: void init_serialcomm(void) 
  52          *    功    能: 串口 
  53          **************************************************************************/  
  54          void init_serialcomm(void) 
  55          { 
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 2   

  56   1          SCON  = 0x40;       //选择串口工作于方式1 
  57   1          TMOD  =  0x20;       //定时器T1 设置为工作方式2,用作波特率发生器 
  58   1          PCON  =  0x00;       //SMOD=1;  
  59   1          TH1   = 0xFd;       //按照波特率为9600 计算初值  
  60   1          TL1   = 0xFd;        
  61   1      //    IE   |= 0x80;       //Enable Serial Interrupt  
  62   1          EA    = 1;
  63   1              ES=1; 
  64   1          TR1   = 1;          // timer 1 run  
  65   1      } 
  66          void send_char_com(uchar ch)   
  67          { 
  68   1              TI=0;
  69   1          SBUF=ch;
  70   1              
  71   1      
  72   1      } 
  73          /*/**************************************************************************  
  74          *    函数原型: void RD_APC(void);  
  75          *    功    能: 读取APC  
  76          **************************************************************************/ 
  77          void ISD_FWD(void)
  78          
  79          {  ISD_SendData(0x58);
  80   1         ISD_SendData(0x00);
  81   1         SS=1;
  82   1         delay_ms(10) ;
  83   1      
  84   1      
  85   1      }
  86          
  87          
  88          
  89          /*/**************************************************************************  
  90          *    函数原型: void RD_APC(void);  
  91          *    功    能: 读取APC  
  92          **************************************************************************/  
  93          void RdAPC(void){ 
  94   1      
  95   1                      uchar APCH,APCL;
  96   1              ISD_SendData(RD_APC);  
  97   1              ISD_SendData(0x00);  
  98   1              ISD_SendData(0x00);  
  99   1              ISD_SendData(0x00);  
 100   1              SS=1;  
 101   1              delay_ms(10);               //延迟10ms  
 102   1      
 103   1              SR0_L        =ISD_SendData(RD_APC);  
 104   1              SR0_H        =ISD_SendData(0x00);  
 105   1              APCL        =ISD_SendData(0x00);  
 106   1              APCH        =ISD_SendData(0x00);  
 107   1              SS=1;  
 108   1              delay_ms(10);               //延迟10ms  
 109   1        
 110   1              SBUF=SR0_H;
 111   1                        
 112   1              delay_ms(500);  
 113   1              SBUF=SR0_L;  
 114   1              delay_ms(500);  
 115   1              SBUF=APCH;  
 116   1              delay_ms(500);  
 117   1              SBUF=APCL;  
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 3   

 118   1               
 119   1      }  
 120          /**************************************************************************  
 121          *    函数原型:void ISD_STOP(void)  
 122          *    功    能: 停止当前操作
 123          **************************************************************************/ 
 124          void ISD_STOP(void)
 125          {
 126   1        ISD_SendData(STOP);
 127   1        ISD_SendData(0X00);
 128   1        SS=1;
 129   1        delay_ms(20);
 130   1      
 131   1      }
 132          
 133          
 134          
 135          /**************************************************************************  
 136          *    函数原型: uchar RD_DevID(void)  
 137          *    功    能: 读ID 
 138          **************************************************************************/ 
 139          
 140          uchar RD_DevID(void)
 141          {               uchar ID;
 142   1              ISD_SendData(RD_DEVID);  
 143   1              ISD_SendData(0x00);  
 144   1              ISD_SendData(0x00);  
 145   1              SS=1;  
 146   1              delay_ms(10);               //延迟10ms  
 147   1              SR0_L  =ISD_SendData(RD_DEVID);  
 148   1              SR0_H  =ISD_SendData(0x00);  
 149   1              ID    =ISD_SendData(0x00);  
 150   1              SS=1;  
 151   1              delay_ms(10);  
 152   1              return(ID);  
 153   1      
 154   1      }
 155          /**************************************************************************  
 156          *    函数原型: void ISD_Reset(void)  
 157          *    功    能: 复位
 158          **************************************************************************/ 
 159          void ISD_Reset(void)
 160          { 
 161   1        ISD_SendData(0x13);
 162   1        ISD_SendData(0x00);
 163   1        SS=1;
 164   1        delay_ms(50) ;
 165   1      
 166   1      
 167   1      }
 168          
 169          /**************************************************************************  
 170          *    函数原型: void ISD_WR_NVCFG(void);  
 171          *    功    能: 永久写入寄存器  
 172          **************************************************************************/  
 173          void ISD_WR_NVCFG(void)
 174          {  
 175   1              ISD_SendData(WR_NVCFG);  
 176   1              ISD_SendData(0x00);  
 177   1              SS=1;  
 178   1              delay_ms(10);               //延迟10ms  
 179   1      }  
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 4   

 180          
 181          
 182          /**************************************************************************  
 183          *    函数原型: void ISD_Init(void);  
 184          *    功    能: 初始化  
 185          **************************************************************************/  
 186          void   ISD_Init(void)
 187          {  
 188   1              ISD_Reset();  
 189   1              do{   
 190   2                       P1=0; 
 191   2                      ISD_PU();  
 192   2                      RdStatus();  
 193   2                     
 194   2              }while((SR0_L&0x01)||(!(SR1&0x01)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>  
 195   1                       
 196   1              SBUF=RD_DevID();//读取芯片ID,----1760为0xa0  
 197   1              ClrInt();  
 198   1              ISD_WR_APC2();  
 199   1              RdAPC();  
 200   1      }  
 201          /**************************************************************************  
 202          *    函数原型: void SetREC(uchar cNum);  
 203          *    功    能: 定点录音  
 204          **************************************************************************/  
 205          void SetREC(void) 
 206          {  
 207   1                uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;  
 208   1      
 209   1              do{  
 210   2                      RdStatus();  
 211   2                   
 212   2                 }while((SR0_L&0x01)||(!(SR1&0x01)));       
 213   1      
 214   1               ClrInt();  
 215   1               Add_ST_L=0x00; 
 216   1               Add_ED_L=0xFF; 
 217   1               Add_ST_H=0X00;
 218   1               Add_ED_H=0X00; 
 219   1               
 220   1              ISD_SendData(0x91);  
 221   1              ISD_SendData(0x00);  
 222   1              ISD_SendData(Add_ST_L);                  //S7:S0  开始地址  
 223   1              ISD_SendData(Add_ST_H);                  //S10:S8  
 224   1              ISD_SendData(Add_ED_L);                  //E7:E0  结束地址  
 225   1              ISD_SendData(Add_ED_H);                 //E10:E8  
 226   1              ISD_SendData(0x00);  
 227   1              SS=1;  
 228   1              delay_ms(10);               //延迟10ms  
 229   1      
 230   1            do{  
 231   2                     RdStatus();  
 232   2                  
 233   2               }while((SR0_L&0x01)||(!(SR1&0x01)));        //if(SR0_L^0==1){system Err}<CMD_Err==1> 
 234   1                        
 235   1      }  
 236          
 237          /**************************************************************************  
 238          *    函数原型: void SetPLAY(uchar cNum);  
 239          *    功    能: 定点播放  
 240          **************************************************************************/  
 241          void SetPLAY(void) 
C51 COMPILER V7.06   1730                                                                  11/26/2008 23:50:30 PAGE 5   

 242              {  
 243   1                  uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L; 
 244   1             do{  
 245   2                     RdStatus();  
 246   2                      
 247   2               }while((SR0_L&0x01)||(!(SR1&0x01)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>   
 248   1              
 249   1                    ClrInt();  
 250   1                        Add_ST_L=0x00; 
 251   1                Add_ED_L=0xFF; 
 252   1                Add_ST_H=0X00;                    
 253   1                Add_ED_H=0X00;                  
 254   1              ISD_SendData(0x90);  
 255   1              ISD_SendData(0x00);  
 256   1              ISD_SendData(Add_ST_L);                 //S7:S0  开始地址  
 257   1              ISD_SendData(Add_ST_H);                  //S10:S8  
 258   1              ISD_SendData(Add_ED_L);                  //E7:E0  结束地址  
 259   1              ISD_SendData(Add_ED_H);                  //E10:E8  
 260   1              ISD_SendData(0x00);  
 261   1              SS=1;  
 262   1              delay_ms(10);               //延迟10ms  
 263   1      
 264   1              do{  
 265   2                      RdStatus();  
 266   2                   
 267   2              }while((SR0_L&0x01)||((SR1&0x04)));        
 268   1                           
 269   1             
 270   1      } 
 271          /****************************************************************************
 272          *函数类型:void ISD_REC(void);
 273          *从当前开始录音;,
 274          ******************************************************************************/
 275          void ISD_REC(void)

⌨️ 快捷键说明

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