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

📄 voice.lst

📁 单片机教程配套的程序以及电路图
💻 LST
字号:
C51 COMPILER V7.02b   VOICE                                                                11/16/2005 21:45:17 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE VOICE
OBJECT MODULE PLACED IN Voice.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE Voice.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*****************************************/
   2          /* Copyright (c) 2005, 通信工程学院      */
   3          /* All rights reserved.                  */
   4          /* 作    者:戴 佳                                       */
   5          /*****************************************/
   6          
   7          #include "voice.h"
   8          
   9          /* 延时t毫秒 */
  10          void delay(uint t)
  11          {
  12   1              uint i;
  13   1              while(t--)
  14   1              {
  15   2                      /* 对于11.0592M时钟,约延时1ms */
  16   2                      for (i=0;i<125;i++)
  17   2                      {}
  18   2              }
  19   1      }
  20          
  21          /* 外部中断0服务子程序 */
  22          void out_int0() interrupt 0 using 1
  23          {
  24   1              EX0 = 0;                                                // 关外部中断0 
  25   1              
  26   1              PD = 1;                                                 // 进入节电状态 
  27   1      
  28   1              if(count<2)                                     // 再重播2次,共3次放音
  29   1              {
  30   2                      count++;
  31   2                      delay(500);                             // 延时500ms
  32   2                      P2 = P2&0xFC;                           // A8=A9=0
  33   2                      P0 = P0&0x00;                           // 起始地址为0
  34   2                      playback();                                     // 从地址0处播放
  35   2                      EX0 = 1;                                        // 开外部中断0          
  36   2              }  
  37   1              else 
  38   1              {
  39   2                      IdleFlag = 1;                           // 变为空闲状态,可以再次按开始键
  40   2                      count = 0;
  41   2              }
  42   1      }       
  43          
  44          /* 主程序 */
  45          void main()
  46          { 
  47   1              EA = 1;                                                 // 开CPU中断
  48   1      
  49   1              count = 0;
  50   1              StartFlag = 0;
  51   1              IdleFlag = 1;
  52   1      
  53   1              while(IdleFlag==1)
  54   1              {
  55   2                      if (START)
C51 COMPILER V7.02b   VOICE                                                                11/16/2005 21:45:17 PAGE 2   

  56   2                      {
  57   3                              delay(10);                              // 延时去抖动
  58   3                              if (START)                              
  59   3                                      StartFlag = 1;          // 开始键按下标志
  60   3                      }
  61   2                      if (StartFlag == 1)
  62   2                      {
  63   3                              do 
  64   3                              {
  65   4                                      P2 = P2&0xFC;           // A8=A9=0
  66   4                                      P0 = P0&0x00;           // 起始地址为0
  67   4                                      record();                       // 录音开始,存放在地址0处
  68   4                              }
  69   3                              while (START);                  // 开始键松开
  70   3      
  71   3                              StartFlag = 0;
  72   3      
  73   3                              PR = 1;                                 // 结束录音
  74   3                              PD = 1;                                 // 进入节电状态
  75   3      
  76   3                              delay(500);                             // 延时500ms再播放录音
  77   3      
  78   3                              EX0 = 1;                                // 开外部中断0 
  79   3      
  80   3                              P2 = P2&0xFC;                   // A8=A9=0
  81   3                              P0 = P0&0x00;                   // 起始地址为0
  82   3                              playback();                             // 从地址0处进行第一次播放
  83   3                              IdleFlag = 0;                   // 当前不空闲,按开始键无效                     
  84   3                      }
  85   2      
  86   2              }
  87   1      }               
  88          
  89          /* 录音函数 */
  90          void record(void)
  91          {
  92   1              CE = 0;
  93   1              PD = 0;
  94   1              PR = 0; 
  95   1      
  96   1      }
  97          
  98          /* 放音函数 */                          
  99          void playback(void)
 100          {
 101   1              CE = 0;
 102   1              PD = 0;
 103   1              PR = 1; 
 104   1      }
 105          
 106          
 107                  
 108                  
 109                  
 110          
 111                  
 112          
 113          
 114          
 115          
 116          
 117          
C51 COMPILER V7.02b   VOICE                                                                11/16/2005 21:45:17 PAGE 3   

 118          
 119          
 120          
 121          
 122          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    186    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   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 + -