1.1 凌阳16位单片机 1
第1章 SPCE061A单片机简介 1
1.2 SPCE061A简介 2
1.2.1 概述 2
1.2.2 性能 2
1.2.3 结构概览 2
1.2.4 芯片的引脚说明 3
1.2.5 开发方法 5
1.2.6 应用领域 5
1.3 μ'nSP的内核结构 5
1.3.1 算术逻辑运算单元ALU 6
1.3.2 寄存器组 7
1.4.1 RAM 9
1.4.2 堆栈 9
1.3.3 数据总线和地址总线 9
1.4 SPCE061A片内存储器结构 9
1.4.3 闪存FLASH 10
第2章 C语言的基础知识 14
2.1 数据与运算 14
2.1.1 数据与数据类型 14
2.1.2 常量、变量、运算符与表达式 14
2.2 流程控制语句 16
2.3 构造数据类型 19
2.3.1 数组 20
2.3.2 指针 21
2.3.3 结构体和共用体 23
2.4 函数 25
2.4.1 函数的定义形式 25
2.4.2 形式参数与实际参数 26
2.4.3 函数的返回值 26
2.4.4 函数调用格式 26
2.4.5 函数调用规则 27
2.4.6 C函数和汇编函数的相互调用 28
2.5 μ'nSP的C语言嵌入式汇编 29
第3章 I/O端口的C语言程序设计 34
3.1 I/O端口的结构 34
3.2 I/O端口设置的寄存器 34
3.2.2 并行I/O口的组合控制 35
3.2.1 A口相应的寄存器 35
3.2.3 B口相应的寄存器 36
3.2.4 B口的特殊功能 37
3.3 I/O端口设置的C库函数 37
3.4 I/O端口的应用实例 39
第4章 系统设置的C语言程序设计 42
4.1 硬件结构 42
4.1.1 系统时钟 42
4.1.2 锁相环PLL振荡器 42
4.1.3 利用B口的特殊功能产生振荡信号 43
4.1.4 低电压复位/低电压监测 43
4.1.5 看门狗计数器 44
4.2 系统设置的寄存器 44
4.3 系统设置的C函数 46
4.4 系统设置的应用实例 48
第5章 定时器/计数器的C语言程序设计 50
5.1 定时器/计数器的结构 50
5.1.1 时基信号发生器 50
5.1.2 定时器/计数器 50
5.2 定时器/计数器控制的寄存器 52
5.3 定时器/计数器设置的C函数 54
5.4 定时器/计数器的应用实例 56
第6章 ADC和DAC的C语言程序设计 58
6.1 ADC和DAC的硬件特性 58
6.1.1 ADC输入接口的结构 58
6.1.3 DAC音频输出的结构 60
6.1.2 ADC的直流电气特性 60
6.2 ADC和DAC设置的寄存器 61
6.2.1 MIC输入的存储单元P_ADC(读/写)(7014H) 61
6.2.2 ADC的控制端口P_ADC_Ctrl(读/写)(7015H) 61
6.2.3 ADC多通道控制单元P_ADC_MUX_Ctrl(读/写)(702BH) 62
6.2.4 模拟电压输入的存储单元P_ADC_MUX_Data(读)(702CH) 63
6.2.5 DAC数据存放的单元 63
6.2.6 DAC音频输出方式的控制单元P_DAC_Ctrl(写)(702AH) 63
6.3 ADC和DAC设置的C函数 64
6.4 ADC和DAC的应用实例 68
第7章 串行接口SIO和UART的C语言程序设计 71
7.1 串行口的硬件特性 71
7.2 串行口控制的寄存器 72
7.3 串行口设置的C函数 75
7.4串行口应用实例 79
第8章 中断系统的C语言程序设计 82
8.1 中断系统 82
8.1.1 中断源 82
8.1.2 中断优先级和中断入口地址 84
8.2 中断控制 84
8.2.1 中断控制的寄存器 84
8.2.2 中断响应过程 86
8.3 中断控制的相关C函数 88
8.4 中断控制指令 89
8.5 中断系统的应用实例 90
8.5.1 单中断源应用 90
8.5.2 多中断源应用 94
第9章 凌阳音频的C语言程序设计 98
9.1 压缩分类和压缩算法 98
9.1.1 凌阳音频压缩算法的编码标准 98
9.1.2 压缩分类 98
9.1.3 凌阳常用的音频形式和压缩算法 98
9.1.4 语音压缩方法 98
9.1.5 在开发环境μ'nSP TMIDE里添加语音资源 100
9.2 常用的应用程序接口API的功能介绍及应用 103
9.2.1 概述 103
9.2.2 SACM_A2000 104
9.2.3 SACM_S480 112
9.2.4 SACM_MS01 119
9.2.5 SACM_DVR 126
9.3 语音辨识 133
9.4 本章API函数中所占用的寄存器 140
第10章 嵌入式实时操作系统 142
10.1 MiniOS的特点 142
10.2 操作系统概述以及OS的一些基本概念 143
10.3 内核的启动 146
10.4 头文件及内核配置 149
10.5 通信与同步 151
10.5.1 信号量 151
10.5.2 邮箱 157
10.5.3 消息队列 159
10.5.4 小结 161
10.6 中断过程及处理 164
10.6.1 中断处理过程 164
10.6.2 中断中的通信 167
10.6.3 内存管理 169
10.6.4 驱动程序 170
10.6.5 综合应用 171
10.7 MiniOS程序的调试 179
10.7.1 系统用的全局性调试信息 180
10.7.2 与任务相关的全局性调试信息 181
10.7.3 与中断相关的全局性调试信息 182
10.7.4 事件的结构 183
10.8 MiniOS API列表 184
10.8.1 初始化部分 184
10.7.5 内存控制块 184
10.8.2 任务部分 185
10.8.3 事件部分 189
10.8.4 中断处理部分 197
10.8.5 内存管理部分 199
10.8.6 其他 201
第11章 开发环境简介 203
11.1 概述 203
11.2 菜单、工具栏 204
11.3 窗口 207
11.3.1 Workspace窗口 208
11.3.2 Output窗口 208
11.3.5 Register窗口 209
11.3.3 Edit窗口 209
11.3.4 Memory窗口 209
11.3.6 Command窗口 210
11.3.7 Watch窗口 210
11.3.8 Disassembly窗口 210
11.4 工程 211
11.4.1 工作区窗口 211
11.4.2 工程的操作 211
11.4.3 工程的设置 212
11.4.4 工程的编制 214
11.4.5 运行程序 215
11.4.6 加载程序 215
11.4.7 调试器 215
11.5 程序示例 216
12.1 系统概述 220
12.1.1 功能特点 220
第12章 实验仪 220
12.1.2 应用领域 221
12.2 实验仪原理图及模块说明 221
12.2.1 电源 222
12.2.2 SPCE061A芯片周边电路 222
12.2.3 I/O口电路 223
12.2.4 音频输入 224
12.2.5 音频输出 224
12.2.7 SPR4096构成的SIO存储电路 225
12.2.8 异步串口通信电路 225
12.2.6 单路0~3.3 V可调电路 225
12.2.9 1×8键盘 226
12.2.10 4位数码管及LED指示灯显示电路 226
12.2.11 LCD 227
第13章 基础实验 229
实验1 I/O口实验 229
实验2 定时器A/B实验 231
实验3 FIQ中断实验 233
实验4 IRQ0/IRQ1/IRQ2中断实验 237
实验5 IRQ4中断实验 239
实验6 IRQ5中断实验 243
实验7 IRQ6中断实验 246
实验8 UART实验 249
实验9 A/D转换实验 252
实验10 双通道D/A实验 254
实验11 一路输入的录音实验 255
实验12 32K FLASH读/写实验 257
实验13 语音实验 260
实验14 4位7段LED数码管显示实验 264
实验15 LCD显示实验 267
第14章 SPCE061A单片机应用实例 276
14.1 数码录音笔 276
14.1.1 开发背景 276
14.1.2 硬件结构框图 276
14.1.3 参考程序 276
14.2.1 Can总线概述 287
14.2 Can总线的控制 287
14.2.2 BasicCan模式下网络测试功能的实现 289
14.2.3 测试平台应用说明 291
14.2.4 操作示例 293
14.2.5 程序流程图 294
14.2.6 参考程序 295
附录A C-Lib中的函数集 335
附录B μ'nSP的指令集 345
附录C μ'nSP汇编伪指令集 352
附录D μ'nSP编译相关错误信息 354
附录E 端口速查表 362
附录F 符号约定 364
参考文献 365