第一部分 探索
第1章 初识PIC32 2
1.1 计划 2
1.2 准备 2
1.3 探索 3
1.4 编译与链接 5
1.5 链接器脚本 6
1.6 生成第一个工程 6
1.7 使用仿真器 7
1.8 确定方向 8
1.9 JTAG端口 10
1.10 测试PORTB 11
1.11 小结 13
1.12 对汇编语言行家的提示 13
1.13 对PIC MCU行家的提示 14
1.14 对C语言行家的提示 14
1.15 提示与技巧 14
1.16 练习 15
1.17 参考书 15
1.18 链接 15
第2章 循环 16
2.1 计划 16
2.2 准备 16
2.3 探索 17
2.4 while循环 17
2.5 动态仿真 19
2.6 使用逻辑分析仪 22
2.7 小结 24
2.8 对汇编语言编程行家的提示 24
2.9 对8位PIC单片机行家的提示 24
2.10 对16位PIC单片机行家的提示 24
2.11 对C语言行家的提示 25
2.12 对MIPS行家的提示 25
2.13 提示与技巧 25
2.14 使用外围设备函数库的提示 25
2.15 练习 26
2.16 参考书 26
2.17 链接 26
第3章 循环和数组 27
3.1 计划 27
3.2 准备 27
3.3 探索 27
3.4 do循环 27
3.5 变量声明 28
3.6 for循环 29
3.7 更多循环示例 30
3.8 数组 30
3.9 发送一条信息 31
3.10 用逻辑分析仪进行测试 33
3.11 用Explorer 16演示板进行测试 33
3.12 用PIC32 Starter Kit进行测试 34
3.13 小结 35
3.14 对汇编语言行家的提示 35
3.15 对PIC单片机行家的提示 36
3.16 对C语言行家的提示 36
3.17 提示与技巧 36
3.18 练习 37
3.19 参考书 37
3.20 链接 37
第4章 算术操作与优化 38
4.1 计划 38
4.2 准备 38
4.3 探索 38
4.4 关于优化(完全不优化) 40
4.5 测试 40
4.6 关于long long类型 40
4.7 整数除法 41
4.8 浮点数 42
4.9 评估系统的性能 43
4.10 小结 45
4.11 对汇编语言行家的提示 45
4.12 对8位PIC单片机行家的提示 46
4.13 对16位PIC和dsPIC单片机行家的提示 46
4.14 提示与技巧 47
4.14.1 数学函数库 47
4.14.2 复数数据类型 47
4.15 练习 48
4.16 参考书 48
4.17 链接 48
第5章 中断 49
5.1 计划 49
5.2 准备 49
5.3 探索 49
5.4 中断和异常 49
5.5 中断源 50
5.6 中断优先级 51
5.7 中断服务程序的声明 53
5.8 管理中断的函数库 54
5.9 单向量中断的管理 54
5.10 管理多个中断 57
5.11 多重向量中断的管理 59
5.12 一个简单的应用示例 62
5.13 辅助振荡器 66
5.14 实时时钟和日历(RTCC) 66
5.15 小结 68
5.16 对PIC单片机行家的提示 68
5.17 提示与技巧 68
5.18 练习 69
5.19 参考书 69
5.20 链接 69
第6章 存储器 70
6.1 计划 70
6.2 准备 70
6.3 探索 70
6.4 存储空间的分配 71
6.5 查看映射 75
6.6 指针 77
6.7 堆 78
6.8 PIC32MX总线 78
6.9 PIC32MX存储器映射 79
6.10 嵌入式控制应用的存储器映射 82
6.11 小结 83
6.12 对C语言行家的提示 83
6.13 对汇编语言行家的提示 83
6.14 对PIC单片机行家的提示 83
6.15 提示与技巧 84
6.16 练习 84
6.17 参考书 84
6.18 链接 84
第二部分 实践
第7章 时间与初始化 86
7.1 计划 86
7.2 准备 86
7.3 探索 86
7.4 性能与功耗 88
7.5 主振荡时钟链 89
7.6 外围设备总线时钟 90
7.7 器件的初始配置 90
7.8 在代码中设定配置位 91
7.9 艰巨的任务 92
7.10 准备、设置、出发 97
7.11 微调PIC32:配置Flash等待状态 98
7.12 微调PIC32:打开指令和数据缓存 99
7.13 微调PIC32:打开预取指令功能 100
7.14 微调PIC32:最后一步 101
7.15 小结 102
7.16 对汇编语言行家的提示 102
7.17 对PIC单片机行家的提示 102
7.18 提示与技巧 103
7.19 练习 105
7.20 参考书 105
7.21 链接 105
第8章 通信 106
8.1 计划 106
8.2 准备 106
8.3 探索 106
8.4 同步串行接口 106
8.5 异步串行接口 108
8.6 并行接口 108
8.7 基于SPI的同步通信 109
8.8 测试读状态寄存器命令 112
8.9 向EEPROM写数据 114
8.10 读取存储器的内容 114
8.11 32位串行EEPROM存储器的函数库 115
8.12 测试新的串行EEPROM存储器函数库 117
8.13 小结 118
8.14 对C语言编程行家的提示 118
8.15 对Explorer 16专家的提示 119
8.16 对PIC24行家的提示 119
8.17 提示与技巧 119
8.18 练习 120
8.19 参考书 120
8.20 链接 120
第9章 异步通信 121
9.1 计划 121
9.2 准备 121
9.3 探索 121
9.4 UART的配置 122
9.5 数据发送与接收 124
9.6 测试串行通信程序 125
9.7 生成一个简单的控制台函数库 127
9.8 测试VT100终端 128
9.9 将串行端口用作调试工具 130
9.10 Matrix工程 130
9.11 小结 132
9.12 对C语言编程行家的提示 132
9.13 对PIC单片机行家的提示 132
9.14 提示与技巧 132
9.15 练习 133
9.16 参考书 133
9.17 链接 133
第10章 LCD显示 134
10.1 计划 134
10.2 准备 134
10.3 探索 134
10.4 与HD44780控制器兼容 134
10.5 并行主端口 137
10.6 配置PMP用于LCD模块控制 137
10.7 访问LCD显示模块的小型函数库 138
10.8 生成LCD函数库并使用PMP函数库 141
10.9 函数库EXPLORER.C 144
10.10 创建include和lib目录 146
10.11 高级LCD控制 147
10.12 进度条工程 148
10.13 小结 150
10.14 对PIC24单片机行家的提示 151
10.15 提示与技巧 151
10.16 练习 151
10.17 参考书 151
10.18 链接 152
第11章 模数转换 153
11.1 计划 153
11.2 准备 153
11.3 探索 153
11.4 完成第一次转换 155
11.5 自动采样的时序 156
11.6 开发演示系统 157
11.7 创建自己的小型ADC函数库 158
11.8 乐趣与游戏 158
11.9 温度检测 160
11.10 小结 164
11.11 对PIC24行家的提示 164
11.12 提示与技巧 164
11.13 练习 164
11.14 参考书 164
11.15 链接 165
第三部分 扩展
第12章 捕获用户输入 168
12.1 计划 168
12.2 准备 168
12.3 按钮和机械开关 168
12.4 封装按钮输入信号 170
12.5 消除按钮输入弹跳 171
12.6 旋转编码器 173
12.7 中断驱动的旋转编码器输入 176
12.8 键盘 179
12.9 PS/2物理接口 179
12.10 PS/2通信协议 180
12.11 PIC32和PS/2相连接 180
12.12 输入捕获模块 180
12.13 用激励脚本进行测试 184
12.14 仿真器的运行特性统计工具 188
12.15 变更通知模块 189
12.16 开销评估 193
12.17 I/O轮询 193
12.18 测试I/O轮询方法 197
12.19 开销和效能的考虑 199
12.20 键盘缓冲 200
12.21 按键码的解码 203
12.22 小结 206
12.23 对PIC24行家的提示 206
12.24 提示与技巧 207
12.25 练习 207
12.26 参考书 207
12.27 链接 208
第13章 视频处理 209
13.1 计划 209
13.2 准备 209
13.3 探索 209
13.4 复合视频信号的产生 211
13.5 输出比较模块 215
13.6 图像缓冲 217
13.7 串行化、DMA和同步 218
13.8 完成一个视频库文件 222
13.9 测试复合视频信号 225
13.10 测试性能 227
13.11 看到黑屏 227
13.12 测试模式 228
13.13 绘图 230
13.14 一片星空 231
13.15 画出一条线 232
13.16 Bresenham算法 233
13.17 画出数学函数 236
13.18 画出二维函数图 237
13.19 分形 240
13.20 文本 245
13.21 通过视频打印文本 247
13.22 文本测试 249
13.23 Matrix程序的修改 250
13.24 小结 251
13.25 对PIC24行家的提示 252
13.26 提示与技巧 252
13.27 练习 253
13.28 参考书 253
13.29 链接 254
第14章 大容量存储 255
14.1 计划 255
14.2 准备 255
14.3 探索 255
14.4 物理接口 256
14.5 和Explorer 16演示板连接 256
14.6 开始一个新工程 257
14.7 选择SPI的操作模式 258
14.8 在SPI模式下发送命令 258
14.9 完成SD卡的初始化 260
14.10 从SD/MMC卡读取数据 261
14.11 向SD/MMC卡写入数据 263
14.12 测试SD/MMC接口 265
14.13 小结 268
14.14 提示与技巧 268
14.15 练习 269
14.16 参考书 269
14.17 链接 270
第15章 读写文件 271
15.1 计划 271
15.2 准备 271
15.3 探索 271
15.4 扇区和簇 271
15.5 文件分配表 272
15.6 根目录 273
15.7 寻宝 275
15.8 打开文件 283
15.9 从文件中读取数据 289
15.10 关闭文件 293
15.11 fileio模块 293
15.12 测试fopenM()和freadM() 295
15.13 向文件中写入数据 297
15.14 关闭文件(续) 300
15.15 辅助函数 302
15.16 测试完整的fileio模块 304
15.17 代码体积 307
15.18 小结 307
15.19 提示与技巧 307
15.20 练习 308
15.21 参考书 308
15.22 链接 308
第16章 音乐播放器 309
16.1 计划 309
16.2 准备 309
16.3 探索 309
16.4 OC PWM模式 311
16.5 把PWM作为D/A转换器进行测试 312
16.6 产生模拟波形 314
16.7 复制声音信息 317
16.8 媒体播放器 318
16.9 WAVE文件格式 319
16.10 play()函数 320
16.11 音频例程 326
16.12 一个简单的WAVE文件播放器 328
16.13 小结 329
16.14 提示与技巧 329
16.15 练习 330
16.16 参考书 330
16.17 链接 330
16.18 免责声明 330
16.19 对于一些行家的最后提示 330