读书人

32位单片机C语言编程:基于PIC32

发布时间: 2010-03-07 03:11:59 作者:

 32位单片机C语言编程:基于PIC32


基本信息出版社:人民邮电出版社
页码:330 页
出版日期:2009年12月
ISBN:7115216126/9787115216120
条形码:9787115216120
版本:第1版
装帧:平装
开本:16
正文语种:中文
丛书名:图灵电子与电气工程丛书
外文书名:Programming 32-bit Microcontrollers in C Exploring the PIC32

内容简介 《32位单片机C语言编程:基于PIC32》介绍32位单片机PIC32的C语言编程技术,引导读者循序渐进地掌握基于PIC32单片机的嵌入式控制系统的软硬件设计技术。全书内容分为三部分,第一部分是基础知识,第二部分是基本实践,第三部分是高级应用。
《32位单片机C语言编程:基于PIC32》内容新颖实用,趣味性强,既可作为嵌入式系统设计人员的参考书,也可作为高年级本科生、研究生的学习参考书。任何对嵌入式控制系统设计感兴趣的读者都会从中受益。
编辑推荐 《32位单片机C语言编程:基于PIC32》:Microchip公司全套课程解决方案推荐用书
嵌入式控制系统设计专家为您介绍功能强大的32位PIC32芯片
目录
第一部分 探索
第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
……
序言 随着微电子技术的蓬勃发展,嵌入式控制系统正朝着微型化、功能化、智能化的方向大步前进,并已广泛应用于工业生产和日常生活中。嵌入式控制系统的核心是微处理器,而单片机则是其中使用最为广泛的一类微处理器。随着系统性能要求和任务难度的不断提高,单片机已经由经典的8位机发展为16位机以及最新的32位机,并且还集成了种类愈加丰富、功能愈加强大的外围设备。另一方面,由于系统功能的复杂度不断增大,嵌入式控制系统的软件设计也已由当初的汇编语言编程升级为以c语言为代表的高级语言编程。因此,嵌入式控制系统设计师有必要了解一些新器件,掌握一些高级语言编程技术。
本书正是在上述背景下出现的重要技术参考书,它依托最新型的32位单片机PIC32平台,详细介绍了基于c语言的嵌入式控制系统的软件设计方法,通过大量新颖而实用的工程实例,展示了PIC32单片机强大的运算处理能力和集成外围设备的丰富功能。
本书作者LucioDiJasio先生是一位经验丰富的嵌入式控制系统设计专家,曾长期从事基于8位单片机的系统设计工作。他结合自己从8位单片机升级到32位单片机、从汇编语言编程升级到c语言编程的体会,对比了32位单片机与8位单片机在运算处理能力上的区别,以及c语言与汇编语言在易用性方面的差异,使读者直观地感受到32位单片机的强大功能和C语言的优越性。全书在内容组织上注重循序渐进,首先介绍基础知识,使读者能够快速建立嵌入式控制系统软件的基本架构,学会基本的I/O操作,学会用定时器实现精确延时,掌握PIC32的中断系统等;然后通过精心设计的实例使读者利用PIC32单片机的各种片上外围设备,实现同步/异步串行通信、LCD显示控制以及ADC采样等;最后,通过新颖的、趣味性极强的高级实例,使读者掌握PS/2键盘控制、视频显示、MMC/SD卡接口、文件操作以及音频处理等技术。这样,既能使初学者在短时间内迅速掌握PIC32单片机和嵌入式控制系统c语言编程的关键技术,又能使经验丰富的8位或16位单片机行家掌握PIC32单片机的新功能,从嵌入式汇编语言设计高手轻松地转型为c语言编程高手。
本书主要由张鼎和岳虹翻译。BeFlying工作室负责人肖国尊协助翻译质量和进度的控制与管理,在此予以衷心感谢。译文虽经多次修改和校正,但是由于译者的水平有限,加之时间仓促,错漏之处在所难免,我们真诚地希望同行和读者不吝赐教,译者不胜感激之至。
文摘 插图:


这将是我们首次探索32位单片机PIC32,有些读者可能还是首次使用MPI-AB-IDE(集成开发环境)以及MPLABC32程序语言开发包开发工程。即使你从未听说过c语言,但是你也应该听说过著名的“Helloworld”程序示例。如果你对此也很陌生,那我还是说说吧。
自从几十年前Kemighan和Ritchie编著了第一本c语言的书以来,任何正规的c语言书籍都会提到一个在电脑屏幕上显示“HelloWorld”的示例程序。成百上千的书籍都遵从这个传统,因此本书也不例外。但是,本书的示例会略有不同,它更加真实:由于我们要设计嵌入式控制应用系统,因此我们讨论的是单片机编程。虽说所有的个人电脑或者工作站都有显示屏,但是嵌入式控制应用系统却往往并非如此。因此,在本书的第一个嵌入式应用设计中,还是采用更为基本的输出方式:数字I/O引脚。在后面几章介绍高级应用时,嵌入式系统将与LCD显示屏相接,或者通过串行端口与另一个终端相接。到那时就将实现更加高级的功能,而不只是简单地显示“HelloWorld”。
1.2准备
无论你是计划一次短期的户外旅行还是筹备一次大型的北极探险,都一定要携带合适的装备。尽管对PIC32架构的探索决不关乎生死,但是如果你能在出门前,我的意思是在开始编写代码前,完成下列简单工作,那么你就会备感轻松。
读书人网 >程序设计

热点推荐