第1章 SPCE061A板介绍 3
1.1 SPCE061A简介 3
1.1.1 61板基本介绍 3
1.1.2 61板基本特点 3
1.1.3 61板功能区划分 3
1.1.4 61板接口说明 4
1.1.5 61板按键和电位器说明 5
1.2 SPCE061A硬件结构 5
1.2.1 SPCE061A单片机结构预览 5
1.2.2 内核结构 6
1.2.3 片内存储器 7
1.2.4 I/O接口 8
1.2.5 时钟电路 14
1.2.6 定时器/计数器 15
1.2.7 模/数转换器ADC 15
1.2.8 DAC方式音频输出 17
1.2.9 串行设备输入/输出端口SIO 18
1.2.10 低电压监测/低电压复位LCD/LVR 18
1.2.11 通用异步串行接口UART 18
1.3 SPCE061A的封装及引脚 19
1.3.1 SPCE061A的封装 19
1.3.2 引脚功能 19
第2章 开发环境及IDE编程工具 21
2.1 凌阳16位单片机集成开发环境 21
2.2 μ'nSP IDE工具 23
2.2.1 μ'nSP IDE工具介绍 23
2.2.2 μ'nSP IDE总体概述 24
2.2.3 μ'nSP IDE主要特点 24
2.2.4 μ'nSP IDE工具界面 24
2.2.5 μ'nSP IDE库文件的加载 30
2.3 μ'nSP IDE工具的使用 34
2.3.1 μ'nSP IDE使用流程(1) 34
2.3.2 μ'nSP IDE使用流程(2) 35
2.3.3 μ'nSP IDE在线仿真流程 36
2.3.4 μ'nSP IDE调试流程 36
2.4 应用举例 41
第3章 SPCE061A编程基础 45
3.1 SPCE061A指令系统 45
3.1.1 数据传送指令 45
3.1.2 算术运算指令 46
3.1.3 逻辑运算指令 46
3.1.4 转移指令 46
3.1.5 控制指令 47
3.1.6 伪指令 47
3.2 用C语言编程来直接控制硬件 49
3.2.1 用C语言对寄存器进行操作 49
3.2.2 用C语言进行I/O设置 50
3.2.3 用C语言进行系统时钟设置 50
3.2.4 用C语言编写中断程序 52
3.3 SPCE061A编程基础 53
3.3.1 汇编语言的程序结构 53
3.3.2 程序代码分析 53
3.3.3 μ'nSP的数制及其后缀规定 54
3.3.4 单步调试程序 54
3.3.5 C语言的程序结构 55
3.3.6 C语言程序的应用举例分析 55
3.3.7 看门狗 56
3.3.8 堆栈在函数传递方面的应用 56
3.3.9 C和汇编的函数相互调用 56
3.3.10 片内Flash程序存储器 60
3.4 单一功能模块程序编写的基本过程 60
3.4.1 从硬件到编程 60
3.4.2 SPCE061A的可编程功能模块 60
3.4.3 小程序编写实例 61
3.4.4 按类寻找编程共性 63
3.5 系统程序编写的基本过程 65
3.5.1 系统编程 65
3.5.2 系统编程的一般方法 65
3.5.3 系统编程软件任务的划分 65
3.5.4 系统编程软件模板 65
3.5.5 举例说明系统编程 66
3.5.6 P_TinerA_Ctrl单元的设置 67
3.5.7 系统编程模板与实例对照 67
第4章 语音处理 69
4.1 语音基础知识 69
4.1.1 音频 69
4.1.2 语音处理技术 69
4.1.3 SPCE061A在语音处理上的应用 73
4.2 函数库及凌阳音频函数库 73
4.2.1 “库”的概念 73
4.2.2 创建自己的函数库 74
4.2.3 使用函数库 75
4.2.4 修改函数库 78
4.2.5 凌阳音频函数库 79
4.3 语音播放:自动播放 80
4.3.1 单片机实现语音播放的原理 80
4.3.2 语音播放程序示例 83
4.3.3 创建一个语音播放程序 84
4.4 语音播放:手动播放 89
4.4.1 手动播放程序示例 89
4.4.2 创建手动播放程序 90
4.4.3 用汇编语言编写语音播放程序 94
4.5 语音录放 95
4.5.1 单片机语音录放原理 95
4.5.2 用SPCE61A实现录放音 96
4.5.3 创建一个录放音程序 97
4.5.4 用汇编语言编写录放音程序 102
4.6 语音识别 103
4.6.1 语音识别概述 103
4.6.2 特定人语音识别 104
第5章 基于SPCE061A板的电子实习 113
5.1 实习目的 113
5.2 61板焊接前期练习 114
5.2.1 焊接练习目的 114
5.2.2 焊接原理 114
5.2.3 常用元器件的识别 115
5.2.4 焊接方法 116
5.2.5 焊接练习步骤 117
5.3 61板焊接 117
5.3.1 61板简介 117
5.3.2 61板焊接注意事项 118
5.3.3 61板裸板检测 118
5.3.4 焊接61板的步骤 119
5.4 61板测试 123
5.4.1 61板测试简介 123
5.4.2 电源部分 123
5.4.3 键盘部分 125
5.4.4 晶振部分 125
5.4.5 I/O部分 125
5.4.6 音频输入部分 126
5.4.7 音频输出部分 126
5.4.8 74HC244部分 127
5.4.9 D/A部分 127
5.4.10 A/D部分 127
5.4.11 PWM输出部分 128
5.4.12 硬件准备——硬件连接、硬件检测 128
5.4.13 综合测试 129
5.5 下载器使用说明 130
5.5.1 DEMO程序使用介绍 130
5.5.2 下载器的使用 130
5.5.3 注意事项 131
5.5.4 下载范例 131
第6章 基础实验 133
实验1 发光二极管单向循环点亮 133
实验2 按键点亮发光二极管 138
实验3 发光二极管和数码管交替显示 143
实验4 按键显示数字 149
实验5 使用C语言实现A口为输入、B口为输出实验 155
实验6 系统时钟实验 157
实验7 FIQ中断实验 159
实验8 UART实验 163
实验9 A/D转换 166
实验10 A/D采样数据在发光二极管上点亮 168
实验11 发光二极管巡回点亮并数码管计数 172
实验12 SACM-A2000实验 179
第7章 综合应用 184
7.1 篮球赛电子计分牌 184
7.1.1 预备知识 184
7.1.2 课程设计目的 184
7.1.3 课程设计内容 185
7.2 单片机实现时钟计时 201
7.2.1 预备知识 201
7.2.2 课程设计目的 201
7.2.3 课程设计内容 202
7.3 多功能出租车计价器 205
7.3.1 预备知识 205
7.3.2 课程设计目的 205
7.3.3 课程设计内容 205
7.4 步进电机的单片机控制 209
7.4.1 预备知识 209
7.4.2 课程设计目的 210
7.4.3 课程设计内容 210
7.5 教学楼用打铃器 214
7.5.1 预备知识 214
7.5.2 课程设计目的 214
7.5.3 课程设计内容 214
7.6 SACM-MS01实验 217
7.6.1 实验目的 217
7.6.2 实验设备 217
7.6.3 实验原理 217
7.6.4 实验步骤 217
7.6.5 程序范例 219
附录A C-Lib中的函数集 224
附录B μ'nSP的指令集一览 237
参考文献 244