第一部分 探索 2
第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
第二部分 实践 86
第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测试VT 100终端 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
第三部分 扩展 168
第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 fiileio模块 293
15.12测试fopenM()和freadM() 295
15.13向文件中写入数据 297
15.14关闭文件(续) 300
15.15 辅助函数 302
15.16测试完整的fiileio模块 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