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

📄 sa5753.lst

📁 c8051单片机使用smbus(I2C)接口的测试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 170          7_                494                        f          173  0xad        202                                            
             -                              
 171                  关        关                         0           2   0x02        2   0x02   
 172          */                                            
C51 COMPILER V7.02a   SA5753                                                               07/08/2003 18:03:11 PAGE 4   

 173          
 174          //定义低音值索引表
 175          BYTE code DTMF_LD_TABLE[16]=
 176          {
 177            0x02,0xa3,0x91,0x82,0x7b,0x6d,0x61,0x56,
 178            0x51,0x48,0x41,0x3d,0x36,0xda,0xc2,0xad,
 179          };
 180          //定义高音值索引表
 181          BYTE code DTMF_HD_TABLE[16]=
 182          {
 183            2, 190,170,151,143,127,113,100,
 184            95,85, 75, 71, 63, 255,227,202,
 185          };
 186          
 187          type_of_timer m_music_delay_timer;
 188          BYTE idata m_music_play_index=0; 
 189          bit m_music_space_flag; //两个音节之间的间隔标志
 190          
 191          //#define MUSIC_CONSTANT_LEN 9
 192          //BYTE xdata m_music_constant[]={0x14,0x24,0x34,0x44,0x54,0x64,0x74,0x84,0x04};
 193          
 194          /*
 195          //两只老虎
 196          #define MUSIC_CONSTANT_LEN 32
 197          BYTE xdata m_music_constant[]=
 198          {
 199            0x14,0x24,0x34,0x14,0x14,0x24,0x34,0x14,
 200            0x34,0x44,0x58,0x34,0x44,0x58,0x53,0x61,
 201            0x52,0x42,0x34,0x14,0x53,0x61,0x52,0x42,
 202            0x34,0x14,0x14,0xd4,0x18,0x14,0xd4,0x18,
 203          };
 204          */
 205          //玛丽的小羊
 206          #define MUSIC_CONSTANT_LEN 25
 207          BYTE xdata m_music_constant[]=
 208          {
 209            0x34,0x24,0x14,0x24,0x34,0x34,0x38,
 210            0x24,0x24,0x28,     0x34,0x54,0x58,
 211            0x34,0x24,0x14,0x24,0x34,0x34,0x38,
 212            0x24,0x24,0x34,0x24,0x1c,
 213          };
 214          
 215          
 216          void sa5753_test_DTMF()
 217          {
 218   1        BYTE idata l_5753_reg_addr;
 219   1        
 220   1        l_5753_reg_addr=R6_5753;
 221   1        b_5753_reg_data=g_R6_data;
 222   1        PWDN = 0;
 223   1        IDLE1 = 0;
 224   1        IDLE0 = 0;
 225   1        g_R6_data=b_5753_reg_data;  
 226   1        SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //normal工作模式
 227   1        
 228   1        l_5753_reg_addr=R2_5753;
 229   1        b_5753_reg_data=g_R2_data;
 230   1        b_5753_reg_data = 0x02;
 231   1        g_R2_data=b_5753_reg_data;  
 232   1        SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //关闭 high单音
 233   1      
 234   1        l_5753_reg_addr=R3_5753;
C51 COMPILER V7.02a   SA5753                                                               07/08/2003 18:03:11 PAGE 5   

 235   1        b_5753_reg_data=g_R3_data;
 236   1        b_5753_reg_data = 0x02;
 237   1        g_R3_data=b_5753_reg_data;  
 238   1        SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //low单音
 239   1        
 240   1        l_5753_reg_addr=R1_5753;
 241   1        b_5753_reg_data=g_R1_data;
 242   1        DTC = 1; //连续单音
 243   1        S4 = 1;  //开关
 244   1        S8 = 1;
 245   1        g_R1_data=b_5753_reg_data;  
 246   1        SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //开通路S4,S8,连续单音
 247   1        
 248   1        l_5753_reg_addr=R8_5753;
 249   1        b_5753_reg_data=g_R8_data;
 250   1        S3 = 1;
 251   1        S11 = 1;
 252   1        TxP = 1; //tx_mute 选项1,和外部18脚一样
 253   1        g_R8_data=b_5753_reg_data;  
 254   1        SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //
 255   1      
 256   1        l_5753_reg_addr=R0_5753;
 257   1        b_5753_reg_data=g_R0_data;
 258   1        S9 =1;
 259   1        S10  = 1;
 260   1        TxM = 0;
 261   1        g_R0_data=b_5753_reg_data;  
 262   1        SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //
 263   1        
 264   1        l_5753_reg_addr=R5_5753;
 265   1        b_5753_reg_data=g_R5_data;
 266   1        b_5753_reg_data=0x13;
 267   1        g_R5_data=b_5753_reg_data;  
 268   1        SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //控制attn6的增益,开HPDN,VOX
 269   1      }
 270          
 271          void sa5753_change_DTMF(BYTE l_index)
 272          {
 273   1        BYTE idata l_5753_reg_addr;
 274   1        
 275   1        if(l_index<=16)
 276   1        { 
 277   2          l_5753_reg_addr=R3_5753;
 278   2          b_5753_reg_data=g_R3_data;
 279   2          b_5753_reg_data = DTMF_LD_TABLE[l_index];
 280   2          g_R3_data=b_5753_reg_data;  
 281   2          SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //low单音
 282   2          
 283   2          
 284   2          l_5753_reg_addr=R2_5753;
 285   2          b_5753_reg_data=g_R2_data;
 286   2          b_5753_reg_data = DTMF_HD_TABLE[l_index];
 287   2          g_R2_data=b_5753_reg_data;  
 288   2          SM_Send(SA5753_ADDR,l_5753_reg_addr,b_5753_reg_data); //high单音
 289   2      
 290   2        }
 291   1      }
 292          
 293          void sa5753_init(void)
 294          {
 295   1        init_timer(&m_music_delay_timer);
 296   1        sa5753_test_DTMF();
C51 COMPILER V7.02a   SA5753                                                               07/08/2003 18:03:11 PAGE 6   

 297   1        m_music_play_index=0; 
 298   1      } 
 299          
 300          void sa5753_start_music(void)
 301          {
 302   1        m_music_play_index=0;
 303   1        opentimer(&m_music_delay_timer,50);
 304   1        m_music_space_flag=0;
 305   1      }
 306          
 307          void sa5753_stop_music(void)
 308          {
 309   1        m_music_play_index=0;
 310   1        closetimer(&m_music_delay_timer);
 311   1        sa5753_change_DTMF(0);
 312   1      }
 313          
 314          void sa5753_play_music_proc(void)
 315          {
 316   1        if(m_music_delay_timer.timer_off)
 317   1        {
 318   2      //    closetimer(&m_music_delay_timer);
 319   2          if(_testbit_(m_music_space_flag))
 320   2          {
 321   3            sa5753_change_DTMF(0);
 322   3            opentimer(&m_music_delay_timer,5);
 323   3          }
 324   2          else
 325   2          {
 326   3            m_music_space_flag=1;
 327   3            sa5753_change_DTMF(m_music_constant[m_music_play_index]>>4);
 328   3            opentimer(&m_music_delay_timer,(m_music_constant[m_music_play_index]&0x0f)*NOTE_TIME);
 329   3            m_music_play_index++;
 330   3            if(m_music_play_index>=MUSIC_CONSTANT_LEN)
 331   3              m_music_play_index=0;
 332   3          }
 333   2        }
 334   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    675    ----
   CONSTANT SIZE    =     32    ----
   XDATA SIZE       =     42    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =      6    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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