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

📄 main.lst

📁 ISD1700语音芯片驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.07   MAIN                                                                  12/19/2008 15:13:10 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /************************************************************************** 
   2          SPI总线操作ISD1760的录放音程序。   循环播放!!!!!!!!!!!!!!
   3          **************************************************************************/ 
   4          #include <C8051F236.h>                 
   5          #include <intrins.h>
   6          #include "SPI.h" 
   7          
   8          #define SYSCLK          24000000            // 系统工作频率
   9          #define BAUDRATE        9600                // 串口工作波特率
  10          
  11          unsigned char bdata SR0_L; 
  12          unsigned char bdata SR0_H; 
  13          unsigned char bdata SR1; 
  14          unsigned char ID,APCL=0,APCH=0;
  15          unsigned char Uart_Temp;
  16          unsigned char KEY_Value;
  17          sbit HandUp=P1^7;
  18          unsigned char Need_to_Send=0;
  19          unsigned char Uart_Coun=0;
  20          unsigned char Uart_Flag=0;
  21          unsigned char serial_rx_buff[8];
  22          unsigned char serial_tx_buff[8];
  23           
  24          /************************************************************************** 
  25               函数初始化
  26          **************************************************************************/
  27          void SYSCLK_Init(void);
  28          void PORT_Init();
  29          void UART_Init();
  30          void Timer0_Init(void);
  31          void Timer1_Init(void);
  32          void Interupt_Init(void);
  33          void delay_ms(unsigned int);
  34          void ISD_Init(void)     ;
  35          //void ISD_CHK_MEM(void);
  36          void ISD_PU(void);
  37          void ISD_Stop(void);
  38          void ISD_Reset(void);
  39          void ISD_PD(void);
  40          unsigned char ISD_SendData(unsigned char);
  41          //void SendChar(unsigned char);// 调试用的串口发送数据
  42          void SendString (unsigned char *str, unsigned char strlen);
  43          void RdStatus(void);
  44          void ISD_Play();
  45          void ISD_FWD();
  46          void ClrInt(void);
  47          //void ISD_WR_NVCFG(void);
  48          void ISD_WR_APC2(unsigned char);
  49          //unsigned char RD_DevID(void);
  50          //void RdAPC(void);
  51          //void Erase_All(void);
  52          //void SetERASE(unsigned char);
  53          //void SetREC(unsigned  char);
  54          //void SetPLAY(unsigned char);
  55          //void GetToneAdd(unsigned char, unsigned int *ipStartAdd, unsigned int *ipEndAdd);
