freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的數(shù)碼錄音與播放系統(tǒng)設(shè)計-精品(參考版)

2024-11-14 02:47本頁面
  

【正文】 凌陽公司的 SPCE061A 的結(jié)構(gòu)特點(diǎn)及其相關(guān)的一些開發(fā)平臺為我們實(shí)現(xiàn)語音的錄入和播放提供了極其方便的條件 。它具 有較高運(yùn)算速度的 16 位 16 位的乘法運(yùn)算指令;具有 DSP 功能的內(nèi)積運(yùn)算指令;具有音頻處理功能;具有 8 位機(jī)價格、 16 位單片機(jī)性能 .本系統(tǒng)只是實(shí)現(xiàn) SPCE061A 的一個基本應(yīng)用,設(shè)計者只要對該系統(tǒng)的電路、程序稍加改動,就可以實(shí)現(xiàn)語音復(fù)讀機(jī)、跟讀機(jī)、留言機(jī)、以及電話錄音儀等功能 .本系統(tǒng)只使用 5 個 IO 口,還有好多資源沒有用到。以SPCE061A 的強(qiáng)大功能,還可以實(shí)現(xiàn)其他的應(yīng)用系統(tǒng),下文就是就這個的簡要介紹。 } 第 5 章 拓 展 設(shè) 計 數(shù)碼錄音和播放系統(tǒng)的增強(qiáng)設(shè)計 這次畢業(yè)論文為基于凌陽 SPCE061A 和 W29C040 的數(shù)碼錄音和播放,實(shí)現(xiàn)了4 分鐘的數(shù)字化語音的錄取和播放,達(dá)到了設(shè)計的要求。 SP_InitWriteW29C040Flash()。 return 0。 if(ReadCheckWord!=TestValue) { Addr_Test+=2。 SP_InitReadW29C040Flash()。 } unsigned int Write_W29C040_Status_Check(unsigned long int Addr_Test,unsigned int TestValue) { unsigned int ReadCheckWord=0。 case Stop: break。 } } SACM_DVR_Decode()。 } } else { if(SACM_DVR_TestQueue() == Empty) { SACM_DVR_Stop()。 SACM_DVR_FillQueue(ReadData)。 // SP_InitReadW29C040Flash()。 case Play: if(SACM_DVR_Status() amp。j++)。 //for(j=0。 Addr += 2。i128。0x0080)==0x0080)||((Addr_Counteramp。 Addr_Counter_Tmp=0。 } G_TestValue=aWriteData[127]。i++) { SP_Write_W29C040_One_Word(Addr,aWriteData[i])。 for(i=0。 Write256BytesFlag=1。 Write256BytesFlag=1。 Write256BytesFlag=1。 if(Addr_Counter_Tmp==128) { if(Write256BytesFlag==1) { Write256BytesFlag=1。 aWriteData[Addr_Counter_Tmp] = SACM_DVR_FetchQueue()。 // if(SACM_DVR_TestQueue() != Empty) // { //SP_WriteSRAM(Addr,Ret)。 default: break。 // } SACM_DVR_InitDecoder(DAC1+DAC2)。 SACM_DVR_FillQueue(ReadData)。 // SP_InitReadW29C040Flash()。 SACM_DVR_InitQueue()。 //SP_InitReadSRAM()。 Status = Play。i0x0100。j++)。 for(j=0。 //SP_WriteSRAM(Addr,0x00FF)。 SP_Write_W29C040_One_Word(Addr,0xFFFF)。 Write256BytesFlag=0。 while(Write_W29C040_Status_Check(Addr,G_TestValue)==0)。i0x0500。 G_TestValue=aWriteData[Addr_Counter_Tmp]。 Addr += 2。iAddr_Counter_Tmp。 } } if(Addr_Counter_Tmp0x0080) { if(Write256BytesFlag==1) { while(Write_W29C040_Status_Check(Addr,G_TestValue)==0)。 } G_TestValue=aWriteData[127]。i++) { SP_Write_W29C040_One_Word(Addr,aWriteData[i])。 } for(i=0。 //SP_InitWriteW29C040Flash()。 Addr_Counter_Tmp++。 //case 0x04: //播放鍵 case 0x02: //播放鍵 SACM_DVR_Stop()。 } Status = Stop。 case Play: SACM_DVR_Stop()。 SP_Write_W29C040_One_Word(Addr,0x00FF)。 // //SP_WriteSRAM(Addr,0x00FF)。 SP_Write_W29C040_One_Word(Addr,0xFFFF)。 } //SP_WriteSRAM(Addr,0xFFFF)。 SP_Write_W29C040_One_Word(Addr,Ret)。 //SP_WriteSRAM(Addr,Ret)。 // case 0x02: //停止鍵 case 0x04: //停止鍵 /* switch(Status) { case Record: SACM_DVR_Stop()。 SACM_DVR_InitEncoder(RceMonitorOn)。 SP_InitWriteW29C040Flash()。 // SP_InitWriteSRAM()。 Addr = 0。 if(Key0) { switch(Key) { case 0x00: break。 while(1) { //Key=()。 SACM_DVR_Initial(Mode)。 Mode = Manual。 int main() { unsigned int abin=0。 unsigned long int yxh=0。 unsigned long int Addr, Addr_Save。 unsigned int Addr_Counter_Tmp=0。 unsigned int Write256BytesFlag=0。 unsigned int ReadData=0。 SACM_DVR_InitEncoder(RceMonitorOn) void SACM_DVR_Stop (void) void SACM_DVR_Play (void) unsigned int SACM_DVR _Status(void) void SACM_DVR _InitDecode(void) void SACM_DVR _Decode(void) SACM_DVR_StopDecoder()??晒?W29C 系列芯片的驅(qū)動。上層部分包括語音的錄放是由 C語言完成的??梢娛褂檬菢O其方便的。 SACM_DVR_Decode ()。 if(SACM_DVR_TestQueue()!=Full){ Ret = SP_Read_Data(M_AddrH,M_AddrL++)。 } //手動方式初始化 //語音數(shù)據(jù)非自動方式編碼 //取出語音編碼數(shù)據(jù) //寫存儲器 語音的播放: SP_InitReadW29C040Flash()。 if (SACM_DVR_TestQueue()!= Empty) { page_buf[n] =SACM_DVR_FetchQueue( )。 SACM_DVR_Initial(Manual)。主要是因?yàn)榱桕柕氖粏纹瑱C(jī)開發(fā)環(huán)境使用方便,并支持 C 語言與匯編語言的互相調(diào) 用,且提供豐富的凌陽語音函數(shù)庫,只要我們了解這些函數(shù)的使用方法,我們就可以很容易的實(shí)現(xiàn)語音的錄放 。額外的中斷服務(wù)子程序安置在 IRQ1_TMA 中斷源上。 【返回值】無。即 FIQ 中斷服務(wù)子程序用于聲音播放的背景程序;而 IRQ1 中斷服務(wù)子程序則用于聲音錄制的背景程序。 13)【 API 格式】 ASM: Call F_FIQ_Service_ SACM_DVR ASM: Call F_IRQ1_Service_SACM_DVR 【功能說明】用作 SACM_DVR 語音背景程序的中斷服務(wù)子程序。 【參數(shù)】無。 ③ 僅用于非自動方式下。 【備注】 ① 語音資料格式為 SACM_A2020 編碼格式。 //兩個 8 位 SRAM 存儲一個 16 位資料 } } 11)【 API 格式】 C: void SACM_DVR _FillQueue(unsigned int encodeddata); ASM: R1=[語音編碼資料 ] Call F_ SACM_DVR _FillQueue\ 功能說明】填充 SACM_A2020 語音 資料到 DVR 譯碼器等待播放 【參數(shù)】 encodeddata 為語音編碼資料。 //從隊列中得到資料 writeSRAM(Addr,ret)。 while(AddrSRAM_Size) { SACM_DVR_Encode()。 InitWriteSRAM()。 SACM_DVR_Initial(Manual)。 【返回值】 16 位錄音資料。 10) 【 API 格式】 C: int SACM_DVR _FetchQueue(void); ASM: Call F_SACM_DVR _FetchQueue [Return_Value]=R1 【功能說明】獲取錄音編碼( SACM_A2020)數(shù)據(jù)。 【返回值】 R1=0,語音隊列不空不滿 =1,語音隊列滿 =2;語音隊列空。 9) 【 API 格式】 C: unsigned int SACM_DVR_TestQueue(void); ASM: Call F_SACM_DVR_TestQueue [返回值 ]=R1 【功能說明】獲取語音隊 列的狀態(tài)。 【返回值】無。 8)【 API 格式】 C: void SACM_DVR_Decode(void); ASM: Call F_ SACM_DVR_Decode 【功能說明】從語音隊列里獲取的 SACM_DVR 語音資料,并進(jìn)行譯碼,然后通過中斷服務(wù)子程序?qū)⑵渌腿?DAC 通道播放。 【返回值】無。 7)【 API 格式】 C: void SACM_DVR_InitDecode(int Channel); ASM: Call F_SACM_DVR_Decode 【功能說明】開始對 SACM_DVR 語音資料以非自動方式(編程控制)進(jìn)行譯碼。 SACM_DVR 模塊的狀態(tài)返回值,如圖 所示。 【參數(shù)】無。 【備注】該函數(shù)僅使用于自動方式下。 5)【 API 格式】 C: int SACM_DVR _Play(int Speech_Index, int Channel, int Ramp_Set); ASM: Call SACM_DVR _Play
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1