第1章 单片机片内资源 1
1.1 PIC单片机I/O模块的应用 1
1.1.1 PIC16F877单片机I/O端口介绍 1
1.1.2 设计思路 1
1.1.3 电路设计 2
1.1.4 程序设计 3
1.1.5 典型应用及经验分享 3
1.2 PIC单片机主控同步串行端口MSSP模块的应用 3
1.2.1 SPI工作方式及应用实例 3
1.2.2 I2C模式及其应用实例 8
1.2.3 利用I2C访问E2PROM 24C02 19
1.3 PIC单片机的定时器/计数器模块的应用 22
1.3.1 设计思路 23
1.3.2 程序设计 23
1.4 PIC单片机捕捉模块的应用 28
1.4.1 捕捉方式 28
1.4.2 PWM方式 38
1.5 PIC单片机模/数转换器ADC模块的应用 39
1.5.1 设计思路 41
1.5.2 电路设计 41
1.5.3 程序设计 41
1.5.4 经验分享 44
1.6 PIC单片机复位系统模块 44
1.6.1 内部上电延时复位(POR) 45
1.6.2 外部上电延时复位电路 47
1.6.3 外部人工复位开关电路 49
1.6.4 内部掉电锁定复位(BOR)功能 50
1.6.5 外接电压检测复位电路举例 52
1.7 PIC单片机看门狗模块 56
1.7.1 设计思路 58
1.7.2 程序设计 58
1.7.3 经验共享 59
1.8 PIC单片机中断模块 59
1.8.1 定时器溢出中断 60
1.8.2 端口RB中断 62
1.8.3 INT中断 70
第2章 PIC单片机人机接口模块 75
2.1 利用I/O直接扩展键盘 75
2.1.1 独立式按键结构器 75
2.1.2 4×4行列式键盘 81
2.2 LED显示接口模块 104
2.2.1 LED显示器工作原理 104
2.2.2 设计思路 108
2.2.3 元器件选型 109
2.2.4 电路设计 110
2.2.5 程序设计 111
2.2.6 典型应用及经验分享 120
2.3 LCD显示接口模块 120
2.3.1 LCD显示器工作原理 120
2.3.2 设计思路 121
2.3.3 元器件选型 122
2.3.4 接口电路 125
2.3.5 程序设计 129
2.3.6 典型应用及经验分享 135
2.4 硬件译码驱动显示模块 136
2.4.1 硬件译码驱动简介 136
2.4.2 元器件选型 136
2.4.3 电路设计 137
2.4.4 程序设计 137
2.4.5 经验分享 141
2.5 IC卡读写模块 141
2.5.1 IC卡简介 141
2.5.2 元器件选型 142
2.5.3 电路设计 148
2.5.4 程序设计 148
2.5.5 典型应用 153
第3章 扩展D/A模块 154
3.1 PIC单片机与16位串行D/A转换器接口模块 154
3.1.1 D/A转换原理 154
3.1.2 D/A转换类型概述 156
3.1.3 D/A性能参数概述 157
3.1.4 设计思路 162
3.1.5 芯片选择 163
3.1.6 电路设计 164
3.1.7 程序设计 165
3.2 PIC单片机与8位并行D/A转换器接口模块 165
3.2.1 设计思路 165
3.2.2 元器件选型 166
3.2.3 电路设计 167
3.2.4 程序设计 167
3.2.5 经验分享 168
第4章 信号发生与测量模块 169
4.1 多功能波形信号发生模块 169
4.1.1 设计思路 169
4.1.2 元器件选型 169
4.1.3 电路设计 171
4.1.4 程序设计 172
4.1.5 典型应用 177
4.2 PWM信号发生模块 178
4.2.1 设计思路 178
4.2.2 电路设计 179
4.2.3 程序设计 179
4.2.4 典型应用 180
4.3 正弦信号发生模块 180
4.3.1 设计思路 180
4.3.2 元器件选型 181
4.3.3 电路设计 182
4.3.4 程序设计 183
4.4 频率检测模块 186
4.4.1 设计思路 186
4.4.2 程序设计 187
4.4.3 典型应用 191
4.5 交流电压测量模块 191
4.5.1 设计思路 191
4.5.2 电路设计 192
4.5.3 程序设计 193
第5章 通信与数据传输模块 196
5.1 RS-485接口模块 196
5.1.1 RS-485接口简介 196
5.1.2 元器件选型 197
5.1.3 电路设计 197
5.1.4 程序设计 197
5.1.5 典型应用及经验分享 204
5.2 双机通信接口模块 204
5.2.1 通信工作模式简介 204
5.2.2 设计思路 204
5.2.3 电路设计 205
5.2.4 程序设计 205
5.2.5 典型应用及经验分享 209
5.3 PIC单片机与PC机串行通信模块 209
5.3.1 设计思路 209
5.3.2 元器件选型 210
5.3.3 电路设计 211
5.3.4 程序设计 212
5.3.5 典型应用及经验分享 218
5.4 USB数据通信接口模块 219
5.4.1 通用串行总线简介 219
5.4.2 元器件选型 219
5.4.3 电路设计 222
5.4.4 程序设计 222
5.4.5 典型应用及经验分享 228
5.5 CAN总线接口模块 228
5.5.1 CAN总线工作原理 228
5.5.2 设计思路 232
5.5.3 元器件选型 233
5.5.4 电路设计 235
5.5.5 程序设计 235
5.5.6 典型应用 243
5.6 以太网控制器接口模块 243
5.6.1 设计思路 243
5.6.2 元器件选型 246
5.6.3 电路设计 247
5.6.4 程序设计 248
5.6.5 典型应用及经验分享 255
第6章 控制算法模块 257
6.1 位置式PID控制模块 257
6.1.1 设计思路 257
6.1.2 程序设计 258
6.1.3 经验分享 260
6.2 增量式PID控制模块 260
6.2.1 设计思路 260
6.2.2 程序设计 261
6.2.3 经验分享 263
6.3 单神经PID控制模块 263
6.3.1 设计思路 263
6.3.2 程序设计 265
6.3.3 典型应用 267
第7章 电机控制模块 268
7.1 步进电机稳压直流稳压电源模块 268
7.1.1 设计思路 268
7.1.2 元器件选型 269
7.1.3 电路设计 269
7.1.4 程序设计 269
7.2 步进电机驱动模块 276
7.2.1 步进电机简介 276
7.2.2 设计思路 276
7.2.3 元器件选型 278
7.2.4 电路设计 279
7.2.5 程序设计 280
7.3 步进电机控制模块 285
7.3.1 步进电机工作原理简介 285
7.3.2 设计思路 285
7.3.3 电路设计 286
7.3.4 程序设计 286
7.3.5 典型应用 294
7.4 永磁无刷直流电动机控制模块 294
7.4.1 永磁无刷电动机简介 294
7.4.2 设计思路 296
7.4.3 元器件选型 296
7.4.4 电路设计 297
7.4.5 程序设计 298
7.4.6 典型设计及经验分享 307
7.5 BUCK DC/DC变换器控制模块 307
7.5.1 设计思路 307
7.5.2 元器件选型 308
7.5.3 电路设计 308
7.5.4 程序设计 309
7.5.5 典型应用及经验分享 309
7.6 软开关双向DC/DC变换模块 310
7.6.1 设计思路 310
7.6.2 元器件选型 315
7.6.3 电路设计 320
7.6.4 程序设计 323
第8章 数学运算典型模块 337
8.1 16×16位定点数加、减法模块 337
8.1.1 设计思路 337
8.1.2 程序设计 337
8.1.3 典型应用 338
8.1.4 经验分享 338
8.2 16×16位定点数乘法模块 338
8.2.1 设计思路 338
8.2.2 程序设计 339
8.2.3 典型应用 341
8.2.4 经验分享 341
8.3 16×16位定点数除法模块 341
8.3.1 设计思路 341
8.3.2 程序设计 342
8.3.3 典型应用 344
8.3.4 经验分享 344
8.4 浮点数加减法模块 344
8.4.1 设计思路 344
8.4.2 程序设计 344
8.4.3 典型应用 348
8.5 浮点数乘法模块 348
8.5.1 设计思路 348
8.5.2 程序设计 348
8.5.3 典型应用 351
8.6 浮点数除法模块 352
8.6.1 设计思路 352
8.6.2 程序设计 352
8.6.3 典型应用 356
8.7 定点数转化为浮点数模块 357
8.7.1 设计思路 357
8.7.2 程序设计 357
8.7.3 典型应用 358
8.8 3字节浮点数转换为定点整数模块 359
8.8.1 设计思路 359
8.8.2 程序设计 359
8.8.3 典型应用 360
8.9 双字节定点数至5位BCD码转换模块 360
8.9.1 设计思路 360
8.9.2 程序设计 361
8.9.3 典型应用 362
8.10 浮点数至5位压缩BCD码转换程序 362
8.10.1 设计思路 362
8.10.2 程序设计 363
8.10.3 典型应用 365
8.11 进制码和BCD码转换模块 365
8.11.1 设计思路 365
8.11.2 程序设计 366
8.12 定点数开方模块 370
8.12.1 设计思路 370
8.12.2 程序设计 370
8.12.3 典型应用 373
8.13 浮点数开方模块 373
8.13.1 设计思路 373
8.13.2 程序设计 374
8.13.3 典型应用 376
8.14 均值滤波模块 376
8.14.1 设计思路 376
8.14.2 程序设计 377
8.15 中值滤波模块 381
8.15.1 设计思路 381
8.15.2 程序设计 382
第9章 可靠性设计技术 390
9.1 接地技术 390
9.1.1 接地技术概述 390
9.1.2 接地技术总结 391
9.1.3 接地技术举例 393
9.2 PCB布线 393
9.2.1 PCB布线技术 394
9.2.2 PCB布线技术举例 395
9.3 抗电磁干扰技术 401
9.3.1 抗电磁干扰技术概述 401
9.3.2 两种抗电磁干扰技术 401
9.3.3 抗电磁干扰技术举例 401
9.4 电源技术 403
9.4.1 电源技术概述 403
9.4.2 电源技术举例 404
9.4.3 电源故障监控 407