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

正文內(nèi)容

基于單片機的sd卡錄音筆設(shè)計與實現(xiàn)_畢業(yè)設(shè)計論文-在線瀏覽

2025-05-01 10:23本頁面
  

【正文】 tchdog 功能 SPCE061A 片內(nèi)結(jié)構(gòu),主要包括 SPCE061A 時鐘電路,PPL 鎖相環(huán)及外圍電路, SPCE061A 系統(tǒng)時鐘和 Watchdog。 雙 16 位定時器/ 計數(shù)器7 通道 10 位 A DC單通道 A DC+ A GCCP U 時鐘實時時鐘F L A S HRA M時基中斷控制IOA 1 5 0IOB 1 5 0鎖相環(huán)振蕩器IOB 0 ( S C K ) IOB 1 (S D A )低電壓監(jiān)測 /低電壓復(fù)位 雙通道10 位 DA C串行輸入輸出接口A UD1A UD2M IC_ IN32 管腳通用輸入輸出端口16 位微控制器u 39。 u’nSP IDE 集成開發(fā)環(huán)境支持匯編語言和 C 語言混合編程進行程序開發(fā),集程序的編輯、編譯、鏈接、調(diào)試以及仿真等功能為一體并且支持軟件仿真和調(diào)試 的功能 。工具界面主要分為主菜單,工具欄,工作區(qū)窗口,編輯區(qū)窗口,輸出區(qū)窗口。 15 圖 工具界面參照圖 Workspace窗口 , 如圖 。單擊 FileView 標簽,用 戶可以方便瀏覽到工程內(nèi)的各文件。 Files 文件夾包含了源程序、程序接口和說明硬件配置情況的文件。 Source Files 文件夾用于保存源文件。 External 16 Dependencies 文件夾用于保存對工程的一些標注信息??梢詥螕粢暣皟?nèi)分支頂部旁邊的+和-號展開和收縮層次圖。用戶可用拖曳的辦法改變文件的邏輯位置。 圖 Workspace 窗口 Output 窗口 , 如圖 。在 17 窗口底部有幾個視窗標簽: Build、 Debug 和 Find in Files等。 Build:顯示編譯和鏈接過程里產(chǎn)生的信息,包括文件編輯過程里的錯誤和警告信息等。 Find in Files:顯示在文件中查找字符的結(jié)果。 圖 Output 窗口 文件編輯器 ,如 圖 。 圖 文件編輯器 二進制代碼編輯器 ,如 圖 。 圖 二進制代碼編輯 器 工程的操作 創(chuàng)建工程過程 ( 1) 選擇 [File]→[New] ,打開 New 對話框如圖 ,選 19 擇 Project 標簽; ( 2) 在 File 文本框內(nèi)輸入工程名稱; ( 3) 在 Location 文本框內(nèi)輸入工程文件的路徑; ( 4) 在 Select Body Here 區(qū)域內(nèi)選擇 Probe; ( 5) 單擊 [OK],創(chuàng)建工程 。 編譯過程里的語法錯誤顯示在 Output 窗口內(nèi); 選擇 [Build]→[Start Debug]→[Download] ,把程序加載到 RAM,然后,用戶可以用 Debug 菜單內(nèi)所提供的調(diào)試命令來優(yōu)化和運行程序。 21 3 錄音筆總體設(shè)計 方案及硬件設(shè)計 總體設(shè)計方案 硬件設(shè)計總體框圖 系統(tǒng)采用 SPCE061A 做為主控制器,使用其通用 I/O口控制 SD 卡設(shè)備,實現(xiàn)存儲器擴展;利用電路板上的三個按鍵對錄放音進行控制;利用 SPCE061A 帶有 AGC 的專用 A/D 轉(zhuǎn)換通道做為音頻輸入,完成語音錄制功能;利用 SPCE061A 的 D/A 進行音頻輸出,實現(xiàn)語音播放功能。 22 圖 硬件總體框圖 系統(tǒng)軟件設(shè)計架構(gòu) 軟件 系統(tǒng)包括以下部分 : 主程序:完成系統(tǒng)的初始化,處理按鍵信息,并根據(jù)按鍵,在語音文件操作管理程序的配合下,創(chuàng)建語音文件進行錄音,或控制讀取語音文件進行回放。 輸入指令 麥克風(fēng) 揚聲器 電源線 錄音 放音 電源 SD 卡 SPCE061A 儲存或刪除數(shù)字信號 提取數(shù)字信號 按鍵鍵盤 23 SD 卡驅(qū)動程序:該部分完成對 SD 卡的初始化、得到卡的容量信息、讀寫操作、擦除操作等。每增加一段錄音,程序會將起始地址、終止地址等相關(guān)信息保存,以便可以回放。 24 系統(tǒng)硬件設(shè)計 系統(tǒng)硬件連接實物圖 系統(tǒng)主要由 SPCE061A 單片機,麥克風(fēng),揚聲器,電源及儲存器構(gòu)成。圖 為硬件連接實物圖。 外圍模塊有:電機驅(qū)動電路板、鎖相環(huán)外圍電路( PLL)、復(fù)位電路( RESET)等。 SPCE061A 控制端口輸出控制信息,并控制喇叭輸出聲音信息。通過本系統(tǒng)中的音頻輸入電路和 MIC,可以采集語音信號并處理。 26 圖 SPCE061A 最小系統(tǒng)圖 27 按鍵電路 本系統(tǒng)使用三個按鍵完成錄放音控制。 Key1為 “ 下一曲 ” 鍵, Key2為 “ 上一曲 ” 鍵, Key3為 “ 錄音鍵 ” 。電路中 SPY0030 是凌陽公司一款音頻放大芯片。圖 為音頻輸出電路圖。 SD 卡模組同時提供卡插入檢測和寫保護檢測接口。 29 圖 SD 卡模組電路圖 30 4 系統(tǒng)軟件設(shè)計 主程序設(shè)計 主程序 采用的是匯編語言和 C 語言混合編程 。 31 圖 主程序流程圖 主程序完成系統(tǒng)初始化后檢測 SD 卡是否插入以及是否有寫保護,并有相應(yīng)的語音提示,告知用 戶當(dāng)前的系統(tǒng)狀態(tài)。同時,在循環(huán)中對系統(tǒng)當(dāng)前的狀態(tài)進行檢測,控制系統(tǒng)在錄制語音時不至于超出存儲器容量限制,或控制系統(tǒng)在放音時播放至文件尾部自動停止播放。按鍵處理流程圖如圖 。 // 語音初始化 if(0 == SD_ChkCard()) // 檢測卡是否插入 PlaySnd(VOICE_ATTENTION, DAC1 + DAC2)。 while(0 == SD_ChkCard())。 else FS_Init()。 // 播放 就緒 // while(1) KeyProcess()。 // 系統(tǒng)狀態(tài)處理 SACM_DVR1600_ServiceLoop()?!颁浺簟卑存I處理程初始化 判斷是否有寫保護標志 ? 否 判斷按鍵 Key3 錄音鍵 是 Key2 上一曲 鍵 Key1 下一曲 鍵 返回 開始 Key = KeyScan_GetKey(amp。 if(1 == WriteProtect) // 卡有寫保護,拒絕按鍵操作 if((C_SReleaseKeyState == KeyType) || (C_LReleaseKeyState == KeyType)) return。圖 錄音鍵流程圖 部分程序如下 : 正在播放? 短按鍵? 是 是 停止播放,關(guān)閉讀取 SD 卡 系統(tǒng)狀態(tài)置空閑 SD 卡已 滿 ? 否 是 否 系統(tǒng)空閑? 否 啟動寫入 SD 卡,開始錄音 系統(tǒng)狀態(tài)置錄音 否 是 正在錄音? 結(jié)束錄音,錄音收尾 是 否 開始 返回 36 case C_Record: // Record if(C_SReleaseKeyState == KeyType) // 短按鍵,錄 /放音控制 if(PLAY == Status) SACM_DVR1600_Stop()。 Status = IDLE。 Status = RECORD。 while(RECORD == Status) // 等待完成錄音收尾工作 SACM_DVR1600_ServiceLoop()。 37 當(dāng)按下上一曲鍵,短按鍵(小于一秒)播放上一曲,長按鍵清除 SD 卡上所有錄音。 38 圖 上一曲鍵流程圖 部分程序如下 : 正在錄音? 正在播放? 是 判斷是否有文件 ? 結(jié)束放音 是 否 短按鍵? 否 否 是 長按鍵? 是 清除 SD 卡內(nèi)所有文件 系統(tǒng)狀態(tài)置空閑 讀取語音段,啟動聲音播放上一曲 系統(tǒng)狀態(tài)置播放 否 是 否 開始 返回 if(PLAY == Status) // 如果正在放音,則先停止播放 39 當(dāng)按下下一曲鍵,短按鍵(小于一秒)播放下一曲,長按鍵停止放音。 SACM_DVR1600_Stop()。 else if(RECORD == Status) // 如果正在錄音則不處理 if(C_LReleaseKeyState == KeyType)//長按鍵,擦除所有語音段 FS_Init()。 else if(C_SReleaseKeyState == KeyType)// 短按鍵播放上一曲 40 圖 下一曲鍵流程圖 部分程序如下 : 正在錄音? 當(dāng)前有錄音片段? 是 是 停止播放 正在播放? 否 否 短按鍵? 否 長按鍵? 否 系統(tǒng)狀態(tài)置空閑 是 啟動聲音播放下一曲 系 統(tǒng)狀態(tài)置播放 否 是 是 開始 返回 41 系統(tǒng)狀態(tài)處理程序主要完成在錄音時判斷是否超出SD 卡容量限制,或者在放音時當(dāng)前語音是否播放完畢。 檢查 SD 卡是否已滿? 是否正在錄音? 播放是否結(jié)束? 停止錄音 系統(tǒng)狀態(tài)置空閑 是否正在播放? 停止讀取 系統(tǒng)狀態(tài)置空閑 是 否 否 否 是 是 是 否 返回 開始 case C_Next: // Play Next if((C_SReleaseKeyState != KeyType) amp。 (C_LReleaseKeyState != KeyType)) if(g_FileNum 0) if(PLAY == Status) //如果正在放音,則先停止播放 SACM_DVR1600_Stop()。 else if(RECORD == Status) // 如果正在錄音則不處理 if(C_LReleaseKeyState == KeyType)// 長按鍵,停止當(dāng)前播放 Status = IDLE。 時基中斷中的按鍵掃描服務(wù)程序采用了狀態(tài)機的形式對按鍵狀態(tài)進行判斷。 Status = IDLE。 FS_CloseOpenFile()。 43 前按鍵的掃描狀態(tài),并對掃描狀態(tài)進行計時,通過判斷計時變量 KeyCount 的值來判斷按鍵的類型 KeyState(短按鍵、長按鍵等)。當(dāng)有鍵被按下后, KeyScanState 便進入 Debounce去抖狀態(tài),此時 KeyCount 開始每 1/1024 秒計時累加一次。此時如果檢測到鍵抬 起,則進入 ReleaseDebounce 狀態(tài),對按鍵抬起進行去抖,去抖成功后則可以認為形成了一個抬起的短按鍵( KeyState = SKeyRelease)。當(dāng)按鍵抬起時,則從 AfterLKey 狀態(tài) 44 進入 ReleaseDebounce 狀態(tài),去抖后得到一個抬起的長按鍵( KeyState = LKeyRelease)。 功 能:按鍵掃描初始化。 unsigned int KeyScan_GetKey(unsigned int *KeyType)。= ~KEY_PORT_MASK。= ~KEY_PORT_MASK。= ~KEY_PORT_MASK。 endif 45 功 能:該函數(shù)將返回當(dāng)前按鍵的鍵值,并通過入口參數(shù)KeyType 返回該按鍵的類型。通過自行定義這兩個函數(shù),即可將語音庫錄制的語音資料存儲至 SDunsigned int KeyScan_GetKey(unsigned int *KeyType) { unsigned int Key。 else Key = ui_KeyID。 if(C_KeyStateFirst == ui_KeyScanState) { ui_KeyID = C_Null。 } return(Key)。 F_USER_DVR1600_WriteData函數(shù)主要完成存儲錄音數(shù)據(jù)至用戶存儲器的作用。 F_USER_DVR1600_GetData 函數(shù)主要完成從用戶存儲器讀取語音資料至緩沖區(qū)的作用。 部分程序如下: 47 單片機通過 SPI 總線向 SD 卡發(fā)送命令,控制 SD 卡的動作,并通過 SPI 總線讀取 S
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1