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

正文內(nèi)容

基于單片機(jī)的sd卡錄音筆設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(參考版)

2024-09-01 18:00本頁面
  

【正文】 } // case IDLE: default: break。 FS_CloseOpenFile()。 } break。 } //================================================= // 語法格式: int StatusProcess(void) // 實(shí)現(xiàn)功能: 系統(tǒng)狀態(tài)處理函數(shù) //========================================= ======== void StatusProcess() { switch(Status) { case RECORD: if(FS_GetUnusedSecNum() 1) // 檢測是否超出 SD卡容量范圍 { SACM_DVR1600_Stop()。 // 系統(tǒng)狀態(tài)處理 SACM_DVR1600_ServiceLoop()。 } // while(1) { KeyProcess()。 } else { FS_Init()。 PlaySnd(VOICE_ATTENTION, DAC1 + DAC2)。 48 while(0 == SD_ChkCard())。 // 語音初始化 if(0 == SD_ChkCard()) { // 檢測卡是否插入 PlaySnd(VOICE_ATTENTION, DAC1 + DAC2)。 __asm(IRQ ON)。 SetINTStatus(C_IRQ5_2Hz)。 DrvKeyInit()。 WriteProtect = 0。 47 int WriteProtect。 SysStatus Status。s digital sound recording and the broadcast system.[M].Prentice Hall Press,1993 [15] SD Memory Card Specifications.[Z].2020 46 附錄 附錄 1 主程序代碼 () include include .\Driver\SD\ include .\FS\ include .\DVRSystem\ include .\DVRSystem\ include .\System\ include .\Driver\KEY\ define ADC_Channel Mic // 0~7 (Mic, Line_In1 ~ Line_In6) void KeyProcess()。 真誠的感謝我的家人,他們對我無私的關(guān)心和支持,是我勇往直前的動(dòng)力,他們對我的鼓勵(lì)使我度過了大學(xué)生活中的一個(gè)個(gè)難關(guān)。 感謝通信工程 06A2 班的所有同學(xué)。 感謝北方工業(yè)大學(xué)信息工程學(xué)院為我們提供了做畢業(yè)設(shè)計(jì)的實(shí)驗(yàn)室, 感謝信息工程學(xué)院所有幫助過我、指導(dǎo)過我的老師,是他們無私的指導(dǎo)和耐心的教誨,讓我學(xué)習(xí)到了很多。從邢老師那里我不僅學(xué)習(xí)到了知識(shí),更重要的是他嚴(yán)格要求,精益求精,嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度給我留下了深刻的印象,這必將使我終身受益。 44 致謝 經(jīng)過 3 個(gè)多月的努力,終于完成了本次畢業(yè)設(shè)計(jì)。 隨著計(jì)算機(jī)的不斷普及,人們對人機(jī)交互的要求越來越高。 由于芯片功能和本人能力的限制,本系統(tǒng)還有許多有待完善和擴(kuò)展的地方,主要有以下兩方面: SPCE061A 開發(fā)板片內(nèi) FLASH 的容量只有 32K,預(yù)存的語音信息質(zhì)量受到了很大的限制。系統(tǒng)軟件架構(gòu)設(shè)計(jì):完成了語音文件的錄制,播放和刪除,寫入,讀取及擦除 SD卡。 結(jié)論:實(shí)現(xiàn)錄音,放音,刪除功能,測試成功。 SD 卡正常初始化后,可以按照各按鍵功能 進(jìn)行操作; 按下 Key3 鍵,啟動(dòng)錄音,此時(shí),會(huì)有 “開始錄音 ”的提示音。 系統(tǒng)功能測試 系統(tǒng)運(yùn)行后,如果 SD 卡沒有插入,會(huì)提示 “注意, SD 卡沒有插入 ”,并等待 SD 卡插入后進(jìn)行下一步操作; 如果 SD 卡被寫保護(hù),則會(huì)提示 “注意, SD 卡寫保護(hù) ”,此后,所有按鍵均無效,按下任意鍵會(huì)提示 “SD 卡寫保護(hù) ”。 圖 下載進(jìn)程對話框 42 下載完成后關(guān)閉 電池盒開關(guān),斷開 “EZProbe”下載線并把 S5 跳線的 2 管腳短接。 圖 選擇“ USE ICE” 當(dāng)程序處于下載狀態(tài)時(shí),會(huì)彈出一個(gè)進(jìn)度框 。 用 IDE 打開設(shè)計(jì)好的工程文件,并確認(rèn)以選定了 “USE ICE”按鈕 。下載線的一邊( 25 針插座 )與 PC 后面的并行接口相接,另一邊的五針接頭與電路板上標(biāo)有“EZProbe”的插座( J11)相接,并用 J11 接口邊上的 S5 跳線把 S5 的2 和 3 管腳短接。 結(jié)論:喇叭可以正常工作。 喇叭測試 主程序下載運(yùn)行 控制模塊測試 音頻輸入 音頻輸出 41 結(jié)論:喇叭無損環(huán),電路連接正常。 步驟 2:將一個(gè)最簡單的語音播放程序下載并運(yùn)行。 圖 系統(tǒng)測試流程圖 喇叭測試 目的:測試?yán)饶芊裾9ぷ? 條件:只連接喇叭和電路板,噪音相對較小的室內(nèi)環(huán)境。為了保證系統(tǒng)功能的實(shí)現(xiàn),系統(tǒng)的測試按照主程序流程所設(shè)計(jì)的方案依次對各模塊進(jìn)行測試。 CurOffset += Len。Buf[i])。 SD_ReadNewBlock(CurFileSec)。 CurOffset = Len i。 if(CurFileSec CurFileEndSec) CurFileSec++。 if(Len = (SD_BLOCKSIZE CurOffset)) SD_ReadingBlockData((unsigned long int)(SD_BLOCKSIZE CurOffset), (unsigned char *)Buf)。 void FS_ReadingFile(unsigned int *Buf, unsigned int Len) unsigned int i。 else SD_WritingBlockData((unsigned long int)Len, (unsigned char *)Buf)。 SD_WritingBlockData((unsigned long int)CurOffset , (unsigned char *)amp。 i = 1。 i = SD_BLOCKSIZE CurOffset。 39 CurFileSec++。 if(Len = (SD_BLOCKSIZE CurOffset)) SD_WritingBlockData((unsigned long int)(SD_BLOCKSIZE CurOffset), (unsigned char *)Buf)。 部分程序如下: .include .public F_USER_DVR1600_EndRecord //.public _USER_DVR1600_SetStartAddr //.public F_USER_DVR1600_SetStartAddr .public F_USER_DVR1600_GetData .public F_USER_DVR1600_WriteData //.public F_USER_WriteWordBlock//* //.public F_USER_ReadWordBlock//* .external _FS_ReadingFile .external _FS_WritingFile .external _FS_EndEncode void FS_WritingFile(unsigned int *Buf, unsigned int Len) unsigned int i。 38 錄 /放音程序 SPCE061A是 16位單片機(jī),具有 DSP功能,有很強(qiáng)的信息處理能力,最高時(shí)鐘頻率可達(dá)到 49MHz,具備運(yùn)算速度高的優(yōu)勢等等,這些都無疑為語音的播放、錄放、合成及辨識(shí)提供了條件。當(dāng)連續(xù)讀?。▽懭耄?shù)量超過一個(gè) Block的大小時(shí)將讀完(寫滿)本 Block 并自動(dòng)切換至下一 Block 繼續(xù)讀?。▽懭耄┦S鄶?shù)據(jù)。 FileList g_FileListArray[FS_MAX_FILENUM]。 // 語音文件的結(jié)束 Block 地址 unsigned int Offset。 程序中使用一個(gè)簡單的結(jié)構(gòu)體保存每個(gè)語音文件在 SD 卡中的位置信息: typedef struct _SD_FS{ unsigned long int StartSec。 寫 Block 操作: 1)發(fā)送 CMD24,啟動(dòng)寫 Block 操作; 2)發(fā)送數(shù)據(jù)給 SD 卡,直至寫滿 Block Size 個(gè)數(shù)據(jù); 3)發(fā)送 CRC 校驗(yàn),等待 SD 卡完成內(nèi)部燒寫,結(jié)束寫 Block 操作。 .public _SPI_SendByte _SPI_SendByte: .proc r1 = sp + 3 r1 = [r1] r2 = 8 ?L_SPI_SendByte_Lop: test r1, 0x0080 jz ?L_SPI_SendByte_Bit8_0 SPI_DOUT_SET jmp ?L_SPI_SendByte_Bit8_End ?L_SPI_SendByte_Bit8_0: SPI_DOUT_CLR ?L_SPI_SendByte_Bit8_End: SPI_SCK_CLR SPI_SCK_SET r1 = r1 lsl 1 r2 = 1 jnz ?L_SPI_SendByte_Lop retf .endp 36 然后,單片機(jī)通過 SPI 總線發(fā)送 Block Size 個(gè)數(shù)據(jù),這些數(shù)據(jù)被SD 卡接收,并緩存。 單片機(jī)從 SD 卡寫入 Block 數(shù)據(jù)的過程。 然后,單片機(jī)從 SPI 總線上讀取 Block Size 個(gè)數(shù)據(jù),這些數(shù)據(jù)就是 SD 卡發(fā)送來的 Block 數(shù)據(jù); 最后, SD 卡發(fā)送 CRC 校驗(yàn)給單片機(jī),單片機(jī)結(jié)束 SPI 總線的接收操作,至此,一個(gè) Block 被正確讀入單片機(jī)內(nèi)。 單片機(jī)從 SD 卡讀取 Block 數(shù)據(jù)的 過程。在語音播放過程中類似,解碼器每次解碼的數(shù)據(jù)量也并不剛好是 Block Size 個(gè)。 SD 卡每次寫入(讀取)數(shù)據(jù),都需要以 Block 為單位。單片機(jī)通過使連接 SD 卡 CS 腳的I/O 口輸出低電 平,并發(fā)送 CMD0 命令,即可使 SD 卡進(jìn)入 SPI 模式工作。 SD 卡上電后工作在具有 1bit 數(shù)據(jù)總線寬度的 SD 模式。 Length:R2 push r1, r5 to [sp] push r2 to [sp] push r1 to [sp] call _FS_WritingFile sp += 2 pop r1, r5 from [sp] RETF。 Length:R2 push r1, r5 to [sp] push r2 to [sp] push r1 to [sp] call _FS_ReadingFile sp += 2 pop r1, r5 from [sp] RETF。這里,需要調(diào)用 “從語音文件中讀取多個(gè) word數(shù)據(jù)的函數(shù) ”FS_ ReadingFile ()以完成從 SD 卡中讀取數(shù)據(jù)。這里需要調(diào)用 “向語音文件寫入多個(gè) word數(shù)據(jù)的函數(shù) ”FS_WritingFile()以完成此功能。 } return(Key)。 if(C_KeyStateFirst == ui_KeyScanState) { ui_KeyID = C_Null。 else Key = ui_KeyID。 F_USER_DVR1600_WriteData函數(shù)主要完成存儲(chǔ)錄音數(shù)據(jù)至用戶unsigned int KeyScan_GetKey(unsigned int *KeyType) { unsigned int Key。 語音錄 /放在 SD 卡上的實(shí) 現(xiàn) 在語音錄 /放的過程中,存儲(chǔ) /讀取語音資源主要是調(diào)用F_USER_DVR1600_WriteData和 F_USER_DVR1600_GetData兩個(gè)函數(shù)實(shí)現(xiàn)的。 endif 32 unsigned int KeyScan_GetKey(unsigned int *KeyType)。= ~KEY_PORT_MASK。= ~KEY_PORT_MASK。= ~KEY_PORT_MASK。調(diào)用該函數(shù)將同時(shí)初始化按鍵掃描使用的I/O 口。 按鍵掃描程序提供如下 API 函數(shù)按鍵功能: void KeyScan_Init()。相反,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1