資源簡介
適用于凌陽單片機精簡板、開發板的錄音程序。采用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個文件信息
- 上一篇:用c語言編寫的一個中國象棋
- 下一篇:操作系統實驗——spooling技術
評論
共有 條評論