第1部分 基础入门篇 2
第1章 应用背景和基础理论 2
1.1 单片机的产生背景 2
1.2 单片机的家族 6
1.3 单片机的整体特性 10
1.4 PIC单片机的优势 13
1.5 PIC单片机的系列产品 14
1.6 PIC单片机的应用领域及发展前景 16
习题和思考题 18
第2章 PIC单片机的硬件体系结构 19
2.1 PIC单片机内部体系结构 19
2.2 PIC单片机的封装和引脚 23
2.2.1 引脚的复用功能和符号 23
2.2.2 各个系列的PIC单片机引脚 25
2.3 PIC单片机的处理器模块 31
2.3.1 运算器 31
2.3.2 程序状态字 32
2.3.3 控制器 33
2.4 PIC单片机的存储器模块 33
2.4.1 存储器概述 33
2.4.2 程序存储器 34
2.4.3 数据存储器 35
2.4.4 堆栈 35
2.5 PIC单片机的寄存器模块 36
2.5.1 工作寄存器组 36
2.5.2 程序计数器 36
2.5.3 状态寄存器 36
2.5.4 间接寻址INDF和FSR寄存器 37
2.5.5 选项寄存器 37
2.5.6 中断控制寄存器 38
2.5.7 电源控制寄存器 39
习题和思考题 39
第3章 PIC单片机的汇编语言和C语言基础 40
3.1 汇编语言程序设计基本特点 40
3.1.1 程序结构与程序流程图 40
3.1.2 语句格式 43
3.1.3 伪指令 43
3.2 MPASM交叉宏汇编语言 44
3.2.1 MPASM的特点 44
3.2.2 MPASM的伪指令 45
3.2.3 MPASM的宏指令 45
3.2.4 在MPLAB-IDE下使用MPASM示例 45
3.3 C语言程序设计基本特点 51
3.3.1 C语言的数据类型 51
3.3.2 C语言的程序结构 52
3.3.3 C语言的语句规则 53
3.4 PICC语言 53
3.4.1 PICC语言的数据类型 53
3.4.2 PICC语言的程序结构 56
3.4.3 在MPLAB-IDE下使用PICC语言示例 56
3.5 PICC语言和汇编语言的混合编程概述 61
3.6 PIC单片机的机器码 62
习题和思考题 63
第4章 PIC单片机的指令系统 64
4.1 指令系统概述 64
4.2 指令分类 65
4.3 四类常用指令系统 66
4.3.1 指令系统说明 66
4.3.2 数据传送类指令 68
4.3.3 算术运算类指令 69
4.3.4 逻辑运算类指令 70
4.3.5 控制转移类指令 73
4.4 指令系统小结 75
习题和思考题 76
第2部分 熟练应用篇 78
第5章 硬件开发环境和硬件调试技术 78
5.1 MPLAB开发环境 78
5.1.1 MPLAB-IDE的背景 78
5.1.2 MPLAB-IDE的组成 79
5.1.3 MPLAB-IDE的获取、安装与卸载 80
5.1.4 MPLAB-IDE的菜单简介 83
5.2 PIC单片机硬件开发工具 90
5.2.1 仿真器 90
5.2.2 芯片烧录器 91
5.2.3 开发面包板 91
5.3 PIC单片机硬件开发流程 91
5.4 MPLAB-ICD2使用方法 91
5.4.1 MPLAB-ICD2简介 91
5.4.2 MPLAB-ICD2调试电路 92
5.4.3 MPLAB-ICD2在IDE中的相关配置 92
5.4.4 MPLAB-ICD2错误信息 98
习题和思考题 99
第6章 软件开发环境和软件模拟技术 100
6.1 PIC单片机的软件模拟 100
6.2 PIC单片机的软件开发流程 100
6.3 MPLAB-SIM模拟软件 101
6.3.1 MPLAB-SIM简介 101
6.3.2 MPLAB-IDE的配置 101
6.3.3 MPLAB-SIM的应用 104
6.3.4 软件模拟器的常见问题 111
6.4 软件模拟的局限性 112
习题和思考题 112
第7章 PIC单片机应用实例 114
7.1 频率检测器 114
7.1.1 设计思想 114
7.1.2 硬件设计 115
7.1.3 软件设计 116
7.1.4 应用场合 120
7.2 二进制码和BCD码转换器 120
7.2.1 设计思想 120
7.2.2 软件设计 121
7.2.3 应用场合 124
7.3 交流电压测量器 124
7.3.1 设计思想 124
7.3.2 硬件设计 124
7.3.3 软件设计 125
7.3.4 应用场合 127
7.4 永磁无刷直流电动机控制器 128
7.4.1 设计思想 128
7.4.2 硬件设计 128
7.4.3 软件设计 131
7.4.4 应用场合 140
7.5 IC卡读写器 140
7.5.1 设计思想 140
7.5.2 硬件设计 140
7.5.3 软件设计 147
7.5.4 应用场合 150
7.6 软开关双向DC/DC变换器 150
7.6.1 设计思想 150
7.6.2 硬件设计 156
7.6.3 软件设计 164
7.6.4 应用场合 176
习题和思考题 177
第3部分 精通提高篇 179
第8章 PIC单片机常用功能模块 179
8.1 PIC单片机中断功能 179
8.1.1 定时器溢出中断 181
8.1.2 端口RB中断 183
8.1.3 INT中断 190
8.2 PIC单片机I/O功能 195
8.2.1 设计思想 198
8.2.2 硬件设计 198
8.2.3 软件设计 198
8.3 PIC单片机主控同步串行端口MSSP功能 199
8.3.1 主控同步串行端口MSSP简介 199
8.3.2 SPI工作方式 201
8.3.3 I2C总线 206
8.3.4 I2C访问EEPROM 215
8.4 PIC单片机捕捉功能 218
8.4.1 CCP模块 218
8.4.2 捕捉方式 218
8.4.3 PWM方式 227
8.5 PIC单片机定时/计数功能 229
8.5.1 定时器/计数器简介 229
8.5.2 设计思想 230
8.5.3 硬件设计 230
8.5.4 软件设计 230
8.6 PIC单片机A/D转换功能 235
8.6.1 A/D转换模块简介 235
8.6.2 设计思想 237
8.6.3 硬件设计 237
8.6.4 软件设计 237
8.7 PIC单片机监视功能 240
8.7.1 设计思想 243
8.7.2 软件设计 243
8.8 PIC单片机复位功能 244
8.8.1 内部上电延时复位电路 245
8.8.2 外部上电延时复位电路 247
8.8.3 外部人工复位按钮开关电路 248
8.8.4 内部掉电锁定复位功能 249
习题和思考题 251
第9章 PIC单片机的高级功能 252
9.1 通信与数据传输功能 252
9.1.1 PIC单片机与PC串行通信模块 252
9.1.2 双机通信接口模块 261
9.1.3 USB数据通信接口模块 267
9.1.4 以太网控制器接口模块 277
9.2 自动控制功能 289
9.2.1 位置式PID控制模块 289
9.2.2 增量式PID控制模块 292
9.2.3 步进电动机控制模块 294
9.3 数学运算功能 305
9.3.1 16×16位定点数加减法模块 305
9.3.2 16×16位定点数乘法模块 306
9.3.3 16×16位定点数除法模块 308
9.3.4 浮点数加减法模块 310
9.3.5 浮点数乘法模块 313
9.3.6 浮点数除法模块 317
9.3.7 定点数转化为浮点数模块 321
9.3.8 浮点数转换为定点数模块 322
9.4 信号产生功能 323
9.4.1 多功能波形信号发生模块 323
9.4.2 PWM信号发生模块 331
9.4.3 正弦信号发生模块 333
9.5 屏幕显示功能 339
9.5.1 LED显示接口模块 339
9.5.2 LCD显示接口模块 354
9.6 扩展键盘功能 367
9.6.1 设计思想 367
9.6.2 硬件设计 368
9.6.3 软件设计 370
习题和思考题 373
第4部分 附录 375
附录A 宏汇编器MPASM伪指令总表 375
附录B ASCII码表 377
附录C 常见PIC单片机的I/O端口功能表 378
附录D 常用PIC芯片的额定参数 380
参考文献 381