第一篇 基础知识篇 2
第1章PIC单片机概述 2
1.1 PIC单片机的特点 2
1.2 PIC单片机的系列产品 5
1.2.1基本级PIC系列单片机 6
1.2.2中级PIC系列单片机 6
1.2.3高级PIC系列单片机 8
1.3 PIC 16F87X单片机的硬件结构 10
1.3.1 PIC16F87X的主要特色 10
1.3.2 PIC 16F87X的内部结构 11
1.3.3 PIC 16F87X的引脚功能 16
1.4本章小结 21
第2章 PIC单片机的CPU和中断系统 22
2.1 PIC单片机的CPU 22
2.1.1系统配置 22
2.1.2振荡器配置 24
2.1.3复位 26
2.1.4中断 33
2.1.5监视定时器WDT 33
2.1.6睡眠模式 35
2.1.7在线调试 37
2.1.8程序代码保护 37
2.1.9用户标识码 37
2.1.10在线串行编程技术ICSP(In-Circuit Serial Programming) 37
2.2中断系统 38
2.2.1中断的基本概念 38
2.2.2 PIC16F87X的中断源及中断逻辑 39
2.2.3与中断相关的寄存器 44
2.2.4 CPU对中断的处理 48
2.3本章小结 51
第3章 PIC单片机的指令系统 52
3.1 PIC汇编语言指令格式 53
3.2 PIC16F87X指令集 54
3.3伪操作指令 60
3.4寻址方式 64
3.5本章小结 67
第4章 PIC单片机的开发工具 68
4.1 PIC系列单片机的仿真器 68
4.2 PIC系列单片机的编程器及开发套件 73
4.3 MPLAB-IDE 7.4版集成开发环境 77
4.3.1 MPLAB-IDE 7.4概述 77
4.3.2 MPLAB-IDE 7.4工程创建实例 80
4.3.3几个常用的菜单项 83
4.4本章小结 85
第二篇 PIC常用模块设计实例篇 88
第5章 I/O输入输出模块 88
5.1 4x4扫描键盘设计实例 88
5.1.1实例说明 88
5.1.2键盘知识介绍 88
5.1.3硬件电路设计 90
5.1.4软件设计 90
5.1.5实例总结 93
5.2直接驱动LED显示 94
5.2.1实例说明 94
5.2.2 LED数码管知识 94
5.2.3硬件电路设计 94
5.2.4软件设计 95
5.2.5实例总结 96
第6章LCD液晶显示模块:温度测量系统设计实例 97
6.1实例说明 97
6.2 DS 18B20与YMSC-G 12864IDYEWWD 98
6.2.1 温度传感器DS18B20 98
6.2.2液晶显示屏YMSC-G 128641-DYEWWD 100
6.3硬件电路设计 103
6.4软件设计 105
6.4.1 温度传感器DS18B20的软件设计 105
6.4.2液晶显示屏YMSC-G12864-IDYEW WD的软件设计 109
6.5实例总结 116
第7章 定时器模块:用定时器控制端口输出实例 117
7.1实例说明 117
7.2定时器Timer0介绍 117
7.3硬件电路设计 118
7.4软件设计 119
7.5实例总结 120
第8章 A/D模块:压力测量系统设计实例 121
8.1实例说明 121
8.2 A/D转换相关知识 121
8.2.1 A/D转换的原理说明 121
8.2.2单片机相关寄存器介绍 122
8.2.3 A/D转换操作对时间的要求 124
8.3硬件电路设计 125
8.4软件设计 125
8.4.1程序设计流程 126
8.4.2程序代码说明 126
8.5实例总结 128
第9章 存储器模块:基于I2C对EEPROM 24C02的读写 129
9.1实例说明 129
9.2 24C02与I2C接口介绍 129
9.2.1 24C02简介 129
9.2.2 PIC 16F877I2C接口简介 130
9.2.3 I2C总线规则 130
9.3硬件电路设计 131
9.4软件设计 132
9.5实例总结 136
第10章 比较与检测模块 137
10.1利用CCP模块控制继电器 137
10.1.1实例说明 137
10.1.2定时器TMRI介绍 137
10.1.3硬件电路设计 139
10.1.4软件设计 140
10.1.5实例总结 141
10.2脉冲频率的检测设计 141
10.2.1实例说明 141
10.2.2定时器TMR2介绍 141
10.2.3硬件电路设计 142
10.2.4软件设计 143
10.2.5实例总结 144
10.3电压测量模块 144
10.3.1实例介绍 144
10.3.2硬件电路设计 145
10.3.3软件设计 145
10.3.4实例总结 147
第11章 步进电机模块 148
11.1实例说明 148
11.2步进电机驱动工作原理 148
11.3硬件电路设计 149
11.4软件设计 150
11.4.1软件设计流程 151
11.4.2程序代码说明 152
11.5实例总结 153
第12章 信号发生模块 154
12.1 PWM实现DA转换 154
12.1.1实例说明 154
12.1.2 PWM模块架构 155
12.1.3硬件电路设计 156
12.1.4软件设计程序 157
12.1.5实例总结 158
12.2正弦波发生器 158
12.2.1实例说明 158
12.2.2 TLC5620介绍 158
12.2.3硬件电路设计 160
12.2.4软件程序设计 160
12.2.5实例总结 162
第13章 数字PID控制模块 163
13.1 PID控制概述 163
13.2位置式PID控制算法 164
13.3增量式PID控制算法 165
13.3.1增量式控制算法流程 166
13.3.2数字PID控制算法的改进 167
13.4数字PID控制算法代码 168
13.5实例总结 170
第14章 直流数控稳压电源模块 171
14.1实例说明 171
14.2设计思路分析 171
14.2.1 D/A转换器DAC0832 172
14.2.2步进0.1V实现 172
14.3硬件电路设计 172
14.3.1模数转换电路 172
14.3.2电流放大电路 173
14.3.3人机接口电路 173
14.3.4稳压电源电路 174
14.4软件设计 174
14.4.1程序设计流程 174
14.4.2程序代码说明 174
14.5实例总结 177
第15章 网络通信与数据传输模块 178
15.1 USART串行通信模块实例 178
15.1.1实例说明 178
15.1.2打印机并口介绍 178
15.1.3硬件电路设计 180
15.1.4软件设计 181
15.1.5实例总结 182
15.2 I2C总线通信模块实例 182
15.2.1实例说明 182
15.2.2 I2C总线介绍 183
15.2.3硬件电路设计 187
15.2.4软件设计 188
15.2.5实例总结 195
15.3 SPI总线通信模块实例 195
15.3.1实例说明 195
15.3.2 SPI模块相关的寄存器 195
15.3.3硬件电路设计 197
15.3.4软件设计 198
15.3.5实例总结 200
15.4通信模块:CAN总线模块实例 200
15.4.1实例说明 201
15.4.2设计思路分析 202
15.4.3硬件电路设计 206
15.4.4软件程序设计 207
15.4.5实例总结 212
15.5通信模块:USB数据传输模块实例 212
15.5.1实例说明 212
15.5.2设计思路分析 213
15.5.3硬件电路设计 219
15.5.4 USB固件程序设计 220
15.5.5实例总结 225
第三篇 综合系统设计实例篇 228
第16章 智能手电筒开发实例 228
16.1系统功能说明 228
16.2系统工作原理与实现方法 229
16.2.1系统的供电 229
16.2.2灯珠和LED点亮或熄灭的实现 229
16.2.3按键扫描电路和A/D转换电路图原理 230
16.2.4数据的显示 231
16.2.5蜂鸣器驱动和背光源驱动 235
16.2.6电池的自动充电实现 236
16.3软件设计与代码分析 237
16.3.1软件设计 237
16.3.2主程序 239
16.3.3中断子程序 244
16.3.4时钟处理子程序 245
16.3.5 2ms到处理子程序 247
16.3.6 A/D中断子程序 252
16.4实例总结 255
第17章 汽车应急启动器系统开发实例 257
17.1系统功能说明 257
17.2系统硬件框图 258
17.3系统各模块工作原理与实现方法 259
17.3.1系统电源部分 259
17.3.2蜂鸣器驱动与系统检测按键扫描电路 259
17.3.3灯管驱动与灯管按键扫描电路 260
17.3.4发光二极管驱动与内部电池电压按键扫描电路 261
17.3.5液晶显示器(LCD)驱动电路 261
17.3.6内部电池与外部电池连接正确与否检测电路 264
17.3.7应急启动控制电路 264
17.3.8轮胎压力检测电路 265
17.3.9轮胎气泵启动控制与轮胎充气按键扫描电路 267
17.3.10加键与减键扫描电路 268
17.3.11外部电池检测按键扫描电路 269
17.3.12电池电压检测与电池充电电路 269
17.4软件设计与代码分析 270
17.4.1主程序 271
17.4.2气泵处理程序 280
17.4.3灯管处理程序 280
17.4.4外部电池检测程序 282
17.4.5系统检测程序 283
17.4.6时钟中断程序 284
17.4.7内部电池充电程序 288
17.5实例总结 289
第18章 无功功率补偿控制器设计实例 290
18.1系统功能说明 290
18.2系统硬件框图 292
18.3系统各模块工作原理与实现方法 292
18.3.1系统的供电 292
18.3.2按键扫描电路 293
18.3.3电流和电压相位差检测电路 294
18.3.4电流和电压的A/D转换电路 297
18.3.5八段数码管和LED指示灯电路 298
18.3.6十路电力电容动电路 298
18.3.7 EEPROM的驱动电路 300
18.4软件设计与代码分析 301
18.4.1初始化、欠流判断和开机按键扫描程序 301
18.4.2检测电力电容容量程序 308
18.4.3检测功率因数程序(主程序) 310
18.4.4参数设置程序 323
18.5实例总结 325