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

正文內(nèi)容

基于單片機(jī)的音樂錄放器的設(shè)計(jì)畢業(yè)論文-閱讀頁

2025-07-12 20:39本頁面
  

【正文】 中斷服務(wù)函數(shù):Call F_FIQ_Service_ SACM_DVR //playingCall F_IRQ1_Service_ SACM_DVR //recode具體函數(shù)如下:1) 【API 格式】C:void SACM_ DVR _Initial(int Init_Index)ASM:R1=[ Init_Index]Call F_ SACM_ DVR _Initial【功能說明】SACM_ DVR 語音播放之前的初始化:設(shè)置中斷源、定時(shí)器以及播放方式(自動(dòng)、手動(dòng))【參數(shù)】Init_Index=0 表示手動(dòng)方式;Init_Index=1 則表示自動(dòng)方式。SACM_A20002) 【API 格式】C:void SACM_DVR_ServiceLoop(void)ASM:Call F_ SACM_DVR _ServiceLoop【功能說明】在錄音期間從 ADC 通道獲取錄音資料,且將其以 SACM_A2000格式進(jìn)行編碼后存入外接 SRAM 中;而在播放期間從 SRAM 中獲取語音資料,對(duì)其進(jìn)行解碼,然后等候中斷服務(wù)子程序?qū)⑵渌统?DAC 通道?!痉祷刂怠繜o。【參數(shù)】無?!緜渥ⅰ吭摵瘮?shù)僅適用于 SACM_DVR 模塊,且只有自動(dòng)方式?!緟?shù)】無。5)【API 格式】C:int SACM_DVR _Play(int Speech_Index, int Channel, int Ramp_Set);ASM:Call SACM_DVR _Play【功能說明】以自動(dòng)方式播放外接 SRAM 中的錄音資料?!緜渥ⅰ吭摵瘮?shù)僅使用于自動(dòng)方式下?!緟?shù)】無。SACM_DVR 模塊的狀態(tài)返回值,如圖 所示。7)【API 格式】C:void SACM_DVR_InitDecode(int Channel);ASM:Call F_SACM_DVR_Decode【功能說明】開始對(duì) SACM_DVR 語音資料以非自動(dòng)方式(編程控制)進(jìn)行譯碼?!痉祷刂怠繜o。8)【API 格式】C:void SACM_DVR_Decode(void);ASM:Call F_ SACM_DVR_Decode【功能說明】從語音隊(duì)列里獲取的 SACM_DVR 語音資料,并進(jìn)行譯碼,然后通過中斷服務(wù)子程序?qū)⑵渌腿?DAC 通道播放?!痉祷刂怠繜o。9) 【API 格式】C:unsigned int SACM_DVR_TestQueue(void);ASM:Call F_SACM_DVR_TestQueue[返回值]=R1【功能說明】獲取語音隊(duì)列的狀態(tài)?!痉祷刂怠縍1=0,語音隊(duì)列不空不滿=1,語音隊(duì)列滿=2;語音隊(duì)列空。10) 【API 格式】C:int SACM_DVR _FetchQueue(void);ASM:Call F_SACM_DVR _FetchQueue[Return_Value]=R1【功能說明】獲取錄音編碼(SACM_A2000)數(shù)據(jù)?!痉祷刂怠?6 位錄音資料。SACM_DVR_Initial(Manual)。InitWriteSRAM()。SRAMwhile(AddrSRAM_Size){SACM_DVR_Encode()。 //從隊(duì)列中得到資料writeSRAM(Addr,ret)。 //兩個(gè) 8 位 SRAM 存儲(chǔ)一個(gè) 16 位資料}}11) API 格式】C:void SACM_DVR _FillQueue(unsigned int encodeddata);ASM:R1=[語音編碼資料]Call F_ SACM_DVR _FillQueue\功能說明】填充 SACM_A2000 語音資料到 DVR 譯碼器等待播放【參數(shù)】encodeddata 為語音編碼資料?!緜渥ⅰ竣?語音資料格式為SACM_A2000 編碼格式。③ 僅用于非自動(dòng)方式下?!緟?shù)】無。13)【API 格式】ASM:Call F_FIQ_Service_ SACM_DVRASM:Call F_IRQ1_Service_SACM_DVR【功能說明】用作 SACM_DVR 語音背景程序的中斷服務(wù)子程序。即 FIQ 中斷服務(wù)子程序用于聲【音播放的背景程序;而 IRQ1 中斷服務(wù)子程序則用于聲音錄制的背景程序?!痉祷刂怠繜o。額外的中斷服務(wù)子程序安置在 IRQ1_TMA 中斷源上。主要是因?yàn)榱桕柕氖粏纹瑱C(jī)開發(fā)環(huán)境使用方便,并支持 C 語言與匯編語言的互相調(diào)用,且提供豐富的凌陽語音函數(shù)庫,只要我們了解這些函數(shù)的使用方法,我們就可以很容易的實(shí)現(xiàn)語音的錄放SP_InitW29C040Flash()。unsigned int ReadData=0。unsigned int Write256BytesFlag=0。unsigned int Addr_Counter_Tmp=0。unsigned long intunsigned long intunsigned long intAddr, Addr_Save。yxh=0。int main(){unsigned int abin=0。Mode = Manual。//手工方式SACM_DVR_Initial(Mode)。while(1){//Key=()。if(Key0){switch(Key){case 0x00:break。Addr = 0。// SP_InitWriteSRAM()。SP_InitWriteW29C040Flash()。SACM_DVR_InitEncoder(RceMonitorOn)。// case 0x02:case 0x04://停止鍵//停止鍵/*switch(Status){case Record:SACM_DVR_Stop()。//SP_WriteSRAM(Addr,Ret)。SP_Write_W29C040_One_Word(Addr,Ret)。}連續(xù)三字節(jié)FF//SP_WriteSRAM(Addr,0xFFFF)。SP_Write_W29C040_One_Word(Addr,0xFFFF)。////SP_WriteSRAM(Addr,0x00FF)。SP_Write_W29C040_One_Word(Addr,0x00FF)。case Play:SACM_DVR_Stop()。}Status = Stop。//case 0x04:case 0x02://播放鍵//播放鍵SACM_DVR_Stop()。Addr_Counter_Tmp++。//SP_InitWriteW29C040Flash()。}for(i=0。i++){SP_Write_W29C040_One_Word(Addr,aWriteData[i])。}G_TestValue=aWriteData[127]。}}if(Addr_Counter_Tmp0x0080){if(Write256BytesFlag==1){while(Write_W29C040_Status_Check(Addr,G_TestValue)==0)。iAddr_Counter_Tmp。Addr += 2。G_TestValue=aWriteData[Addr_Counter_Tmp]。i0x0500。while(Write_W29C040_Status_Check(Addr,G_TestValue)==0)。Write256BytesFlag=0。SP_Write_W29C040_One_Word(Addr,0xFFFF)。//SP_WriteSRAM(Addr,0x00FF)。for(j=0。j++)。i0x0100。Status = Play。//SP_InitReadSRAM()。SACM_DVR_InitQueue()。//SP_InitReadW29C040Flash()。SACM_DVR_FillQueue(ReadData)。}SACM_DVR_InitDecoder(DAC1+DAC2)。default:break。if(SACM_DVR_TestQueue() != Empty){//////SP_WriteSRAM(Addr,Ret)。aWriteData[Addr_Counter_Tmp] = SACM_DVR_FetchQueue()。if(Addr_Counter_Tmp==128){if(Write256BytesFlag==1){Write256BytesFlag=1。Write256BytesFlag=1。Write256BytesFlag=1。Write256BytesFlag=1。for(i=0。i++){SP_Write_W29C040_One_Word(Addr,aWriteData[i])。}G_TestValue=aWriteData[127]。Addr_Counter_Tmp=0。0x0080)==0x0080)||((Addr_Counteramp。i128。Addr += 2。//for(j=0。j++)。case Play:if(SACM_DVR_Status() amp。//SP_InitReadW29C040Flash()。SACM_DVR_FillQueue(ReadData)。}}else{if(SACM_DVR_TestQueue() == Empty){SACM_DVR_Stop()。}}SACM_DVR_Decode()。case Stop:break。}unsigned intWrite_W29C040_Status_Check(unsigned long intAddr_Test,unsigned int TestValue){unsigned int ReadCheckWord=0。SP_InitReadW29C040Flash()。if(ReadCheckWord!=TestValue){Addr_Test+=2。return 0。SP_InitWriteW29C040Flash()。}第 5章 拓 展 設(shè) 計(jì) 數(shù)碼錄音和播放系統(tǒng)的增強(qiáng)設(shè)計(jì)這次畢業(yè)論文為基于凌陽 SPCE061A 和 W29C040 的數(shù)碼錄音和播放,實(shí)現(xiàn)了4 分鐘的數(shù)字化語音的錄取和播放,達(dá)到了設(shè)計(jì)的要求。以SPCE061A 的強(qiáng)大功能,還可以實(shí)現(xiàn)其他的應(yīng)用系統(tǒng),下文就是就這個(gè)的簡要介紹。它具有較高運(yùn)算速度的 16 位16 位的乘法運(yùn)算指令;具有 DSP 功能的內(nèi)積運(yùn)算指令;具有音頻處理功能;具有 8 位機(jī)價(jià)格、16 實(shí)現(xiàn) SPCE061A 的一個(gè)基本應(yīng)用,設(shè)計(jì)者只要對(duì)該系統(tǒng)的電路、程序稍加改動(dòng),就可以實(shí)現(xiàn)語音復(fù)讀機(jī)、跟讀機(jī)、留言機(jī)、用 5 個(gè) IO 口,還有好多資源沒有用到。凌陽公司的 SPCE061A 的結(jié)構(gòu)特點(diǎn)及其相關(guān)的一些開發(fā)平臺(tái)為我們實(shí)現(xiàn)語音的錄入和播放提供了極其方便的條件。那么系統(tǒng)如何擴(kuò)展 Memory,解決 IO 口不夠的問題呢?這次論文主要是使用 W29C040 來擴(kuò)展 SPCE061A 的存儲(chǔ)器來實(shí)現(xiàn)更大空間的存儲(chǔ)。它具有使用簡單、擴(kuò)展能力強(qiáng)、性價(jià)比高的特點(diǎn)。SPBA01B 是凌陽公司生產(chǎn)的一款 8bit 總線擴(kuò)展芯片,它具有易擴(kuò)展 IO、總線,高性價(jià)比的優(yōu)點(diǎn)。SPBA01B 支持各種 Memory 類型的擴(kuò)展,系統(tǒng)只要對(duì) SPBA01B 內(nèi)部寄存器進(jìn)行相應(yīng)的設(shè)置,即可實(shí)現(xiàn)對(duì) SPBA01B 的讀、寫以及片選信號(hào)線的自動(dòng)控制,同時(shí)我們還可以在這個(gè)系統(tǒng)的基礎(chǔ)上通過增加擴(kuò)展存儲(chǔ)器的容量,如 32M,64M,甚至 128M 的存儲(chǔ)器,另外可以使用壓縮編碼率更高的算法,如有本系統(tǒng)的 16Kb/s 的基礎(chǔ)上提高到 ,但基礎(chǔ)是保持語音的一定的保真度的前提下,來增加數(shù)字語音的時(shí)間和存儲(chǔ)量。
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1