C51 COMPILER V7.07   MAIN                                                                  12/19/2008 15:13:10 PAGE 2   

  56          
  57          /************************************************************************** 
  58              其实只需要放音程序   ??????????????????????????这是最后要的主函数保留
  59              功能原型:void ISD_Play(void)
  60              功能:放音 
  61          **************************************************************************/ 
  62          void main()
  63          {
  64   1         //int i;
  65   1         WDTCN = 0XDE;    // 此条及下条 禁止看门狗
  66   1         WDTCN = 0XAD;
  67   1         SYSCLK_Init(); 
  68   1         PORT_Init();
  69   1         UART_Init();     //  串口初始化
  70   1         Timer0_Init();
  71   1         Timer1_Init();
  72   1         Interupt_Init();
  73   1         ISD_Init();
  74   1         HandUp=0;
  75   1         KEY_Value=0;
  76   1      
  77   1         while(1)
  78   1         {
  79   2              if (TL0>50)
  80   2              {               
  81   3                      HandUp=1;
  82   3                              TL0=0;
  83   3                              TL1=0;
  84   3                              //播放欢迎词
  85   3                              //播放功能提示:烧开水按1,做咖啡按2,清洗按3,除垢按4,做蒸汽按5,取消按6
  86   3      
  87   3                              //for (i=0;i<=9;i++)     //5是播放的段数,这里是顺序播放所有的语音,测试用!!!!!!!!!!
  88   3                        //{                      
  89   3                        //      ISD_Play();    //在函数里面已经写了,当播放指令出错时,从新播放                   
  90   3                        //            while((!(SR1&0x01))||(SR1&0x04)); //当PLAY=1,RDY=0
  91   3                        //   ISD_FWD();
  92   3                        //            while(1);
  93   3                        //}
  94   3                        //ISD_PD();   //播放完则下电模式
  95   3      
  96   3                              while(TL1<2)
  97   3                              {
  98   4                                if (KEY_Value)
  99   4                                      {
 100   5                                        //按键处理
 101   5                                              switch(KEY_Value)
 102   5                                        {
 103   6                                              case 1:
 104   6                                                      serial_tx_buff[0]=FRAME_WATER;
 105   6                                                      Need_to_Send=1;
 106   6                                                break;
 107   6                                              case 2:
 108   6                                                      serial_tx_buff[0]=FRAME_NOW_COFF;
 109   6                                                      Need_to_Send=1;
 110   6                                                      break;
 111   6                                              case 3:
 112   6                                                      serial_tx_buff[0]=FRAME_CLEAN;
 113   6                                                      Need_to_Send=1;
 114   6                                                      break;
 115   6                                              case 4:
 116   6                                                      serial_tx_buff[0]=FRAME_DIRTY;
 117   6                                                      Need_to_Send=1;
C51 COMPILER V7.07   MAIN                                                                  12/19/2008 15:13:10 PAGE 3   

 118   6                                                      break;
 119   6                                              case 5:
 120   6                                                      serial_tx_buff[0]=FRAME_STEAM;
 121   6                                                      Need_to_Send=1;
 122   6                                                      break;
 123   6                                              case 6:
 124   6                                                      serial_tx_buff[0]=FRAME_RESET;
 125   6                                                      Need_to_Send=1;
 126   6                                                      break;
 127   6                                              default:
 128   6                                                      Need_to_Send=0;
 129   6                                                      break; 
 130   6                                        }
 131   5                                        
 132   5                                              KEY_Value=0;
 133   5                                              
 134   5                                              if (Need_to_Send)
 135   5                                        {
 136   6                                              Need_to_Send=0;
 137   6                                              SendString(serial_tx_buff,8);
 138   6                                              //播放正在处理中,请稍候                                  
 139   6                                              delay_ms(12000);
 140   6                                                                        
 141   6                                        if (Uart_Flag)
 142   6                                              {
 143   7                                                      Uart_Flag=0;
 144   7                                                      Uart_Coun=0;
 145   7                                                      if (serial_rx_buff[0]==COFFE_BUSY_STATUS)
 146   7                                                      {
 147   8                                                              //播放正在工作,继续等待请按1,返回请按其它键,结束请挂机
 148   8                                                              while(!KEY_Value)
 149   8                                                              {
 150   9                                                                      if (TL1>2)
 151   9                                                                      {
 152  10                                                                              break;
 153  10                                                                      }
 154   9                                                              }
 155   8                                                              if (KEY_Value==1)
 156   8                                                              {
 157   9                                                                      KEY_Value=0;
 158   9                                                                      while(!Uart_Flag)
 159   9                                                                      {
 160  10                                                                              if (TL1>2)
 161  10                                                                              {
 162  11                                                                                      break;
 163  11                                                                              }
 164  10                                                                      }
 165   9                                                                      if (Uart_Flag)
 166   9                                                                      {
 167  10                                                                              Uart_Flag=0;
 168  10                                                                              Uart_Coun=0;
 169  10                                                                              if (serial_rx_buff[0]==COFFE_IDLE_STATUS)
 170  10                                                                              {
 171  11                                                                                      //播放咖啡机完成工作,返回
 172  11                                                                              }
 173  10                                                                              else if(serial_rx_buff[0]==COFFE_ERROR_STATUS)
 174  10                                                                              {
 175  11                                                                                      //播放咖啡机状态错误
 176  11                                                                              }
 177  10                                                                              else
 178  10                                                                              {
 179  11                                                                                      //播放状态不能识别
C51 COMPILER V7.07   MAIN                                                                  12/19/2008 15:13:10 PAGE 4   

 180  11                                                                              }
 181  10                                                                              //serial_rx_buff[0]=0x00;       
 182  10                                                                      }
 183   9                                                                      else
 184   9                                                                      {

⌨️ 快捷键说明

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