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

📄 main.lst

📁 ISD4004芯片的语音录放程序
💻 LST
字号:
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 10:50:26 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "SM8958k.H"
   2          
   3          #define OSC_FREQ                11059600L       
   4          #define RCAP2_10ms             65536L - OSC_FREQ/1200L
   5          #define uchar                   unsigned char
   6          #define uint                    unsigned int
   7          sfr16   RCAP2LH                = 0xCA;
   8          sfr16   T2LH                   = 0xCC;
   9          
  10          sbit led=P0^6;
  11          
  12          sbit SS = P1^1;                         //片选
  13          sbit SCLK = P1^0;                       //ISD4004时钟
  14          sbit MOSI = P1^2;                       //数据输入
  15          sbit MISO = P1^3;                       //数据输出
  16          sbit LED = P1^7;                        //指示灯
  17          sbit AN = P2^2;                         //执行
  18          sbit STOP = P1^5;                       //复位
  19          sbit PR = P2^3;                         //PR = 0录音,PR = 1放音
  20          sbit INT = P1^4;                                //中断
  21          bit reccon;
  22          
  23          
  24          void    delay_10ms (unsigned int _10ms)
  25          {
  26   1        RCAP2LH = RCAP2_10ms;
  27   1        T2LH    = RCAP2_10ms;
  28   1        ET2 = 0;      // Disable timer2 interrupt
  29   1        T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
  30   1      
  31   1        while (_10ms--)
  32   1        { 
  33   2              while (!TF2)
  34   2              {
  35   3      
  36   3              }
  37   2              TF2 = 0;
  38   2        }
  39   1        TR2 =0;
  40   1      
  41   1      }
  42          
  43          void putbyte(unsigned char c)
  44          {
  45   1      SBUF=c;
  46   1      while(!TI);TI=0;
  47   1      }
  48          
  49          urtinit()
  50          {  TMOD = 0x21;                 
  51   1         PCON = 0x80;                 
  52   1         SCON = 0x50;                 
  53   1         TH1=0xFD; TL1=0xFD; TR1=1;
  54   1         IP = 0x10;//0x04;
  55   1        // EA=1;
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 10:50:26 PAGE 2   

  56   1         putbyte(1);
  57   1         putbyte(2);
  58   1         putbyte(3);
  59   1         putbyte(4);
  60   1         putbyte(5);
  61   1      }
  62          void ledflash(uint k,uchar h)
  63                  {
  64   1              while(h--)
  65   1                      {
  66   2                      led=1;
  67   2                     delay_10ms(k);
  68   2                      led=0;
  69   2                    delay_10ms(k);
  70   2                      }
  71   1              }
  72          
  73          
  74          /* ISD4004 SPI 写入程序 */
  75          
  76          void ISDX( unsigned char d)
  77          {
  78   1              unsigned char i,j;
  79   1              SS = 0;                                         //开片选
  80   1              SCLK = 0;                                       //时钟 SCLK = 0 
  81   1              j = d;
  82   1              for( i = 0;i < 8;i++)
  83   1              {
  84   2                      if( j & 0x01 )                          //数据写 MOSI 
  85   2                      {
  86   3                              MOSI = 1;
  87   3                      }
  88   2                      else
  89   2                      {
  90   3                              MOSI = 0;
  91   3                      }
  92   2                      SCLK = 1;                               //时钟 SCLK = 1
  93   2                      j = j >> 1;
  94   2                      SCLK = 0;                               //时钟 SCLK = 0
  95   2              }
  96   1      }
  97          
  98          
  99          
 100          /* ISD 上电 */
 101          
 102          void powerup( )
 103          {
 104   1              ISDX(0x20 );                                    //发 00100XXXXXXXXXXX
 105   1              SS = 1;                                         //关片选
 106   1      
 107   1      }
 108          //停止当前操作<< STOP >>  8位
 109          void STOPP( )
 110          {
 111   1              ISDX(0x30 );                                    //发 0X110XXX
 112   1              SS = 1;                                         //关片选
 113   1      }
 114          
 115          //;停止当前操作掉电<< STOPPWRDN >>   8位
 116          void DSTOP( )
 117          {
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 10:50:26 PAGE 3   

 118   1              ISDX(0x10 );                                    //发 0X010XXXXXXXXXX                            
 119   1              SS = 1;                                         //关片选
 120   1              delay_10ms(5);                                  //延时 50 ms
 121   1              delay_10ms(5);                                  //延时 50 ms
 122   1      }
 123          
 124          
 125          
 126          void record4004() //录音 address--录音地址 0---2400
 127          {
 128   1      powerup(); //发送上电命令
 129   1      delay_10ms(5); //延时50ms
 130   1      powerup();//发送上电命令
 131   1      delay_10ms(5);//上电延时
 132   1      delay_10ms(5);//上电延时
 133   1      ISDX(0);  //从00开始录音
 134   1      ISDX(0);
 135   1      ISDX(0xB0); //发送录音命令
 136   1      
 137   1      }
 138          
 139          checkanjian()
 140          {if(AN==0)
 141   1       delay_10ms(20);
 142   1       if(AN==0)
 143   1       {
 144   2        if(reccon==1)
 145   2        {reccon=0;
 146   3         //led=0;
 147   3        }
 148   2        else 
 149   2        {reccon=1;
 150   3        // led=1;
 151   3        }
 152   2        
 153   2       }
 154   1      }
 155          
 156          main()
 157          { 
 158   1      
 159   1        
 160   1              unsigned char delay;            //延时参数
 161   1              unsigned char isdl,isdh;        //ISD高、低位
 162   1              unsigned char n1;
 163   1          urtinit();
 164   1          reccon=1;
 165   1              DSTOP();                        //ISD掉电
 166   1         delay_10ms(50);
 167   1         checkanjian();
 168   1         if(reccon==1)
 169   1         {led=1;//亮灯 放音
 170   2          powerup(); //发送上电命令
 171   2          delay_10ms(5); //延时50ms
 172   2              ISDX(0);  
 173   2          ISDX(0);
 174   2          ISDX(0);
 175   2          delay_10ms(5);
 176   2              ISDX(0xf0);
 177   2          }
 178   1          else 
 179   1          {led=0;//灭灯  录音
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 10:50:26 PAGE 4   

 180   2            
 181   2           delay_10ms(5);
 182   2               powerup(); //发送上电命令
 183   2                  delay_10ms(5); //延时50ms
 184   2                  powerup();//发送上电命令
 185   2                  delay_10ms(5);//上电延时
 186   2                  delay_10ms(5);//上电延时
 187   2                  ISDX(0);  //从00开始录音
 188   2                  ISDX(0);
 189   2                  ISDX(0);
 190   2                  ISDX(0xB0 );
 191   2                    //  if( INT )
 192   2                    //  {LED = 1;             //指示灯
 193   2                    //   STOPP();             //停止当前操作
 194   2                    //   reccon=1;
 195   2                    //  }
 196   2      
 197   2             }
 198   1      
 199   1              while(1)
 200   1              {;
 201   2             
 202   2                }
 203   1      
 204   1      }
*** WARNING C280 IN LINE 160 OF MAIN.C: 'delay': unreferenced local variable
*** WARNING C280 IN LINE 161 OF MAIN.C: 'isdl': unreferenced local variable
*** WARNING C280 IN LINE 161 OF MAIN.C: 'isdh': unreferenced local variable
*** WARNING C280 IN LINE 162 OF MAIN.C: 'n1': unreferenced local variable
 205          
 206          
 207          
 208          
 209          
 210          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    306    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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