16位單片機及語音嵌入式系統

-
【作 者】趙定遠 馬洪江 主編
【I S B N 】978-7-5084-4132-X
【責任編輯】張玉玲
【適用讀者群】本科
【出版時間】2006-10-01
【開 本】16開本
【裝幀信息】平裝(光膜)
【版 次】第1版
【頁 數】372
【千字數】
【印 張】
【定 價】¥32
【叢 書】21世紀高等院校規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書以臺灣凌陽公司SPCE061A芯片為主線,系統介紹了凌陽16位單片機的結構、指令系統、芯片資源以及集成開發系統IDE,重點介紹了凌陽音頻壓縮算法、語音存儲與回放技術、語音識別及語音合成技術,并對在開發平臺上進行應用開發的實例進行了介紹。
對本書介紹的內容已有相應的實驗平臺和個人開發平臺與實踐環節配套,故對電路組成不作詳細介紹和分析,重點在于對系統資源的分析、了解以及編程應用。
本書內容翔實、語言通俗易懂,既可作為大專院校計算機與電子信息工程類學生的教材,也可作為從事單片機應用和嵌入式系統開發的工程技術人員的參考資料。
單片機的出現是計算機發展史上的重要里程碑,單片機具有集成度高、體積小、功能強、可靠性高等特點。隨著芯片制造水平的不斷提高,芯片的功能越來越強,而價格卻越來越低,用其作為MCU的嵌入式系統得到了廣泛的應用。
SPCE061A是臺灣凌陽公司’nSP系列單片機中的16位單片機,其內核中增加了DSP功能,特別適合語音識別、語音應答、語音編碼及解碼等方面的應用。以16位單片機作MCU,使用嵌入式語音技術構成的語音嵌入式系統可以應用于許多領域。
本書系統介紹了SPCE061A芯片的內部結構、指令系統、中斷系統、音頻壓縮算法,對匯編語言編程和C語言程序設計進行了分析。與之配套的集成開發環境IDE給了解、學習該門課程的內容提供了極大的便利,給應用系統開發提供了一個非常直觀的平臺,書中對其進行了詳細介紹。
感謝臺灣凌陽公司和北京北陽公司為本書提供了大量產品資料、集成開發平臺資料以及相關資料內容。
本書由趙定遠、馬洪江任主編,趙衛東、于曦、劉強、趙幼瑜、李平勇、趙陽、張志強、段林濤、葉安勝、李丹等參加了本書的編寫整理工作。
為配合教學和凌陽大學計劃的實施,盡管臺灣凌陽公司和北京北陽公司提供了大力支持,由于時間倉促,書中會有錯漏之處,敬請讀者給予批評指正。
有關SPCE單片機的資料、應用信息和最新動態,請讀者訪問以下網站:
凌陽公司 http://www.sunplus.com.tw
北陽公司 http://www.unsp.com.cn
作 者
2006年6月于成都
前言
第1章 SPCE061A單片機簡介 1
1.1 凌陽16位單片機 1
1.2 SPCE061A簡介 2
1.2.1 總述 2
1.2.2 性能 2
1.2.3 結構概覽 3
1.2.4 芯片的引腳排列和說明 3
1.2.5 特性 6
1.2.6 SPCE061A最小系統 6
1.2.7 SPCE061A開發方法 7
1.2.8 應用領域 8
第2章 SPCE061A單片機硬件結構 9
2.1 µ’nSP的核心結構 9
2.1.1 ALU算術邏輯運算單元 10
2.1.2 寄存器組 10
2.1.3 數據總線和地址總線 12
2.2 SPCE061A片內存儲器結構 13
2.2.1 RAM 13
2.2.2 堆棧 13
2.2.3 閃存Flash 14
2.3 SPCE061A的輸入/輸出接口 17
2.3.1 I/O端口結構 17
2.3.2 并行I/O端口的控制向量組合 19
2.3.3 B端口的特殊功能 23
2.4 時鐘電路 26
2.5 PLL鎖相環(Phase Lock Loop) 26
2.6 系統時鐘 27
2.7 時間基準信號 28
2.8 Timer定時器/計數器 30
2.9 睡眠與喚醒 37
2.9.1 睡眠 37
2.9.2 喚醒 37
2.10 模擬數字轉換器ADC 38
2.10.1 ADC的控制 38
2.10.2 MIC_IN通道方式ADC 43
2.10.3 LINE_IN模式的ADC操作 44
2.11 DAC方式音頻輸出 46
2.12 低電壓監測/低電壓復位(LVD/LVR) 48
2.12.1 低電壓監測LVD(Low Voltage Detect) 48
2.12.2 低電壓復位LVR(Low Voltage Reset) 49
2.13 串行設備輸入輸出端口(SIO) 50
2.14 通用異步串行接口UART 53
2.15 保密設定 57
2.16 看門狗計數器(WatchDog) 57
習題與思考題 58
第3章 尋址方式與指令系統 59
3.1 指令系統的概述及符號約定 59
3.2 數據傳送指令 60
3.3 算術運算 64
3.3.1 加法運算 64
3.3.2 減法運算 66
3.3.3 帶進位的加減運算 67
3.3.4 取補運算 68
3.3.5 SPCE061A的乘法指令 68
3.3.6 SPCE061A的n項內積運算指令 69
3.3.7 比較運算(影響標志位N、Z、S、C) 70
3.4 SPCE061A的邏輯運算 71
3.4.1 邏輯與 71
3.4.2 邏輯或 72
3.4.3 邏輯異或 74
3.4.4 測試(TEST) 75
3.4.5 SPCE061A的移位操作 77
3.5 SPCE061A的控制轉移類指令 79
3.6 偽指令 83
3.6.1 偽指令的語法格式及特點 83
3.6.2 偽指令符號約定 83
3.6.3 標準偽指令 84
3.6.4 宏定義與調用 95
3.6.5 段的定義與調用 98
3.6.6 結構的定義與調用 99
3.6.7 過程的定義與調用 102
3.6.8 偽指令的應用舉例 103
習題與思考題 113
第4章 程序設計 114
4.1 µ’nSP IDE的項目組織結構 114
4.2 匯編語言程序設計 115
4.2.1 編譯器中代碼流動結構 115
4.2.2 一個簡單的匯編代碼 116
4.2.3 匯編的語法格式 117
4.2.4 匯編語言的程序結構 119
4.2.5 嵌套與遞歸 133
4.3 C語言程序設計 136
4.3.1 µ’nSP支持的C語言算邏操作符(#) 136
4.3.2 C語言支持的數據類型 136
4.3.3 程序調用協議 137
4.3.4 C語言的嵌入式匯編 147
4.3.5 利用嵌入式匯編實現對端口寄存器的操作 149
4.4 應用程序設計 151
4.4.1 查表程序 151
4.4.2 數制轉換程序 155
習題與思考題 160
第5章 中斷系統 161
5.1 中斷的概述 161
5.2 SPCE061A中斷系統 162
5.2.1 中斷源 162
5.2.2 中斷控制 165
5.2.3 中斷響應 169
5.2.4 中斷服務流程 171
5.3 中斷系統的應用 172
5.3.1 單中斷源的應用 172
5.3.2 多中斷源應用 187
習題與思考題 195
第6章 集成開發環境IDE介紹 196
6.1 綜述 196
6.2 菜單 196
6.2.1 文件(File) 197
6.2.2 編輯(Edit) 198
6.2.3 視圖(View) 199
6.2.4 項目(Project) 200
6.2.5 編譯(Build) 201
6.2.6 工具(Tools) 201
6.2.7 幫助(Help) 202
6.2.8 調試(Debug) 202
6.3 工具欄 203
6.4 窗口 205
6.4.1 Workspace 窗口 206
6.4.2 編輯(Edit)窗口 207
6.4.3 文本編輯器 207
6.4.4 二進制編輯器 207
6.4.5 輸出(Output)窗口 208
6.4.6 編譯輸出窗口 209
6.4.7 調試輸出窗口 209
6.4.8 查找輸出窗口 209
6.4.9 調試(Debug)窗口 209
6.4.10 其他窗口 215
6.5 項目 216
6.5.1 建立項目 216
6.5.2 在項目中新建C文件(.C) 217
6.5.3 在項目中新建匯編文件(.asm) 217
6.5.4 在項目中新建頭文件(.H) 218
6.5.5 在項目中新建文本文件(.txt) 218
6.5.6 在項目中添加/刪除文件 219
6.5.7 在項目中使用資源 220
6.5.8 項目選項的設置 220
6.5.9 項目的編譯 224
6.6 代碼剖視器(profiler)的使用及功能 224
6.6.1 激活Profile方法 224
6.6.2 使用Profile的步驟 225
6.7 舉例 227
習題與思考題 236
第7章 凌陽音頻壓縮算法 237
7.1 背景介紹 237
7.1.1 音頻的概述(特點、分類) 237
7.1.2 數字音頻的采樣和量化 237
7.1.3 音頻格式的介紹 237
7.1.4 語音壓縮編碼基礎 239
7.1.5 語音合成、辨識技術 240
7.2 凌陽音頻簡介 241
7.2.1 凌陽音頻壓縮算法的編碼標準 241
7.2.2 壓縮分類 241
7.2.3 凌陽常用的音頻形式和壓縮算法 242
7.2.4 凌陽語音的播放、錄制、合成和辨識 242
7.3 常用的應用程序接口API的功能介紹及應用 243
7.3.1 概述 243
7.3.2 SACM_A2000 243
7.3.3 SACM_S480 249
7.3.4 SACM_S240 253
7.3.5 SACM_MS01 257
7.3.6 SACM_DVR 262
7.4 語音壓縮方法 269
7.5 鍵控放音程序介紹 270
7.6 語音辨識 275
習題與思考題 283
第8章 µ’nSP單片機應用及開發技術 284
8.1 µ’nSP的應用領域 284
8.1.1 用于數字信號處理 284
8.1.2 用于開發研制便攜移動式終端 285
8.1.3 用于開發嵌入式計算機應用系統 285
8.2 SPCE061A單片機的應用舉例 286
8.2.1 單片機報時及作息時間控制 287
8.2.2 熱敏電阻溫度計 289
8.2.3 三角波、正弦波、方波波形發生器 293
8.2.4 紅外遙控 296
8.2.5 SPCE061A做語音錄放 300
8.2.6 語音識別 302
8.3 數字濾波程序 307
8.3.1 µ’nSP實現FIR濾波:乘-累加(MAC)功能 307
8.3.2 用µ’nSP實現低通FIR濾波器 308
8.3.3 用µ’nSP實現FIR濾波需要注意的問題 311
8.3.4 濾波系數出現負數時的濾波運算 312
8.4 卷積編碼以及數字比特譯碼 313
8.4.1 卷積碼編碼和維特比譯碼 313
8.4.2 用µ’nSP實現卷積編譯碼 316
8.5 CRC校驗程序 320
8.5.1 CRC簡介 320
8.5.2 CRC原理 321
附錄A C-Lib中的函數集 324
附錄B μ’nSP的指令集 335
附錄C µ’nSP匯編器偽指令集 345
附錄D µ’nSP編譯的相關錯誤信息 347
附錄E 端口速查表 354
附錄F 符號約定 356
參考文獻 357