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

📄 text1.lst

📁 ISD4004 录放音c51程序(c语言)
💻 LST
字号:
C51 COMPILER V7.06   TEXT1                                                                 11/21/2008 22:16:05 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: E:\京-应用程序\Uv2-单片机\C51\BIN\C51.EXE Text1.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #include<intrins.h>
   3          
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          #define hi 0x3c
   7          #define lo 0xb0
   8          
   9          sbit P37=P3^7;  
  10          sbit P24=P2^4;
  11          sbit P25=P2^5;
  12          sbit P26=P2^6;
  13          sbit P27=P2^7;
  14          sbit P10=P1^0;
  15          
  16          sbit ISD4004_SS=P1^2;          //语音
  17          sbit ISD4004_MOSI=P1^1;
  18          sbit ISD4004_SCLK=P1^3;
  19          
  20          code unsigned char table1[]={0,1,2,3,4,5,6,7,8,9,10,11}  ;
  21          unsigned char key_flag, key_count,t0_count,mask=0xee,key;
  22          code unsigned char table[]={0x00,0x00,0x00,0x65,           //语音地址表
  23                                 0x00,0xc9,0x01,0x2d,
  24                                 0x01,0x91,0x01,0xf5,
  25                                 0x02,0x59,0x02,0xbd,
  26                                 0x03,0x21,0x03,0x85,
  27                                 0x03,0xb7,0x03,0xe8,
  28                                                     0x04,0x1a,0x04,0x4c,
  29                                 0x04,0x7e,0x04,0xb0,
  30                                                     0x04,0xe2,0x05,0x14,
  31                                 0x05,0x46,0x05,0x78,
  32                                                     0x05,0xaa,0x05,0xdc,
  33                                                     0x06,0x0e,0x06,0x40,
  34                                                     0x06,0x72,0x06,0xa4,
  35                                                     0x06,0xd6,0x07,0x08,
  36                                                     0x07,0x3a,0x07,0x6c
  37                                                     }; 
  38          
  39          
  40          void t1() interrupt 1 //定时中断2 函数:防键抖动
  41          {TH0=hi;TL0=lo;key_count++;t0_count++;
  42   1      if(t0_count==20)t0_count=0;
  43   1      if(key_count>10)key_count=10;
  44   1      }
  45          //============================================================
  46          //函数名称:void delay25ms()
  47          //函数功能:延迟25ms
  48          //日期:2007.03.31
  49          //============================================================
  50          void delay25ms()
  51          {
  52   1          unsigned int i;
  53   1          for(i=0;i<=5000;i++);
  54   1      }  
  55          
