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

📄 sound.lst

📁 在89C55CPU下开发的语音芯片驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   SOUND                                                                 08/02/2007 16:48:19 PAGE 1   


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

stmt level    source

   1          #include "C89c55.h"
   2          void Delay(unsigned int time);
   3          //void SendData(uchar address,uchar type,uchar length);
   4          void Init();
   5          void FeedDog();
   6          void Speak();
   7          
   8          unsigned int  Clock;                            // 定时计数值
   9          unsigned char SerialFlag;                       // 串行通讯标志
  10          unsigned char SerialData=0;                     // 串行通讯数据
  11          unsigned char SendFlag;
  12          unsigned char ComTime;
  13          unsigned char SoundHigh;
  14          unsigned char SoundLow;
  15          unsigned char crc;
  16          unsigned char length;
  17          unsigned char number;
  18          unsigned char *DataAdd;
  19          unsigned char DataLength;
  20          
  21          unsigned char idata ReceData[32];
  22          unsigned char idata SoundData[30];
  23          unsigned char idata NUM=0;
  24          unsigned char idata RecPoint=0;
  25          unsigned char idata SouPoint=0;
  26          
  27          main()
  28          {
  29   1              Init();
  30   1              while(1)
  31   1              {
  32   2                      Speak();
  33   2                      FeedDog();
  34   2              }
  35   1      }
  36          
  37          /******************************************************************************
  38            函数名称:                   //  Init()
  39            功能描述:               // 主要功能各芯片和定时器、串口的初始化
  40            被本函数调用的函数清单:
  41            调用本函数的函数清单:   //   main()
  42            输入输出参数说明:       
  43            其它说明:               // 
  44          *****************************************************************************/
  45          void Init()
  46          {
  47   1              
  48   1      //各芯片工作初始设置
  49   1              P1_1 = 0;
  50   1              INT0 = 0;                               //485置接收方式
  51   1      //定时器0初始化设置
  52   1              TR0 = 0;                            //停止定时器中断0
  53   1          TMOD = 0x21;                        
  54   1              TL0 = 0x66;                     //1毫秒定时
  55   1              TH0 = 0xfc;                     //
C51 COMPILER V7.06   SOUND                                                                 08/02/2007 16:48:19 PAGE 2   

  56   1          ET0 = 1;                        //设定时器0开始计数
  57   1              TR0 = 1;
  58   1              EA =1;
  59   1      //串口初始化设置
  60   1              SCON = 0x50;     
  61   1              PCON = 0x00;
  62   1              TL1 = 0xFD;              //9600 波特率
  63   1              TH1 = 0xFD;
  64   1              TR1 = 1;
  65   1              ES = 1;
  66   1      }
  67          /******************************************************************************
  68            函数名称:                   //Delay()
  69            功能描述:               //用于延时
  70            被本函数调用的函数清单: //
  71            调用本函数的函数清单:   //main();singlestate();
  72            输入输出参数说明:       //time为定时的时间,以1ms为一个单位
  73            其它说明:               // 
  74          *****************************************************************************/
  75          
  76          void Delay (unsigned int time)
  77          {
  78   1      
  79   1              Clock = time;      //延时计数值赋值
  80   1              while (Clock)      //延时等待 
  81   1                      FeedDog();
  82   1      }
  83          /******************************************************************************
  84            函数名称:                       //Speak()
  85            功能描述:               //用于播放语音
  86            被本函数调用的函数清单: //
  87            调用本函数的函数清单:   //main();
  88            输入输出参数说明:       //
  89            其它说明:               //放音过程:PD=0,给地址,/CE=0,放音,/CE=1,
  90                                                            //放完音,PD=1;      平时状态PD=1,/CE=1。
  91          *****************************************************************************/
  92          
  93          void Speak()
  94          {
  95   1      //      P1_1 = 0;
  96   1              if(NUM != 0)
  97   1              {
  98   2                      P0 = SoundData[SouPoint++];
  99   2                      P2 = SoundData[SouPoint++];
 100   2                      P1_0 = 0;
 101   2                      P1_0 = 1;
 102   2                      if(SoundData[SouPoint] == 0xA1)
 103   2                      {
 104   3                              Delay(1600);
 105   3                              P0 = 0xA7;
 106   3                              P2 = 0x01;
 107   3                              P1_0 = 0;
 108   3                              P1_0 = 1;
 109   3                      }
 110   2                      if(SoundData[SouPoint] == 0x51)
 111   2                      {
 112   3                              Delay(1600);
 113   3                              P0 = 0x9d;
 114   3                              P2 = 0x01;
 115   3                              P1_0 = 0;
 116   3                              P1_0 = 1;
 117   3                      }
C51 COMPILER V7.06   SOUND                                                                 08/02/2007 16:48:19 PAGE 3   

 118   2                      SouPoint++;
 119   2                      if(SouPoint>=30)
 120   2                              SouPoint=0;
 121   2                      NUM--;
 122   2                      Delay(1500);
 123   2              }
 124   1      //      P1_1 = 1;
 125   1      }
 126          /******************************************************************************
 127            函数名称:                   // SendData()
 128            功能描述:               // 设置发送帧的内容
 129            被本函数调用的函数清单: //
 130            调用本函数的函数清单:   // main()
 131            输入输出参数说明:       // 
 132            其它说明:               // 
 133          *****************************************************************************/
 134          /*
 135          void SendData(uchar address,uchar type,uchar length)
 136          {
 137                  unsigned char i;
 138          
 139                  ReceData[0] = 0xeb;
 140                  ReceData[1] = 0x90;
 141                  ReceData[2] = 0xeb;
 142                  ReceData[3] = 0x90;
 143                  ReceData[4] = address;
 144                  ReceData[5] = type;
 145                  ReceData[6] = length;
 146                  ReceData[length+7] = 0;
 147                  for(i=0; i<length+7; i++)
 148                          ReceData[length+7] += ReceData[i];
 149                  DataAdd = ReceData;
 150                  DataLength = length + 8;
 151                  INT0 = 1;
 152                  SendFlag = 1;
 153          }
 154          */
 155          /******************************************************************************
 156            函数名称:                   // timer_int()
 157            功能描述:               // 主要功能定时器中断处理,查询按键,计时,计数
 158            被本函数调用的函数清单: 
 159            调用本函数的函数清单:   
 160            输入输出参数说明:       // timer0_tick延时计数值加1输出

⌨️ 快捷键说明

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