资源简介

适用于凌阳单片机精简板、开发板的录音程序。采用c语言编写。最长录音时间20秒。

资源截图

代码片段和文件信息

//*********************************************************//
//名称:“复读机“
//描述:结合“61板“的三个按键完成简易完成录音、停止和播放功能:
// 1、KEY1--录音
// 2、KEY2--停止
// 3、KEY3--播放
// 最长录20秒
//日期:2003/5/16
//*********************************************************//
#include “hardware.h“
#include “dvr.h“
#define C_flashSize     0xf000
#define sector  0xa000 //定义FLASH写的起始地址

#define Stop 0
#define Record 1
#define Play 2

#define Full 1
#define Empty 2

#define DAC1 1
#define DAC2 2

#define RceMonitorOff 0
#define RceMonitorOn 1

#define Manual 0
#define Auto 1

unsigned int Status;
unsigned int Ret;
unsigned int Key;
unsigned int Addr Save_Addr;
//*********************************************************//
//函数:main()
//描述:主函数
//*********************************************************//
int main()
{
System_Initial();
SACM_DVR_Initial(Manual);
Status = Stop;
while(1)
{
Key = SP_GetCh(); //获取键值
switch(Key)
{
case 0x0001: //KEY1
//**********************录音(record)***********************//
//*********************************************************//
     for(Addr=sector;Addr<0xf000;Addr+=256)
      { 
    Clear_WatchDog();
F_FlashErase(Addr); 
          }
Status = Record;
Addr=sector;             
            // DVR初始化
SACM_DVR_InitQueue();
SACM_DVR_InitEncoder(RceMonitorOn);
break;

case 0x0002: // KEY2 
//**********************停止(stop)*************************//
//*********************************************************//
switch(Status)
{
case Record:     // 仍在录音
SACM_DVR_Stop();
while(SACM_DVR_TestQueue() != Empty )
{  
Ret = SACM_DVR_FetchQueue();// 从队列中取数
F_FlashWrite1Word(AddrRet);
Addr += 1;
}     
break;
case Play:
SACM_DVR_Stop();
break;
default:
break;
}
Status = Stop;
break;

case 0x0004: //KEY3 
//************************回放(playback)*******************//
//*********************************************************//
SACM_DVR_Stop();
if(Status == Record)
{
while(SACM_DVR_TestQueue() != Empty)
{
Ret = SACM_DVR_FetchQueue();// Put remain dat to Queue
F_FlashWrite1Word(AddrRet);// save to User Storage  
Addr+= 1;
}
      }
// Save_Addr=Addr;
Status = Play;
Addr = sector;  //播放的首地址
SACM_DVR_InitQueue();
while(SACM_DVR_TestQueue() != Full) //如果队列不满则继续填
{
                    Ret=F_FlashRead(Addr);       //从flash中读出数据
SACM_DVR_FillQueue(Ret); //填队列
Addr+= 1;  
}
SACM_DVR_InitDecoder(DAC1+DAC2);
break;
default:
break;
   }
//************************状态判断处理*********************//
//*****************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     目录          0  2005-11-28 10:27  Record

     文件       1849  2003-05-16 14:02  Record\system.asm

     文件        294  2001-02-12 18:49  Record\system.inc

     文件       3505  2005-11-28 10:25  Record\Record.spj

     文件      22016  2003-03-28 21:28  Record\Addr.xls

     文件       3072  2005-11-28 10:26  Record\Device.env

     文件       1301  2001-12-03 15:45  Record\dvr.h

     文件       1269  2001-12-04 11:01  Record\dvr.inc

     文件       2635  2003-05-16 15:16  Record\Flash.asm

     文件      28366  2003-04-25 00:25  Record\hardware.asm

     文件       6167  2001-05-28 20:10  Record\hardware.h

     文件      10242  2001-12-18 17:20  Record\hardware.inc

     文件        587  2003-05-16 11:14  Record\isr.asm

     文件       3688  2003-05-16 11:10  Record\key.asm

     文件         18  2001-05-23 11:02  Record\key.h

     文件        547  2001-05-23 11:41  Record\key.inc

     文件       4749  2003-05-16 15:44  Record\main.c

     文件       3901  2005-11-28 10:25  Record\Makefile

     文件         44  2003-05-16 15:45  Record\PWM.WAV

     文件       1030  2005-11-28 10:26  Record\Record.env

     文件         76  2000-11-22 11:15  Record\Record.h

     文件       1814  2005-11-28 10:26  Record\Record.lik

     文件        308  2005-11-28 10:26  Record\Record.opt

     文件         84  2005-11-28 10:25  Record\Record.rc

     文件       1553  2005-11-28 10:25  Record\Record.scs

     文件        720  2005-11-28 10:25  Record\Record.set

     文件        131  2005-11-28 10:25  Record\Resource.asm

     文件         80  2001-02-16 16:14  Record\Resource.h

     文件        114  2005-11-28 10:25  Record\Resource.inc

     文件     243880  2002-04-10 15:07  Record\sacmv26e.lib

............此处省略6个文件信息

评论

共有 条评论