C51 COMPILER V7.06   TEXT1                                                                 11/21/2008 22:16:05 PAGE 2   

  56          
  57          //===========================================================
  58          //函数名称:void ISD4004_ISD4004_Send(unsigned char m)
  59          //函数功能:给ISD4004送命令
  60          //日期:2007.03.31
  61          //===========================================================
  62          void ISD4004_Send(unsigned char m)
  63          {
  64   1          unsigned char i,j;
  65   1          for(i=0;i<8;i++)
  66   1          {
  67   2              ISD4004_SCLK = 0;
  68   2                      for(j=0;j<5;j++);
  69   2              if(m&0x01)
  70   2                  ISD4004_MOSI=1;
  71   2              else
  72   2                  ISD4004_MOSI=0;
  73   2                      ISD4004_SCLK=1;
  74   2              for(j=0;j<5;j++);
  75   2              m=m>>1;
  76   2          }
  77   1      }
  78          
  79          
  80          
  81          //===========================================================
  82          //函数名称:void ISD4004_Powerup()
  83          //函数功能:ISD4004上电
  84          //日期:2007.03.31
  85          //===========================================================
  86          void ISD4004_Powerup()
  87          {
  88   1          ISD4004_SS=0;                        //开片选
  89   1          ISD4004_Send(0x20);
  90   1          delay25ms();
  91   1          ISD4004_SS=1;                        //关片选
  92   1      }
  93          
  94          
  95          //============================================================
  96          //函数名称:void ISD4004_Stop()
  97          //函数功能:ISD4004停止
  98          //日期:2007.03.31
  99          //============================================================
 100          void ISD4004_Stop()
 101          {
 102   1          ISD4004_SS=0;
 103   1          ISD4004_Send(0x30);
 104   1          ISD4004_SS=1;
 105   1      }
 106          
 107          
 108          //===========================================================
 109          //函数名称:void ISD4004_Powerdown()
 110          //函数功能:下电  停止并掉电
 111          //日期:2007.03.31
 112          //===========================================================
 113          void ISD4004_Powerdown()
 114          {
 115   1          ISD4004_SS=0;
 116   1          ISD4004_Send(0x10);
 117   1          ISD4004_SS=1;
C51 COMPILER V7.06   TEXT1                                                                 11/21/2008 22:16:05 PAGE 3   

 118   1      }
 119          
 120          
 121          //==========================================================
 122          //函数名称:void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
 123          //函数功能:放音
 124          //日期:2007.03.31
 125          //==========================================================
 126          void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
 127          {
 128   1          
 129   1          ISD4004_SS=0;
 130   1          ISD4004_Send(addr_l);
 131   1          ISD4004_Send(addr_h);
 132   1          ISD4004_Send(0xe0);
 133   1          ISD4004_SS=1;
 134   1              
 135   1          ISD4004_SS=0;
 136   1          ISD4004_Send(0xf0);
 137   1          ISD4004_SS=1;
 138   1      }
 139          
 140          //================================================================
 141          void ISD4004_Rec(unsigned char addr_h,unsigned char addr_l)
 142          {
 143   1          ISD4004_SS=0;
 144   1          ISD4004_Send(addr_l);
 145   1          ISD4004_Send(addr_h);
 146   1          ISD4004_Send(0xa0);
 147   1          ISD4004_SS=1;
 148   1      
 149   1          ISD4004_SS=0;
 150   1          ISD4004_Send(0xb0);
 151   1          ISD4004_SS=1;
 152   1      }
 153          
 154          
 155          //================================================================
 156          //函数名称:void fangyin()
 157          //函数功能:语音 addr为地址
 158          //日期:2007.03.31
 159          //================================================================
 160          void fangyin(uchar addr)
 161          { 
 162   1          uchar a;
 163   1          ISD4004_Powerup();
 164   1          delay25ms();
 165   1          a = addr * 2;   
 166   1          ISD4004_Play(table[a],table[a+1]);     
 167   1      }
 168          
 169          //================================================================
 170          //函数名称:void luyin()
 171          //函数功能:语音 addr为地址
 172          //日期:2007.03.31
 173          //================================================================
 174          void luyin(uchar addr)
 175          { 
 176   1          uchar a;
 177   1          ISD4004_Powerup();
 178   1          delay25ms();
 179   1              delay25ms();
C51 COMPILER V7.06   TEXT1                                                                 11/21/2008 22:16:05 PAGE 4   

 180   1          a = addr * 2;   
 181   1          ISD4004_Rec(table[a],table[a+1]);     
 182   1      }
 183          
 184          
 185          unsigned char get_char(void)
 186          {unsigned char  key_code;
 187   1        static unsigned char column=0;
 188   1        if (P37==0 && key_flag==1){key_code=column;key_flag=0;key_count=0;}
 189   1           else key_code=0xff;
 190   1        mask=_crol_(mask,1);
 191   1        P24=mask&0x10;P25=mask&0x20;P26=mask&0x40;P27=mask&0x80;
 192   1        column++;
 193   1        if(column>3)column=0; 
 194   1        return(key_code);}
 195          
 196          void key_func(key)
 197           {switch (key)
 198   1         {case 0:  ISD4004_Powerup();delay25ms();luyin(0);break;
 199   2                                       
 200   2          case 1:  delay25ms();fangyin(0);break;
 201   2                   
 202   2          case 2:  break;
 203   2                   
 204   2              case 3: ISD4004_Stop();ISD4004_Powerdown();break;
 205   2                             
 206   2          default: break;               }  }
 207                                   
 208          void main()
 209          {  
 210   1        TMOD=0x11;TH0=hi;TL0=lo;EA=1;ET0=1;ET1=1;TR0=1;
 211   1        TH0=hi;TL0=lo;
 212   1        P10=0;
 213   1          
 214   1      /****************** 语音模块************************/
 215   1        while(1)
 216   1                {  
 217   2              key=get_char( );key_func(key);
 218   2              if(key_flag==0 && key_count>=10)key_flag=1;
 219   2            }
 220   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    355    ----
   CONSTANT SIZE    =     72    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   IDATA SIZE       =   ----    ----
   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 + -