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

正文內(nèi)容

基于單片機(jī)的錄音筆設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁

2025-11-28 09:43本頁面

【導(dǎo)讀】對(duì)多種錄音筆的設(shè)計(jì)方案進(jìn)行了比較和分析,選定凌陽單片機(jī)設(shè)計(jì)了一個(gè)數(shù)字錄音筆。論文首先介紹了設(shè)計(jì)方案的選擇,介紹了凌陽單片機(jī)的集成開發(fā)環(huán)境。接口進(jìn)行連接,并設(shè)置了8位鍵盤和LCD顯示的人機(jī)界面。然后分模塊進(jìn)行了軟件設(shè)。計(jì)等,進(jìn)行了程序流程的設(shè)計(jì),編寫了程序代碼。最后使用IDE進(jìn)行了仿真調(diào)試,驗(yàn)。系統(tǒng)實(shí)現(xiàn)了語音數(shù)據(jù)的錄制、播放、暫停、循環(huán)播放、重復(fù)

  

【正文】 關(guān) 中 斷現(xiàn) 場 保 護(hù)中 斷 源 判 斷進(jìn) 入 相 應(yīng) 中 斷 處 理清 中 斷 標(biāo) 志 位現(xiàn) 場 恢 復(fù)開 中 斷中 斷 返 回 圖 中斷服務(wù)流程圖 部分程序如下: //======================================================= // 函數(shù)名稱: FIQ() // 功能描述: DVR 服務(wù) // 語法格式: void FIQ(void); //======================================================= void FIQ(void) __attribute__ ((ISR))。 void FIQ(void) { if(*P_INT_Ctrlamp。C_FIQ_TMA) //定時(shí)器 A 中斷 { *P_INT_Clear=C_FIQ_TMA。 __asm(call F_FIQ_Service_SACM_DVR)。 //調(diào)用 DVR 中斷服務(wù)函數(shù) } else if(*P_INT_Ctrlamp。C_FIQ_TMB) //定時(shí)器 B 中斷 *P_INT_Clear=C_FIQ_TMB。 else //PWM 中斷 *P_INT_Clear=C_FIQ_PWM。 } //======================================================= // 函數(shù)名稱: IRQ5() // 功能描述 : 清看門狗 27 // 語法格式: void IRQ5(void); //======================================================= void IRQ5(void) __attribute__ ((ISR))。 void IRQ5(void) { *P_Watchdog_Clear = 0x1。 // WatchDog 計(jì)數(shù)器 *P_INT_Clear = C_IRQ5_2Hz。 } 鍵盤掃描模塊 程序首先進(jìn)行鍵盤掃描初始化,通過不斷進(jìn)行鍵盤掃描,通過去抖最后獲取鍵值,再根據(jù)不同的鍵值,做出語音播放的不同處理。下面是系統(tǒng)進(jìn)行各步驟的具體流程 。根據(jù)流程圖所寫 具體程序見附錄 3。 ( 1) 鍵盤掃描初始化流程如圖 ; ( 2) 鍵盤掃描流程如圖 ; ( 3) 按鍵去抖流程如圖 ; ( 4) 取鍵值流程如圖 ; 開 始上 一 次 保 存 鍵 值的 緩 沖 區(qū) 清 零本 次 保 存 鍵 值 的緩 沖 區(qū) 清 零去 抖 計(jì) 數(shù) 器 賦 值結(jié) 束 開 始結(jié) 束讀 鍵 口 值取 上 一 次 保 存 的 鍵 值兩 值 是 否 相 等 ?去 抖 計(jì) 數(shù) 器 是 否 為 零 ?去 抖 計(jì) 數(shù) 器 賦 初 值保 存 可 靠 鍵 值去 抖 計(jì) 數(shù) 器 賦 初 值NYYN 圖 鍵盤掃描初始化程序流程圖圖 圖 鍵盤掃描函數(shù)流程圖 28 開 始結(jié) 束去 抖 計(jì) 數(shù) 器 是 否 為 零 ?去 抖 計(jì) 數(shù) 器 減 1YN 開 始結(jié) 束取 可 靠 鍵 值清 可 靠 鍵 值 緩 沖 區(qū) 圖 按鍵去抖程序流程 圖 取鍵值程序流程 部分程序如下 : 圖 程序 : F _Key_Scan_ServiceLoop: F_Key_Scan_Initial: //鍵盤掃描初始化 r1 = 0x0000。 // [R_DebounceReg] = r1。 // [R_KeyBuf] = r1。 //保存鍵值緩沖區(qū)清零 [R_KeyStrobe] = r1。 // r1 = C_DebounceCnt。 // [R_DebounceCnt] = r1。 //去抖計(jì)數(shù)器賦值 retf。 圖 程序 : F_Key_Scan_ServiceLoop: //鍵盤掃描流程 r1 = [P_IOA_Data]。 //讀鍵口值 r1 = r1 and 0xff。 // r2 = [R_DebounceReg]。 // [R_DebounceReg] = r1。 //取上一次保存的鍵值 cmp r2,[R_DebounceReg]。 //比較兩次鍵值是否相同 je L_KS_StableTwoSample。 // r1 = C_DebounceCnt。 //去抖計(jì)數(shù)器賦初值 [R_DebounceCnt] = r1。 // retf。 // L_KS_StableTwoSample: 29 r1 = [R_DebounceCnt]。 // jz L_KS_StableOverDebounce。 //去抖是否完成 retf。 L_KS_StableOverDebounce: [R_DebounceCnt] = r1。 //去抖計(jì)數(shù)器賦初值 r2 = [R_DebounceReg]。 // r1 = [R_KeyBuf]。 // [R_KeyBuf] = r2。 // r1 = r1 xor 0x00ff。 //保證獲取可靠鍵值 r1 = r1 and [R_KeyBuf]。 // r1 = r1 and 0x00ff。 // r1 = r1 or [R_KeyStrobe]。 // [R_KeyStrobe] = r1。 //保存可靠鍵值到 R_KeyStrobe retf。 圖 程序 : F_Key_DebounceCnt_Down: //按鍵去抖子程序 r1 = [R_DebounceCnt]。 // jz L_DebounceCntZero。 //去抖計(jì)數(shù)器是否為零 r1 = 0x0001。 //去抖計(jì)數(shù)器減 1 [R_DebounceCnt] = r1。 // L_DebounceCntZero: // retf。 //去抖計(jì)數(shù)器為零后則跳出 圖 程序 : F_SP_GetCh: //取鍵值程序 r1 = [R_KeyStrobe]。 // 獲取可靠鍵值 r2 = 0x0000。 //清可靠鍵值緩沖區(qū) [R_KeyStrobe] = r2。 // retf。 30 語音信號(hào)的存儲(chǔ) SPCE061A 對(duì) SPR4096 進(jìn)行操作。先把 SPR4096 格式化,然后往其中寫入M_NUMBER 個(gè) Byte 的數(shù)據(jù)( M_NUMBE 的大小由用戶自己定義),接著把這些數(shù)據(jù)讀出來放在數(shù)組 uiByteBuffer 中 ; 下一步是對(duì)剛才寫入數(shù)據(jù)所在的扇區(qū)進(jìn)行扇區(qū)擦除,往其中寫入 M_NUMBER 個(gè) Word 的數(shù)據(jù),接著把這些數(shù)據(jù)讀出來放在數(shù)組uiWordBuffer 中。程序運(yùn)行后,可以在 IDE 的 Watch 窗口查看 uiByteBuffer 和uiWordBuffer 的值。其執(zhí)行流程圖如 圖 。根據(jù)流程所寫具體程序見附錄 4。 開 始系 統(tǒng) 初 始 化擦 除 S P R 4 0 9 6 全 部 扇 區(qū)按 B y t e 寫 入 數(shù) 據(jù)按 B y t e 讀 出 數(shù) 據(jù) 存 放 到 u i B y t e B u f f e r中擦 除 S P R 4 0 9 6 一 個(gè) 扇 區(qū)按 W o r d 寫 入 數(shù) 據(jù)按 W o r d 讀 出 數(shù) 據(jù) 存 放 到 u i W o r d B u f f e r中死 循 環(huán) 圖 SPR4096模塊流程圖 部分程序如下: //====================================================== // 函數(shù)名稱: _SP_SIOInitial // 實(shí)現(xiàn)功能: SIO 初始化 //====================================================== .PUBLIC _SP_SIOInitial。 _SP_SIOInitial: .PROC r1 = 0x0098。 //系統(tǒng)時(shí)鐘設(shè)定 ,Fosc = 49MHz [P_SystemClock] = r1。 r1 = 0x803。 //IOB0: SCK,IOB1: SDA,IOB11: CF7 [P_IOB_Dir] = r1。 31 [P_IOB_Attrib] = r1。 [P_IOB_Buffer] = r1。 retf .ENDP LVD 低 電壓檢測 為了通過對(duì)系統(tǒng)的電源電壓進(jìn)行監(jiān)控,而使系統(tǒng)運(yùn)行在一個(gè)正常、可靠的工作環(huán)境,并在一旦出現(xiàn)電源異常的情況下能立即采取相應(yīng)的措施,使系統(tǒng)及時(shí)恢復(fù)正常。利用了 SPCE061A所具有的低電壓復(fù)位功能,通過編程設(shè)置低電壓監(jiān)測。 低電壓監(jiān)測功能可以提供系統(tǒng)內(nèi)電源電壓的使用情況。如果系統(tǒng)電壓 Vcc低于用戶設(shè)定的電壓監(jiān)測低限電壓 VLVD, P_LVD_Ctrl單元的第 15位 (LVD監(jiān)測標(biāo)志位 )將被置為 “1”;反之,當(dāng) VccVLVD時(shí),該位被置為 “0”。 SPCE061A具有 4級(jí)電壓監(jiān)測低限,系統(tǒng)默認(rèn)的電壓檢測低限是 。 程序中通過對(duì) P_LVD_Ctrl 單元編程進(jìn)行控制,設(shè)置電壓檢測低限為 。當(dāng)電源電壓低于 LVD 電壓時(shí), LED 被點(diǎn)亮。在編程中將 IOB 口于 LED 連接,并將 B 口設(shè)置為無數(shù)據(jù)反相功能的低電平輸出。程序流程如圖 。 開 始初 始 化 B 口點(diǎn) 亮 L E D設(shè) 置 L V D 為 3 . 2 V監(jiān) 測 電 壓電 源 電 壓 低 于 L V D 電 壓 ?點(diǎn) 亮 L E D熄 滅 L E DNY 圖 LVD低電壓檢測程序流程 UART 模塊 為與 PC傳輸數(shù)據(jù)而采用的 UART模塊提供了一個(gè)全雙工標(biāo)準(zhǔn)接口。 P_UART_Data( 7023H)(讀 /寫)單元可以用于接收和發(fā)送緩沖數(shù)據(jù),向該單元寫入數(shù)據(jù),可以 將要 32 發(fā)送的數(shù)據(jù)送入寄存器;從該單元讀取,可以從寄存器讀出數(shù)據(jù)字節(jié)。使用 UART 模塊進(jìn)行通訊時(shí),必須事先將 Rx( IOB7)引腳設(shè)置為輸入狀態(tài)、 Tx( IOB10)引腳設(shè)置為輸出狀態(tài)。然后,通過設(shè)置 P_UART_BaudScalarLow ( 7024H )、P_UART_BaudScalarHigh ( 7025H ) 單 元 指 定 所 需 的 波 特 率 。 同 時(shí) , 設(shè)P_UART_Command1( 7021H)和 P_UART_Command2( 7022H)單元以啟用 UART通訊功能。以上設(shè)置完成后, UART 將處于啟用狀態(tài)。設(shè)置 P_UART_Command1 單元的第 7 位可以啟用 UART IRQ 中斷,并決定中斷是由 TxRDY 或 RxRDY 信號(hào)觸發(fā),或是由二者共同觸發(fā)。設(shè)置 P_UART_Command2 單元的第 7 位可以啟用 UART Tx、Rx 引腳功能。當(dāng) SPCE061A 接收或發(fā)送一個(gè)字節(jié)數(shù)據(jù)時(shí), P_UART_Command2( 7022H)單元的第 7 位會(huì)被置為 “1”,且同時(shí)觸發(fā) UART IRQ。無論 UART IRQ 中斷是否被啟用, UART 收發(fā)功能都可以由 P_UART_Command2( 7022H)單元的第 7 位來控制。在任何時(shí)刻讀取 P_UART_Command2( 7022H)單元,將會(huì)清除 UART IRQ 的中斷標(biāo)志。 UART 接收通道結(jié)構(gòu)圖,如圖 。 UART 發(fā)送組成原理結(jié)構(gòu)圖,如圖 。 U A R TI O B 7 ( R x )1 : I R 接 收 關(guān) 閉b 1 ( I R R x E N B ) R X I R0 : I R 接 收 使 能b 2 ( R X E N ) U A R T R x 圖 UART 接收通道結(jié)構(gòu)圖 U A R T1 、 設(shè) 置 T x 端 口 允 通2 、 設(shè) 置 波 特 率T i m e r A3 、 設(shè) 置 T i m e r A 的P W M 輸 出 脈 沖I R T x E n = 1I R T x E n = 0( 反 向 輸 出 )I O B 8 ( I R T x )設(shè) 置 I O B 8 位 反 向 輸 出模 式 , 用 做 I R
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1