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

📄 sound.lst

📁 在89C55CPU下开发的语音芯片驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 161            其它说明:               // 
 162          *****************************************************************************/
 163          void TimeInt() interrupt 1
 164          {
 165   1              TR0 = 0;                                //关闭定时器0
 166   1          TL0 = 0x66;             //定时器0赋初值
 167   1          TH0 = 0xfc;
 168   1              if(SendFlag)
 169   1              {
 170   2                      if(DataLength == 0)
 171   2                      {
 172   3                              INT0 = 0;
 173   3                              SendFlag = 0;
 174   3                      }
 175   2                      else
 176   2                      {
 177   3                              SBUF = *DataAdd;                                        
 178   3                              DataLength--;
 179   3                              DataAdd++;
C51 COMPILER V7.06   SOUND                                                                 08/02/2007 16:48:19 PAGE 4   

 180   3                      }
 181   2              }
 182   1              ComTime--;
 183   1              if(!ComTime)
 184   1                      number = 0;
 185   1              Clock--;
 186   1              TR0 = 1;
 187   1      }
 188          /******************************************************************************
 189            函数名称:                   //SCON_int();
 190            功能描述:               // 主要功能用于串行接收
 191            被本函数调用的函数清单: // 
 192            调用本函数的函数清单:   /
 193            输入输出参数说明:       //SerialData串口接收到的数据,SerialFlag串口接收数据成功标志
 194            其它说明:               // 
 195          *****************************************************************************/
 196          void SerialInt() interrupt 4
 197          {
 198   1              if(RI != 0)
 199   1              {
 200   2                      RI = 0;
 201   2                      ComTime = 20;
 202   2                      SerialData = SBUF;
 203   2                      switch(number)
 204   2                      {
 205   3                              case 0:
 206   3                              case 2:
 207   3                                      if(SerialData != 0xeb)
 208   3                                      {
 209   4                                              number = 0;
 210   4                                              crc = 0;
 211   4                                      }
 212   3                                      else
 213   3                                      { 
 214   4                                              ReceData[number] = SerialData;
 215   4                                              crc += ReceData[number];
 216   4                                              number++;
 217   4                                      }
 218   3                                      break;
 219   3                              case 1:
 220   3                              case 3:
 221   3                                      if(SerialData != 0x90)
 222   3                                      {
 223   4                                              number = 0;
 224   4                                              crc = 0;
 225   4                                              if(SerialData == 0xeb)
 226   4                                              {
 227   5                                                      ReceData[number] = SerialData;
 228   5                                                      crc += ReceData[number];
 229   5                                                      number++;
 230   5                                              }
 231   4                                      }
 232   3                                      else
 233   3                                      {
 234   4                                              ReceData[number] = SerialData;
 235   4                                              crc += ReceData[number];
 236   4                                              number++;
 237   4                                      }
 238   3                                      break;
 239   3                              case 4:
 240   3                                      ReceData[number] = SerialData; 
 241   3                                      crc += ReceData[number];
C51 COMPILER V7.06   SOUND                                                                 08/02/2007 16:48:19 PAGE 5   

 242   3                                      number++;
 243   3                                      if(SerialData != 0x60)
 244   3                                      {
 245   4                                              number = 0;
 246   4                                              crc = 0;
 247   4                                      }
 248   3                                      break;
 249   3                              case 5:
 250   3                                      ReceData[number] = SerialData; 
 251   3                                      crc += ReceData[number];
 252   3                                      number++;
 253   3                                      break;
 254   3                              case 6:
 255   3                                      length = SerialData; 
 256   3                                      ReceData[number] = SerialData;
 257   3                                      crc += ReceData[number];
 258   3                                      number++;
 259   3                                      break;
 260   3                              default:
 261   3                                      if(number == (length + 7))
 262   3                                      {
 263   4                                              if(crc != SerialData)
 264   4                                              {
 265   5                                                      SerialFlag = 0xaa;
 266   5                                              }
 267   4                                              else 
 268   4                                              {
 269   5                                                      SerialFlag = 0x55;
 270   5                                                      SoundData[RecPoint++] = ReceData[8];//低字节
 271   5                                                      SoundData[RecPoint++] = ReceData[7];//高字节
 272   5                                                      SoundData[RecPoint++] = ReceData[5];//语音类别
 273   5                                                      if(RecPoint>=30)
 274   5                                                              RecPoint=0;
 275   5                                                      NUM++;
 276   5                                              }
 277   4                                              number = 0;
 278   4                                              crc = 0;
 279   4                                              length = 0;
 280   4                                      }
 281   3                                      else
 282   3                                      {
 283   4                                              ReceData[number] = SerialData;
 284   4                                              number++;
 285   4                                              crc += SerialData;
 286   4                                              if(number > 12)
 287   4                                              {
 288   5                                                      number = 0;
 289   5                                                      crc = 0;
 290   5                                                      length = 0;
 291   5                                              }
 292   4                                      }
 293   3                                      break;
 294   3                      }
 295   2              }
 296   1              if(TI == 1)
 297   1                      TI = 0;
 298   1      }
 299          
 300          /******************************************************************************
 301            函数名称:                   //FeedDog();
 302            功能描述:               // 用于喂狗,在程序混乱时可使CPU复位
 303            被本函数调用的函数清单: // 
C51 COMPILER V7.06   SOUND                                                                 08/02/2007 16:48:19 PAGE 6   

 304            调用本函数的函数清单:   // 
 305            其它说明:               // 
 306          *****************************************************************************/
 307          void FeedDog()
 308          {
 309   1              INT1 = 0;
 310   1              INT1 = 1;
 311   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    565    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15    ----
   IDATA SIZE       =     65    ----
   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 + -