第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 特性7
1.2.6 SPCE061A的最小系统8
1.2.7 SPCE061A的开发方式9
1.2.8 应用领域9
第2章 SPCE061A单片机硬件结构11
2.1 μ'nSPTM的内核结构11
2.1.1 算术逻辑运算单元ALU11
2.1.2 寄存器组12
2.1.3 数据总线和地址总线15
2.2 SPCE061A片内存储器结构15
2.2.1 RAM15
2.2.2 堆栈16
2.2.3 闪存Flash 16
2.3 SPCE061A的输入/输出接口20
2.3.1 I/O端口结构21
2.3.2 并行I/O口的组合控制23
2.3.3 B口的特殊功能30
2.4 时钟电路33
2.5 锁相环PLL振荡器33
2.6 系统时钟33
2.7 时间基准信号35
2.8 定时器/计数器37
2.9 睡眠与唤醒45
2.9.1 睡眠45
2.9.2 唤醒45
2.10 模/数转换器ADC46
2.10.1 ADC的控制46
2.10.2 ADC的直流电气特性53
2.10.3 MIC_IN通道方式ADC54
2.10.4 LINE_IN模式的ADC操作55
2.11 DAC方式音频输出57
2.12 低电压监测/低电压复位(LVD/LVR)60
2.12.1 低电压监测60
2.12.2 低电压复位61
2.13 串行设备输入输出端口(SIO)62
2.14 通用异步串行接口UART65
2.15 保密设定70
2.16 看门狗计数器(WatchDog)70
第3章 指令系统72
3.1 指令系统的概述及符号约定72
3.2 数据传送指令74
3.3 SPCE061A的算术运算78
3.3.1 加法运算78
3.3.2 减法运算80
3.3.3 带进位的加减运算82
3.3.4 取补运算83
3.3.5 SPCE061A的乘法指令83
3.3.6 SPCE061A的n项内积运算指令83
3.3.7 比较运算85
3.4 SPCE061A的逻辑运算86
3.4.1 逻辑与86
3.4.2 逻辑或88
3.4.3 逻辑异或89
3.4.4 测试91
3.4.5 移位94
3.5 SPCE061A的控制转移类指令96
3.5.1 无符号数的跳转指令98
3.5.2 有符号数的跳转指令99
3.5.3 其他跳转指令100
3.6 伪指令101
3.6.1 伪指令的语法格式及特点101
3.6.2 伪指令符号约定101
3.6.3 标准伪指令102
3.6.4 宏定义与调用114
3.6.5 段的定义与调用118
3.6.6 结构的定义与调用119
3.6.7 过程的定义与调用123
3.6.8 伪指令的应用举例124
第4章 程序设计137
4.1 μ’nSPTMIDE的项目组织结构137
4.2 汇编语言程序设计139
4.2.1 一个简单的汇编代码139
4.2.2 汇编的语法格式141
4.2.3 汇编语言的程序结构144
4.2.4 嵌套与递归159
4.3 C语言程序设计162
4.3.1 μ’nSPTM支持的C语言算术逻辑操作符163
4.3.2 C语言支持的数据类型163
4.3.3 程序调用协议164
4.3.4 C语言的嵌入式汇编176
4.3.5 利用嵌入式汇编实现对端口寄存器的操作178
4.4 应用程序设计181
4.4.1 查表程序181
4.4.2 数制转换程序186
第5章 中断系统192
5.1 概述192
5.2 SPCE061A的中断系统193
5.2.1 中断源194
5.2.2 中断控制197
5.2.3 中断响应202
5.3 中断系统的应用205
5.3.1 单中断源的应用205
5.3.2 多中断源应用221
第6章 集成开发环境IDE232
6.1 概述232
6.2 菜单233
6.2.1 文件233
6.2.2 编辑235
6.2.3 视图236
6.2.4 项目237
6.2.5 编译238
6.2.6 工具239
6.2.7 帮助240
6.2.8 调试240
6.3 工具栏241
6.4 窗口244
6.4.1 Workspace 窗口245
6.4.2 编辑窗口246
6.4.3 文本编辑器246
6.4.4 二进制编辑器247
6.4.5 输出窗口248
6.4.6 编译输出窗口248
6.4.7 调试输出窗口249
6.4.8 查找输出窗口249
6.4.9 调试窗口249
6.4.10 其他窗口256
6.5 项目258
6.5.1 建立项目258
6.5.2 在项目中新建C文件259
6.5.3 在项目中新建汇编文件260
6.5.4 在项目中新建头文件261
6.5.5 在项目中新建文本文件261
6.5.6 在项目中添加/删除文件262
6.5.7 在项目中使用资源263
6.5.8 项目选项的设置264
6.5.9 项目的编译269
6.6 代码剖视器(profiler)使用及功能269
6.6.1 激活Profile方法270
6.6.2 使用 Profile步骤271
6.7 举例273
第7章 凌阳音频压缩算法285
7.1 音频概述285
7.1.1 音频的特点及分类285
7.1.2 数字音频的采样和量化285
7.1.3 音频格式的介绍285
7.1.4 语音压缩编码基础287
7.1.5 语音合成、辨识技术288
7.2 凌阳音频简介290
7.2.1 凌阳音频压缩算法的编码标准290
7.2.2 压缩分类290
7.2.3 凌阳常用的音频形式和压缩算法290
7.2.4 凌阳语音的播放、录制、合成和辨识291
7.3 常用的应用程序接口API的功能介绍及应用292
7.3.1 概述292
7.3.2 SACM_A2000293
7.3.3 SACM_S480299
7.3.4 SACM_S240304
7.3.5 SACM_MS01308
7.3.6 SACM_DVR314
7.4 语音压缩方法322
7.4.1 DOS下的压缩323
7.4.2 WINDOWS下的压缩324
7.5 键控放音程序介绍324
7.6 语音辨识331
7.6.1 初始化331
7.6.2 训练部分331
7.6.3 辨识部分332
7.6.4 中断部分333
7.7 小结341
第8章 μ’nSPTM单片机应用及开发技术345
8.1 μ’nSPTM的应用领域345
8.1.1 用于数字信号处理345
8.1.2 用于开发研制便携移动式终端346
8.1.3 用于开发嵌入式计算机应用系统347
8.2 SPCE061A单片机应用举例348
8.2.1 单片机报时及作息时间控制348
8.2.2 热敏电阻温度计352
8.2.3 三角波、正弦波和方波波形发生器355
8.2.4 红外遥控359
8.2.5 SPCE061A做语音录放363
8.2.6 语音识别367
8.3 数字滤波程序371
8.3.1 μ’nSPTM实现FIR滤波——乘—累加功能371
8.3.2 用μ’nSPTM实现低通FIR滤波器372
8.3.3 μ’nSP实现FIR滤波需要注意的问题376
8.3.4 滤波系数出现负数时的滤波运算377
8.4 卷积编码以及数字比特译码378
8.4.1 卷积码编码和维特比译码378
8.4.2 用μ’nSPTM实现卷积编译码382
8.5 CRC校验程序386
8.5.1 CRC简介386
8.5.2 CRC原理387
附录1CLib中的函数集390
附录2μ’nSPTM的指令集一览403
附录3μ’nSPTM汇编器伪指令集411
附录4μ’nSPTM编译相关错误信息413
附录5端口速查表422
附录6符号约定424